nifty-cloud-sdk 1.7
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.
- data/CHANGELOG +112 -0
- data/Gemfile +4 -0
- data/INSTALL +30 -0
- data/LICENSE.txt +58 -0
- data/README.rdoc +375 -0
- data/Rakefile +61 -0
- data/lib/NIFTY.rb +405 -0
- data/lib/NIFTY/Cloud.rb +24 -0
- data/lib/NIFTY/Cloud/availability_zones.rb +23 -0
- data/lib/NIFTY/Cloud/certificates.rb +283 -0
- data/lib/NIFTY/Cloud/images.rb +134 -0
- data/lib/NIFTY/Cloud/instances.rb +372 -0
- data/lib/NIFTY/Cloud/keypairs.rb +76 -0
- data/lib/NIFTY/Cloud/load_balancers.rb +433 -0
- data/lib/NIFTY/Cloud/security_groups.rb +357 -0
- data/lib/NIFTY/Cloud/volumes.rb +140 -0
- data/lib/NIFTY/config.rb +41 -0
- data/lib/NIFTY/exceptions.rb +32 -0
- data/lib/NIFTY/responses.rb +19 -0
- data/lib/NIFTY/version.rb +3 -0
- data/nifty-cloud-sdk.gemspec +28 -0
- data/sample/availability_zones/describe-availability-zones.rb +37 -0
- data/sample/certificate/create-ssl-certificate.rb +41 -0
- data/sample/certificate/delete-ssl-certificate.rb +28 -0
- data/sample/certificate/describe-ssl-certificate-attribute.rb +58 -0
- data/sample/certificate/describe-ssl-certificates.rb +49 -0
- data/sample/certificate/download-ssl-certificate.rb +31 -0
- data/sample/certificate/modify-ssl-certificate-attribute.rb +29 -0
- data/sample/certificate/register-corporate-info-for-certificate.rb +57 -0
- data/sample/certificate/upload-ssl-certificate.rb +32 -0
- data/sample/images/create-image.rb +33 -0
- data/sample/images/delete-image.rb +26 -0
- data/sample/images/describe-images.rb +70 -0
- data/sample/images/modify-image-attribute.rb +33 -0
- data/sample/instances/cancel_copy_instances.rb +26 -0
- data/sample/instances/copy-instances.rb +41 -0
- data/sample/instances/describe-instance-attribute.rb +78 -0
- data/sample/instances/describe-instances.rb +100 -0
- data/sample/instances/modify-instance-attribute.rb +30 -0
- data/sample/instances/reboot-instances.rb +29 -0
- data/sample/instances/run-instances.rb +104 -0
- data/sample/instances/start-instances.rb +36 -0
- data/sample/instances/stop-instances.rb +35 -0
- data/sample/instances/terminate-instances.rb +34 -0
- data/sample/keypairs/create-key-pair.rb +31 -0
- data/sample/keypairs/delete-key-pair.rb +28 -0
- data/sample/keypairs/describe-key-pairs.rb +31 -0
- data/sample/load_balancers/configure-health-check.rb +41 -0
- data/sample/load_balancers/create-load-balancer.rb +35 -0
- data/sample/load_balancers/delete-load-balancer.rb +28 -0
- data/sample/load_balancers/deregister-instances-from-load-balancer.rb +35 -0
- data/sample/load_balancers/describe-instance-health.rb +36 -0
- data/sample/load_balancers/describe-load-balancers.rb +89 -0
- data/sample/load_balancers/register-instances-with-load-balancer.rb +33 -0
- data/sample/load_balancers/register-port-with-load-balancer.rb +37 -0
- data/sample/load_balancers/set-filter-for-load-balancer.rb +38 -0
- data/sample/load_balancers/update-load-balancer.rb +33 -0
- data/sample/security_groups/authorize-security-group-ingress.rb +36 -0
- data/sample/security_groups/create-security-group.rb +29 -0
- data/sample/security_groups/delete-security-group.rb +28 -0
- data/sample/security_groups/deregister-instances-from-security-group.rb +31 -0
- data/sample/security_groups/describe-security-activities.rb +33 -0
- data/sample/security_groups/describe-security-groups.rb +59 -0
- data/sample/security_groups/register-instances-with-security-group.rb +31 -0
- data/sample/security_groups/revoke-security-group-ingress.rb +36 -0
- data/sample/security_groups/update-security-group.rb +30 -0
- data/sample/volumes/attach-volumes.rb +34 -0
- data/sample/volumes/create-volume.rb +38 -0
- data/sample/volumes/delete-volume.rb +28 -0
- data/sample/volumes/describe-volumes.rb +44 -0
- data/sample/volumes/detach-volume.rb +35 -0
- data/test/test_Cloud.rb +186 -0
- data/test/test_Cloud_availability_zones.rb +50 -0
- data/test/test_Cloud_certificates.rb +627 -0
- data/test/test_Cloud_images.rb +284 -0
- data/test/test_Cloud_instances.rb +941 -0
- data/test/test_Cloud_keypairs.rb +177 -0
- data/test/test_Cloud_load_balancers.rb +1183 -0
- data/test/test_Cloud_responses.rb +43 -0
- data/test/test_Cloud_security_groups.rb +699 -0
- data/test/test_Cloud_volumes.rb +325 -0
- data/test/test_helper.rb +23 -0
- metadata +275 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:group_name => "groupName",
|
24
|
+
#:activity_date => "yyyymmdd",
|
25
|
+
#:range_all => false,
|
26
|
+
#:range_start_number => 1,
|
27
|
+
#:range_end_number => 100
|
28
|
+
}
|
29
|
+
|
30
|
+
pp response = ncs4r.describe_security_activities(options)
|
31
|
+
|
32
|
+
p response.groupName
|
33
|
+
p response.log
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:group_name => ["groupName"],
|
24
|
+
#:filter => [{:name => "group-name",
|
25
|
+
# :value => "groupName"}]
|
26
|
+
}
|
27
|
+
|
28
|
+
pp response = ncs4r.describe_security_groups(options)
|
29
|
+
|
30
|
+
response.securityGroupInfo.item.each do |security_group|
|
31
|
+
p security_group.ownerId
|
32
|
+
p security_group.groupName
|
33
|
+
p security_group.groupDescription
|
34
|
+
p security_group.groupStatus
|
35
|
+
if ip_permissions = security_group.ipPermissions
|
36
|
+
ip_permissions.item.each do |ip_permission|
|
37
|
+
p ip_permission.ipProtocol
|
38
|
+
p ip_permission.fromPort
|
39
|
+
p ip_permission.toPort
|
40
|
+
p ip_permission.inOut
|
41
|
+
if groups = ip_permission.groups
|
42
|
+
groups.item.each do |group|
|
43
|
+
p group.userId
|
44
|
+
p group.groupName
|
45
|
+
end
|
46
|
+
end
|
47
|
+
if ip_ranges = ip_permission.ipRanges
|
48
|
+
ip_ranges.item.each do |ip_range|
|
49
|
+
p ip_range.cidrIp
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
if instances_set = security_group.instancesSet
|
55
|
+
instances_set.item.each do |instance|
|
56
|
+
p instance.instanceId
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:group_name => "groupName",
|
24
|
+
#:instance_id => ["instanceId"]
|
25
|
+
}
|
26
|
+
|
27
|
+
pp response = ncs4r.register_instances_with_security_group(options)
|
28
|
+
|
29
|
+
response.instancesSet.item.each do |instance|
|
30
|
+
p instance.instanceId
|
31
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:user_id => "userId",
|
24
|
+
#:group_name => "group01",
|
25
|
+
#:ip_permissions => [{:ip_protocl => "ipProtocol",
|
26
|
+
# :from_port => 0,
|
27
|
+
# :to_port => 0,
|
28
|
+
# :in_out => "inOut",
|
29
|
+
# :user_id => "userId",
|
30
|
+
# :group_name => "groupName",
|
31
|
+
# :cidr_ip => "*.*.*.*"}]
|
32
|
+
}
|
33
|
+
|
34
|
+
pp response = ncs4r.revoke_security_group_ingress(options)
|
35
|
+
|
36
|
+
p response.return
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:group_name => "groupName",
|
24
|
+
#:group_name_update => "groupNameUpdate",
|
25
|
+
#:group_description_update => "groupDescriptionUpdate"
|
26
|
+
}
|
27
|
+
|
28
|
+
pp response = ncs4r.update_security_group(options)
|
29
|
+
|
30
|
+
p response.return
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:volume_id => "volumeId",
|
24
|
+
#:instance_id => "instanceId",
|
25
|
+
#:device => "device"
|
26
|
+
}
|
27
|
+
|
28
|
+
pp response = ncs4r.attach_volume(options)
|
29
|
+
|
30
|
+
p response.volumeId
|
31
|
+
p response.instanceId
|
32
|
+
p response.device
|
33
|
+
p response.status
|
34
|
+
p response.attachTime
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:size => "size",
|
24
|
+
#:snapshot_id => "snapshotId",
|
25
|
+
#:availability_zone => "availabilityZone",
|
26
|
+
#:volume_id => "volumeId",
|
27
|
+
#:disk_type => "diskType",
|
28
|
+
#:instance_id => "instanceId"
|
29
|
+
}
|
30
|
+
|
31
|
+
pp response = ncs4r.create_volume(options)
|
32
|
+
p response.volumeId
|
33
|
+
p response["size"]
|
34
|
+
p response.diskType
|
35
|
+
p response.snapshotId
|
36
|
+
p response.availabilityZone
|
37
|
+
p response.status
|
38
|
+
p response.createTime
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:volume_id => "volumeId"
|
24
|
+
}
|
25
|
+
|
26
|
+
pp response = ncs4r.delete_volume(options)
|
27
|
+
|
28
|
+
p response.return
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:volume_id => ["volumeId"]
|
24
|
+
}
|
25
|
+
|
26
|
+
pp response = ncs4r.describe_volumes(options)
|
27
|
+
|
28
|
+
response.volumeSet.item.each do |volume|
|
29
|
+
p volume.volumeId
|
30
|
+
p volume["size"]
|
31
|
+
p volume.diskType
|
32
|
+
p volume.snapshotId
|
33
|
+
p volume.availabilityZone
|
34
|
+
p volume.status
|
35
|
+
p volume.createTime
|
36
|
+
volume.attachmentSet.item.each do |attachment|
|
37
|
+
p attachment.volumeId
|
38
|
+
p attachment.instanceId
|
39
|
+
p attachment.device
|
40
|
+
p attachment.status
|
41
|
+
p attachment.attachTime
|
42
|
+
p attachment.deleteOnTermination
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + "/../../lib/NIFTY"
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
17
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
18
|
+
|
19
|
+
|
20
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
21
|
+
|
22
|
+
options = {
|
23
|
+
#:volume_id => "volumeId",
|
24
|
+
#:instance_id => "instanceId",
|
25
|
+
#:device => "device",
|
26
|
+
#:force => false
|
27
|
+
}
|
28
|
+
|
29
|
+
pp response = ncs4r.detach_volume(options)
|
30
|
+
|
31
|
+
p response.volumeId
|
32
|
+
p response.instanceId
|
33
|
+
p response.device
|
34
|
+
p response.status
|
35
|
+
p response.attachTime
|
data/test/test_Cloud.rb
ADDED
@@ -0,0 +1,186 @@
|
|
1
|
+
#!ruby -W0
|
2
|
+
#--
|
3
|
+
# ニフティクラウドSDK for Ruby
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: nifty-cloud-sdk
|
6
|
+
# Author:: NIFTY Corporation
|
7
|
+
# Copyright:: Copyright 2011 NIFTY Corporation All Rights Reserved.
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://cloud.nifty.com/api/
|
10
|
+
#++
|
11
|
+
|
12
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
13
|
+
|
14
|
+
context "Base" do
|
15
|
+
|
16
|
+
before do
|
17
|
+
@modify_instance_attribute_response_body = <<-RESPONSE
|
18
|
+
<ModifyInstanceAttributeResponse xmlns="https://cp.cloud.nifty.com/api/">
|
19
|
+
<return>true</return>
|
20
|
+
</ModifyInstanceAttributeResponse>
|
21
|
+
RESPONSE
|
22
|
+
|
23
|
+
@error_response_body = <<-RESPONSE
|
24
|
+
<Response>
|
25
|
+
<Errors>
|
26
|
+
<Error>
|
27
|
+
<Code>Client.InvalidInstanceID.NotFound</Code>
|
28
|
+
<Message>The instance ID 'noserver' does not exist.</Message>
|
29
|
+
</Error>
|
30
|
+
</Errors>
|
31
|
+
<RequestID>4908b840-5d2c-42b7-a151-abeb01d4c755</RequestID>
|
32
|
+
</Response>
|
33
|
+
RESPONSE
|
34
|
+
|
35
|
+
@options = {
|
36
|
+
:access_key_id => "accesskey",
|
37
|
+
:secret_access_key => "secretkey",
|
38
|
+
:use_ssl => true,
|
39
|
+
:server => "cp.cloud.nifty.com",
|
40
|
+
:path => "/api/1.7",
|
41
|
+
:proxy_server => nil,
|
42
|
+
:port => 443,
|
43
|
+
:connection_timeout => 30,
|
44
|
+
:socket_timeout => 30,
|
45
|
+
:user_agent => "useragent",
|
46
|
+
:max_retry => 3,
|
47
|
+
:signature_version => "2",
|
48
|
+
:signature_method => "HmacSHA256"
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
specify "オプション不正" do
|
53
|
+
# No access key
|
54
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:access_key => nil)) }.should.raise(NIFTY::ArgumentError)
|
55
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:access_key => "")) }.should.raise(NIFTY::ArgumentError)
|
56
|
+
|
57
|
+
# No secret key
|
58
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:secret_key => nil)) }.should.raise(NIFTY::ArgumentError)
|
59
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:secret_key => "")) }.should.raise(NIFTY::ArgumentError)
|
60
|
+
|
61
|
+
# No use ssl
|
62
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:use_ssl => nil)) }.should.raise(NIFTY::ArgumentError)
|
63
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:use_ssl => "")) }.should.raise(NIFTY::ArgumentError)
|
64
|
+
|
65
|
+
# Invalid use ssl
|
66
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:use_ssl => false)) }.should.raise(NIFTY::ArgumentError)
|
67
|
+
|
68
|
+
# No server
|
69
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:server => nil)) }.should.raise(NIFTY::ArgumentError)
|
70
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:server => "")) }.should.raise(NIFTY::ArgumentError)
|
71
|
+
|
72
|
+
# No path
|
73
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:path => nil)) }.should.raise(NIFTY::ArgumentError)
|
74
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:path => "")) }.should.raise(NIFTY::ArgumentError)
|
75
|
+
|
76
|
+
# Invalid signature version
|
77
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:signature_version => "-1")) }.should.raise(NIFTY::ArgumentError)
|
78
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:signature_version => "3")) }.should.raise(NIFTY::ArgumentError)
|
79
|
+
|
80
|
+
# Invalid signature method
|
81
|
+
lambda { @api = NIFTY::Cloud::Base.new(@options.merge(:signature_method => "HmacSHA2")) }.should.raise(NIFTY::ArgumentError)
|
82
|
+
end
|
83
|
+
|
84
|
+
specify "オプション正常" do
|
85
|
+
@options.merge!(:access_key_id => 'access', :secret_access_key => 'secret', :use_ssl => true,
|
86
|
+
:server => 'cp.cloud.nifty.com', :path => '/api/1.7/')
|
87
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
88
|
+
@api.use_ssl.should.equal true
|
89
|
+
@api.server.should.equal 'cp.cloud.nifty.com'
|
90
|
+
@api.path.should.equal '/api/1.7/'
|
91
|
+
|
92
|
+
# max retry
|
93
|
+
@options[:max_retry] = 3
|
94
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
95
|
+
@api.max_retry.should.equal 3
|
96
|
+
|
97
|
+
# connection timeout
|
98
|
+
@options[:connection_timeout] = 30
|
99
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
100
|
+
@api.connection_timeout.should.equal 30
|
101
|
+
@options[:connection_timeout] = -1
|
102
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
103
|
+
@api.connection_timeout.should.equal -1
|
104
|
+
|
105
|
+
# socket timeout
|
106
|
+
@options[:socket_timeout] = 30
|
107
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
108
|
+
@api.socket_timeout.should.equal 30
|
109
|
+
@options[:socket_timeout] = 0
|
110
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
111
|
+
@api.socket_timeout.should.equal 0
|
112
|
+
|
113
|
+
# user agent
|
114
|
+
@options[:user_agent] = 'user'
|
115
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
116
|
+
@api.user_agent.should.equal 'user'
|
117
|
+
|
118
|
+
# signature version
|
119
|
+
@options[:signature_version] = '0'
|
120
|
+
lambda {
|
121
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
122
|
+
@api.signature_version.should.equal '0'
|
123
|
+
@api.stubs(:exec_request).returns stub(:body => @modify_instance_attribute_response_body, :is_a? => true)
|
124
|
+
@api.describe_instances
|
125
|
+
}.should.not.raise(NIFTY::ConfigurationError)
|
126
|
+
@options[:signature_version] = '1'
|
127
|
+
lambda {
|
128
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
129
|
+
@api.signature_version.should.equal '1'
|
130
|
+
@api.stubs(:exec_request).returns stub(:body => @modify_instance_attribute_response_body, :is_a? => true)
|
131
|
+
@api.describe_instances
|
132
|
+
}.should.not.raise(NIFTY::ConfigurationError)
|
133
|
+
@options[:signature_method] = 'HmacSHA1'
|
134
|
+
@options[:signature_version] = '2'
|
135
|
+
lambda {
|
136
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
137
|
+
@api.signature_version.should.equal '2'
|
138
|
+
@api.stubs(:exec_request).returns stub(:body => @modify_instance_attribute_response_body, :is_a? => true)
|
139
|
+
@api.describe_instances
|
140
|
+
}.should.not.raise(NIFTY::ConfigurationError)
|
141
|
+
|
142
|
+
# signature method
|
143
|
+
@options[:signature_method] = 'HmacSHA1'
|
144
|
+
lambda {
|
145
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
146
|
+
@api.signature_method.should.equal 'HmacSHA1'
|
147
|
+
@api.stubs(:exec_request).returns stub(:body => @modify_instance_attribute_response_body, :is_a? => true)
|
148
|
+
@api.describe_instances
|
149
|
+
}.should.not.raise(NIFTY::ConfigurationError)
|
150
|
+
@options[:signature_method] = 'HmacSHA256'
|
151
|
+
lambda {
|
152
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
153
|
+
@api.signature_method.should.equal 'HmacSHA256'
|
154
|
+
@api.stubs(:exec_request).returns stub(:body => @modify_instance_attribute_response_body, :is_a? => true)
|
155
|
+
@api.describe_instances
|
156
|
+
}.should.not.raise(NIFTY::ConfigurationError)
|
157
|
+
end
|
158
|
+
|
159
|
+
specify "pathhashlist引数不正" do
|
160
|
+
@options.merge!(:access_key_id => 'access', :secret_access_key => 'secret', :use_ssl => true,
|
161
|
+
:server => 'cp.cloud.nifty.com', :path => '/api/1.7/', :signature_version => 2, :signature_method => 'HmacSHA256')
|
162
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
163
|
+
lambda { @api.run_instances(:image_id => '1', :key_name => 'key', :password => 'pass', :instance_id => 'serv', :block_device_mapping => 'mapping') }.should.raise(NIFTY::ArgumentError)
|
164
|
+
end
|
165
|
+
|
166
|
+
specify "pathkvlist引数不正" do
|
167
|
+
@options.merge!(:access_key_id => 'access', :secret_access_key => 'secret', :use_ssl => true,
|
168
|
+
:server => 'cp.cloud.nifty.com', :path => '/api/1.7/', :signature_version => 2, :signature_method => 'HmacSHA256')
|
169
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
170
|
+
lambda { @api.describe_security_groups(:group_name => 'gr1', :filter => 'filter') }.should.raise(NIFTY::ArgumentError)
|
171
|
+
end
|
172
|
+
|
173
|
+
specify "レスポンスエラー" do
|
174
|
+
@options.merge!(:access_key_id => 'access', :secret_access_key => 'secret', :use_ssl => true,
|
175
|
+
:server => 'cp.cloud.nifty.com', :path => '/api/1.7/', :signature_version => 2, :signature_method => 'HmacSHA256')
|
176
|
+
@api = NIFTY::Cloud::Base.new(@options)
|
177
|
+
@api.stubs(:exec_request).returns stub(:body => @error_response_body, :is_a? => false)
|
178
|
+
lambda { @api.describe_instances(:instance_id => 'noserver') }.should.raise(NIFTY::ResponseError)
|
179
|
+
begin
|
180
|
+
@api.describe_instances(:instance_id => 'noserver')
|
181
|
+
rescue => e
|
182
|
+
e.error_code.should.equal 'Client.InvalidInstanceID.NotFound'
|
183
|
+
e.error_message.should.equal "The instance ID 'noserver' does not exist."
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|