saklient 0.0.2.2 → 0.0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/saklient/cloud/api.rb +75 -0
- data/lib/saklient/cloud/client.rb +1 -1
- data/lib/saklient/cloud/facility.rb +45 -0
- data/lib/saklient/cloud/models/model.rb +7 -12
- data/lib/saklient/cloud/models/model_appliance.rb +17 -2
- data/lib/saklient/cloud/models/model_archive.rb +10 -0
- data/lib/saklient/cloud/models/model_bridge.rb +148 -0
- data/lib/saklient/cloud/models/model_disk.rb +10 -0
- data/lib/saklient/cloud/models/model_disk_plan.rb +10 -0
- data/lib/saklient/cloud/models/model_icon.rb +10 -0
- data/lib/saklient/cloud/models/model_iface.rb +10 -0
- data/lib/saklient/cloud/models/model_ipv6_net.rb +10 -0
- data/lib/saklient/cloud/models/model_iso_image.rb +10 -0
- data/lib/saklient/cloud/models/model_license.rb +148 -0
- data/lib/saklient/cloud/models/model_license_info.rb +139 -0
- data/lib/saklient/cloud/models/model_region.rb +139 -0
- data/lib/saklient/cloud/models/model_router.rb +10 -0
- data/lib/saklient/cloud/models/model_router_plan.rb +10 -0
- data/lib/saklient/cloud/models/model_script.rb +10 -0
- data/lib/saklient/cloud/models/model_server.rb +10 -0
- data/lib/saklient/cloud/models/model_server_plan.rb +10 -0
- data/lib/saklient/cloud/models/model_swytch.rb +10 -0
- data/lib/saklient/cloud/product.rb +25 -0
- data/lib/saklient/cloud/resources/appliance.rb +5 -17
- data/lib/saklient/cloud/resources/archive.rb +2 -2
- data/lib/saklient/cloud/resources/bridge.rb +305 -0
- data/lib/saklient/cloud/resources/disk.rb +2 -2
- data/lib/saklient/cloud/resources/disk_config.rb +1 -1
- data/lib/saklient/cloud/resources/iso_image.rb +2 -2
- data/lib/saklient/cloud/resources/lb_server.rb +2 -2
- data/lib/saklient/cloud/resources/lb_virtual_ip.rb +1 -1
- data/lib/saklient/cloud/resources/license.rb +252 -0
- data/lib/saklient/cloud/resources/license_info.rb +180 -0
- data/lib/saklient/cloud/resources/load_balancer.rb +1 -1
- data/lib/saklient/cloud/resources/region.rb +233 -0
- data/lib/saklient/cloud/resources/resource.rb +1 -10
- data/lib/saklient/cloud/resources/script.rb +2 -2
- data/lib/saklient/cloud/resources/server.rb +2 -2
- data/lib/saklient/cloud/resources/swytch.rb +137 -14
- data/lib/saklient/version.rb +1 -1
- data/spec/archive_spec.rb +1 -0
- data/spec/bridge_spec.rb +78 -0
- data/spec/exception_spec.rb +1 -1
- data/spec/iso_image_spec.rb +1 -1
- data/spec/license_spec.rb +73 -0
- data/spec/loadbalancer_spec.rb +8 -5
- data/spec/server_spec.rb +3 -1
- metadata +16 -4
data/lib/saklient/version.rb
CHANGED
data/spec/archive_spec.rb
CHANGED
data/spec/bridge_spec.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
$: << File.dirname(__dir__) + '/lib'
|
2
|
+
require 'saklient/cloud/api'
|
3
|
+
require 'date'
|
4
|
+
require 'SecureRandom'
|
5
|
+
|
6
|
+
describe 'Bridge' do
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
before do
|
11
|
+
|
12
|
+
# load config file
|
13
|
+
root = File.dirname(__dir__)
|
14
|
+
test_ok_file = root + '/testok'
|
15
|
+
expect(File).to exist(test_ok_file)
|
16
|
+
config_file = root + '/config.sh'
|
17
|
+
expect(File).to exist(config_file)
|
18
|
+
@config = {}
|
19
|
+
fh = open(config_file)
|
20
|
+
fh.each {|line|
|
21
|
+
if /^\s*export\s+(\w+)\s*=\s*(.+?)\s*$/.match(line) then
|
22
|
+
key = $1
|
23
|
+
value = $2
|
24
|
+
@config[key.to_sym] = value.gsub(/'([^']*)'|"([^"]*)"|\\(.)|(.)/) {|m|
|
25
|
+
$1 || $2 || $3 || $4
|
26
|
+
}
|
27
|
+
end
|
28
|
+
}
|
29
|
+
fh.close
|
30
|
+
expect(@config[:SACLOUD_TOKEN]).not_to be_empty #'SACLOUD_TOKEN must be defined in config.sh'
|
31
|
+
expect(@config[:SACLOUD_SECRET]).not_to be_empty #'SACLOUD_SECRET must be defined in config.sh'
|
32
|
+
#expect(@config[:SACLOUD_ZONE]).not_to be_empty #'SACLOUD_ZONE must be defined in config.sh'
|
33
|
+
|
34
|
+
# authorize
|
35
|
+
@api = Saklient::Cloud::API::authorize(@config[:SACLOUD_TOKEN], @config[:SACLOUD_SECRET])
|
36
|
+
@api = @api.in_zone(@config[:SACLOUD_ZONE]) if @config[:SACLOUD_ZONE]
|
37
|
+
expect(@api).to be_an_instance_of Saklient::Cloud::API
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
it 'should be CRUDed' do
|
44
|
+
name = '!ruby_rspec-' + DateTime.now.strftime('%Y%m%d_%H%M%S') + '-' + SecureRandom.uuid[0, 8]
|
45
|
+
description = 'This instance was created by saklient.ruby rspec'
|
46
|
+
|
47
|
+
#
|
48
|
+
puts 'リージョンを検索しています...'
|
49
|
+
regions = @api.facility.region.with_name_like('石狩').find
|
50
|
+
for region in regions do
|
51
|
+
expect(region).to be_an_instance_of Saklient::Cloud::Resources::Region
|
52
|
+
end
|
53
|
+
|
54
|
+
puts 'ブリッジを作成しています...'
|
55
|
+
bridge = @api.bridge.create
|
56
|
+
bridge.name = name
|
57
|
+
bridge.description = description
|
58
|
+
bridge.region = regions[0]
|
59
|
+
bridge.save
|
60
|
+
|
61
|
+
expect(bridge).to be_an_instance_of Saklient::Cloud::Resources::Bridge
|
62
|
+
|
63
|
+
#
|
64
|
+
puts 'ブリッジを削除しています...'
|
65
|
+
bridge.destroy
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
after do
|
72
|
+
@config = nil
|
73
|
+
@api = nil
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
end
|
data/spec/exception_spec.rb
CHANGED
data/spec/iso_image_spec.rb
CHANGED
@@ -0,0 +1,73 @@
|
|
1
|
+
$: << File.dirname(__dir__) + '/lib'
|
2
|
+
require 'saklient/cloud/api'
|
3
|
+
require 'date'
|
4
|
+
require 'SecureRandom'
|
5
|
+
|
6
|
+
describe 'License' do
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
before do
|
11
|
+
|
12
|
+
# load config file
|
13
|
+
root = File.dirname(__dir__)
|
14
|
+
test_ok_file = root + '/testok'
|
15
|
+
expect(File).to exist(test_ok_file)
|
16
|
+
config_file = root + '/config.sh'
|
17
|
+
expect(File).to exist(config_file)
|
18
|
+
@config = {}
|
19
|
+
fh = open(config_file)
|
20
|
+
fh.each {|line|
|
21
|
+
if /^\s*export\s+(\w+)\s*=\s*(.+?)\s*$/.match(line) then
|
22
|
+
key = $1
|
23
|
+
value = $2
|
24
|
+
@config[key.to_sym] = value.gsub(/'([^']*)'|"([^"]*)"|\\(.)|(.)/) {|m|
|
25
|
+
$1 || $2 || $3 || $4
|
26
|
+
}
|
27
|
+
end
|
28
|
+
}
|
29
|
+
fh.close
|
30
|
+
expect(@config[:SACLOUD_TOKEN]).not_to be_empty #'SACLOUD_TOKEN must be defined in config.sh'
|
31
|
+
expect(@config[:SACLOUD_SECRET]).not_to be_empty #'SACLOUD_SECRET must be defined in config.sh'
|
32
|
+
#expect(@config[:SACLOUD_ZONE]).not_to be_empty #'SACLOUD_ZONE must be defined in config.sh'
|
33
|
+
|
34
|
+
# authorize
|
35
|
+
@api = Saklient::Cloud::API::authorize(@config[:SACLOUD_TOKEN], @config[:SACLOUD_SECRET])
|
36
|
+
@api = @api.in_zone(@config[:SACLOUD_ZONE]) if @config[:SACLOUD_ZONE]
|
37
|
+
expect(@api).to be_an_instance_of Saklient::Cloud::API
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
it 'should be CRUDed' do
|
44
|
+
name = '!ruby_rspec-' + DateTime.now.strftime('%Y%m%d_%H%M%S') + '-' + SecureRandom.uuid[0, 8]
|
45
|
+
|
46
|
+
#
|
47
|
+
puts 'ライセンス種別情報を検索しています...'
|
48
|
+
infos = @api.product.license.with_name_like('Office').find
|
49
|
+
for info in infos do
|
50
|
+
expect(info).to be_an_instance_of Saklient::Cloud::Resources::LicenseInfo
|
51
|
+
end
|
52
|
+
|
53
|
+
puts 'ライセンスを作成しています...'
|
54
|
+
license = @api.license.create
|
55
|
+
license.name = name
|
56
|
+
license.info = infos[0]
|
57
|
+
license.save
|
58
|
+
|
59
|
+
puts 'ライセンスを削除しています...'
|
60
|
+
license.destroy
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
after do
|
67
|
+
@config = nil
|
68
|
+
@api = nil
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
end
|
data/spec/loadbalancer_spec.rb
CHANGED
@@ -8,7 +8,8 @@ describe 'LoadBalancer' do
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
TESTS_CONFIG_READYMADE_LB_ID = '112600809060'
|
11
|
+
TESTS_CONFIG_READYMADE_LB_ID = nil #'112600809060'
|
12
|
+
TESTS_CONFIG_READYMADE_SWYTCH_ID = '112500447075' #'112600553094'
|
12
13
|
|
13
14
|
before do
|
14
15
|
|
@@ -55,9 +56,9 @@ describe 'LoadBalancer' do
|
|
55
56
|
|
56
57
|
# search a switch
|
57
58
|
puts 'searching a swytch...'
|
58
|
-
|
59
|
-
expect(swytches.length).to be > 0
|
60
|
-
swytch = swytches[0]
|
59
|
+
swytch = @api.swytch.get_by_id(TESTS_CONFIG_READYMADE_SWYTCH_ID)
|
60
|
+
# expect(swytches.length).to be > 0
|
61
|
+
# swytch = swytches[0]
|
61
62
|
expect(swytch).to be_an_instance_of Saklient::Cloud::Resources::Swytch
|
62
63
|
expect(swytch.ipv4_nets.length).to be > 0
|
63
64
|
net = swytch.ipv4_nets[0]
|
@@ -66,7 +67,9 @@ describe 'LoadBalancer' do
|
|
66
67
|
# create a loadbalancer
|
67
68
|
puts 'creating a LB...'
|
68
69
|
vrid = 123
|
69
|
-
|
70
|
+
real_ip1 = IPAddr.new(IPAddr.new(net.default_route).to_i + 3, Socket::AF_INET).to_s
|
71
|
+
real_ip2 = IPAddr.new(IPAddr.new(net.default_route).to_i + 4, Socket::AF_INET).to_s
|
72
|
+
lb = @api.appliance.create_load_balancer(swytch, vrid, [real_ip1, real_ip2], true)
|
70
73
|
|
71
74
|
ok = false
|
72
75
|
begin
|
data/spec/server_spec.rb
CHANGED
@@ -78,9 +78,11 @@ describe 'Server' do
|
|
78
78
|
|
79
79
|
# search archives
|
80
80
|
puts 'searching archives...'
|
81
|
-
archives = @api.archive.with_name_like('CentOS
|
81
|
+
archives = @api.archive.with_name_like('CentOS 64bit').with_size_gib(20).with_shared_scope.limit(1).find
|
82
|
+
expect(archives.length).to be > 0
|
82
83
|
# printf "found %d archive(s)\n", archives.length
|
83
84
|
archive = archives[0]
|
85
|
+
expect(archive.id.to_i).to be > 0
|
84
86
|
# p archive.dump
|
85
87
|
|
86
88
|
# search scripts
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: saklient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.2.
|
4
|
+
version: 0.0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- townewgokgok
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -166,15 +166,20 @@ files:
|
|
166
166
|
- lib/saklient/cloud/errors/unsupported_res_class_exception.rb
|
167
167
|
- lib/saklient/cloud/errors/user_not_specified_exception.rb
|
168
168
|
- lib/saklient/cloud/errors/vnc_proxy_request_failure_exception.rb
|
169
|
+
- lib/saklient/cloud/facility.rb
|
169
170
|
- lib/saklient/cloud/models/model.rb
|
170
171
|
- lib/saklient/cloud/models/model_appliance.rb
|
171
172
|
- lib/saklient/cloud/models/model_archive.rb
|
173
|
+
- lib/saklient/cloud/models/model_bridge.rb
|
172
174
|
- lib/saklient/cloud/models/model_disk.rb
|
173
175
|
- lib/saklient/cloud/models/model_disk_plan.rb
|
174
176
|
- lib/saklient/cloud/models/model_icon.rb
|
175
177
|
- lib/saklient/cloud/models/model_iface.rb
|
176
178
|
- lib/saklient/cloud/models/model_ipv6_net.rb
|
177
179
|
- lib/saklient/cloud/models/model_iso_image.rb
|
180
|
+
- lib/saklient/cloud/models/model_license.rb
|
181
|
+
- lib/saklient/cloud/models/model_license_info.rb
|
182
|
+
- lib/saklient/cloud/models/model_region.rb
|
178
183
|
- lib/saklient/cloud/models/model_router.rb
|
179
184
|
- lib/saklient/cloud/models/model_router_plan.rb
|
180
185
|
- lib/saklient/cloud/models/model_script.rb
|
@@ -185,6 +190,7 @@ files:
|
|
185
190
|
- lib/saklient/cloud/product.rb
|
186
191
|
- lib/saklient/cloud/resources/appliance.rb
|
187
192
|
- lib/saklient/cloud/resources/archive.rb
|
193
|
+
- lib/saklient/cloud/resources/bridge.rb
|
188
194
|
- lib/saklient/cloud/resources/disk.rb
|
189
195
|
- lib/saklient/cloud/resources/disk_config.rb
|
190
196
|
- lib/saklient/cloud/resources/disk_plan.rb
|
@@ -196,7 +202,10 @@ files:
|
|
196
202
|
- lib/saklient/cloud/resources/iso_image.rb
|
197
203
|
- lib/saklient/cloud/resources/lb_server.rb
|
198
204
|
- lib/saklient/cloud/resources/lb_virtual_ip.rb
|
205
|
+
- lib/saklient/cloud/resources/license.rb
|
206
|
+
- lib/saklient/cloud/resources/license_info.rb
|
199
207
|
- lib/saklient/cloud/resources/load_balancer.rb
|
208
|
+
- lib/saklient/cloud/resources/region.rb
|
200
209
|
- lib/saklient/cloud/resources/resource.rb
|
201
210
|
- lib/saklient/cloud/resources/router.rb
|
202
211
|
- lib/saklient/cloud/resources/router_plan.rb
|
@@ -244,9 +253,11 @@ files:
|
|
244
253
|
- lib/saklient/version.rb
|
245
254
|
- saklient.gemspec
|
246
255
|
- spec/archive_spec.rb
|
256
|
+
- spec/bridge_spec.rb
|
247
257
|
- spec/enum_spec.rb
|
248
258
|
- spec/exception_spec.rb
|
249
259
|
- spec/iso_image_spec.rb
|
260
|
+
- spec/license_spec.rb
|
250
261
|
- spec/loadbalancer_spec.rb
|
251
262
|
- spec/router_spec.rb
|
252
263
|
- spec/server_spec.rb
|
@@ -272,17 +283,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
272
283
|
version: '0'
|
273
284
|
requirements: []
|
274
285
|
rubyforge_project:
|
275
|
-
rubygems_version: 2.
|
286
|
+
rubygems_version: 2.4.3
|
276
287
|
signing_key:
|
277
288
|
specification_version: 4
|
278
289
|
summary: SAKURA Internet API Client Library for Ruby
|
279
290
|
test_files:
|
280
291
|
- spec/archive_spec.rb
|
292
|
+
- spec/bridge_spec.rb
|
281
293
|
- spec/enum_spec.rb
|
282
294
|
- spec/exception_spec.rb
|
283
295
|
- spec/iso_image_spec.rb
|
296
|
+
- spec/license_spec.rb
|
284
297
|
- spec/loadbalancer_spec.rb
|
285
298
|
- spec/router_spec.rb
|
286
299
|
- spec/server_spec.rb
|
287
300
|
- spec/util_spec.rb
|
288
|
-
has_rdoc:
|