nifty-cloud-sdk 1.9.beta1 → 1.11.beta1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -350,6 +350,23 @@ RunInstances の例)
350
350
  puts "Error Message: #{e.error_message}"
351
351
  end
352
352
 
353
+ === リージョン/ゾーンの指定方法
354
+
355
+ ==== リージョン指定方法
356
+
357
+ 環境変数または NIFTY::Cloud::Base オブジェクト生成時のコンストラクタにてご指定ください。
358
+
359
+ 環境変数:
360
+
361
+ export NIFTY_CLOUD_ENDPOINT_URL='https://east-1.cp.cloud.nifty.com/api/'
362
+
363
+ コンストラクタ:
364
+
365
+ ncs4r = NIFTY::Cloud::Base.new(:server => 'west-1.cp.cloud.nifty.com', :path => '/api/')
366
+
367
+ ==== ゾーン指定方法
368
+
369
+ 各メソッドのドキュメントをご参照ください。
353
370
 
354
371
  == 謝辞
355
372
 
@@ -3,8 +3,13 @@ module NIFTY
3
3
  class Base < NIFTY::Base
4
4
  ZONES_IGNORED_PARAMS = Regexp.new(/ZoneName\.\d+/)
5
5
 
6
- # API「DescribeAvailabilityZones」を実行し、利用可能なゾーンの情報を取得します。常に、ゾーン「ap-japan-1a」の情報が返されます。
6
+ # API「DescribeAvailabilityZones」を実行し、利用可能なゾーンの情報を取得します。
7
7
  #
8
+ # ファイアウォールが利用可能なゾーンでは、securityGroupSupportedタグにtrueが返ります。
9
+ #
10
+ # サーバー、ロードバランサー、ファイアウォール作成時にゾーンを省略した場合、isDefaultタグがtrueのゾーンに作成されます。
11
+ #
12
+ # @option options [Array<String>] :zone_name ゾーン名
8
13
  # @return [Hash] レスポンスXML解析結果
9
14
  #
10
15
  # @example
@@ -18,6 +23,24 @@ module NIFTY
18
23
 
19
24
  return response_generator(params)
20
25
  end
26
+
27
+
28
+ # API「DescribeRegions」を実行し、利用可能なリージョンの情報を取得します。
29
+ #
30
+ # @option options [Array<String>] :region_name リージョン名
31
+ # @return [Hash] レスポンスXML解析結果
32
+ #
33
+ # @example
34
+ # describe_regions(:region_name => 'east-1')
35
+ #
36
+ def describe_regions( options={} )
37
+ params = {'Action' => 'DescribeRegions'}
38
+ params.merge!(pathlist('RegionName', options[:region_name]))
39
+
40
+ params.reject! {|k, v| ZONES_IGNORED_PARAMS =~ k } if @@ignore_amz_params
41
+
42
+ return response_generator(params)
43
+ end
21
44
  end
22
45
  end
23
46
  end
@@ -47,9 +47,11 @@ module NIFTY
47
47
  # タイムアウトした場合は、API「DescribeImages」のレスポンス「imageState」でカスタマイズイメージのステータスを確認できます。
48
48
  # 処理が失敗した場合、カスタマイズイメージは保存されず、エラーが返されます。
49
49
  #
50
- # @option options [String] :instance_id イメージ化元サーバー(必須)
51
- # @option options [String] :name イメージ名(必須)
52
- # @option options [Boolean] :left_instance イメージ化元サーバーを残す
50
+ # @option options [String] :instance_id イメージ化元サーバー(必須)
51
+ # @option options [String] :name イメージ名(必須)
52
+ # @option options [Boolean] :left_instance イメージ化元サーバーを残す
53
+ # @option options [String] :region_name リージョン情報
54
+ # @option options [String] :availability_zone ゾーン情報
53
55
  # 許可値: true(サーバーを残す) | false(サーバーを残さない)
54
56
  # @return [Hash] レスポンスXML解析結果
55
57
  #
@@ -64,6 +66,7 @@ module NIFTY
64
66
 
65
67
  params = { 'Action' => 'CreateImage' }
66
68
  params.merge!(opts_to_prms(options, [:instance_id, :name, :description, :no_reboot, :left_instance]))
69
+ params.merge!(opts_to_prms(options, [:region_name, :availability_zone], 'Placement'))
67
70
 
68
71
  params.reject! {|k, v| IMAGES_IGNORED_PARAMS =~ k } if @@ignore_amz_params
69
72
 
@@ -163,6 +163,8 @@ module NIFTY
163
163
  # 許可値: 半角英数字
164
164
  # @option options [String] :ip_type IPアドレスタイプ
165
165
  # 許可値: static | dynamic | none
166
+ # @option options [Boolean] :agreement Red Hat Enterprise Linux 5.8 64bit / 6.3 64bit を指定した場合の同意
167
+ # 許可値: true (同意する) | false (同意しない)
166
168
  # @return [Hash] レスポンスXML解析結果
167
169
  #
168
170
  # @example
@@ -185,6 +187,7 @@ module NIFTY
185
187
  raise ArgumentError, "Invalid :accounting_type provided." unless blank?(options[:accounting_type]) || ACCOUNTING_TYPE.include?(options[:accounting_type].to_s)
186
188
  raise ArgumentError, "Invalid :ip_type provided." unless blank?(options[:ip_type]) || IP_TYPE.include?(options[:ip_type].to_s)
187
189
  raise ArgumentError, ":base64_encoded must be 'true' or 'false'." unless [true, false].include?(options[:base64_encoded])
190
+ raise ArgumentError, "Invalid :agreement provided." unless blank?(options[:agreement]) || BOOLEAN.include?(options[:agreement].to_s)
188
191
 
189
192
  user_data = extract_user_data(options)
190
193
  options[:user_data] = user_data
@@ -200,7 +203,7 @@ module NIFTY
200
203
  :ebs_no_device => 'Ebs.NoDevice' })) unless blank?(options[:block_device_mapping])
201
204
  params.merge!(opts_to_prms(options, [:image_id, :min_count, :max_count, :key_name, :additional_info, :user_data, :addressing_type,
202
205
  :instance_type, :kernel_id, :ramdisk_id, :subnet_id, :disable_api_termination, :instance_initiated_shutdown_behavior,
203
- :accounting_type, :instance_id, :admin, :password, :ip_type]))
206
+ :accounting_type, :instance_id, :admin, :password, :ip_type, :agreement]))
204
207
  params.merge!(opts_to_prms(options, [:availability_zone, :group_name], 'Placement'))
205
208
 
206
209
  params.reject! {|k, v| INSTANCES_IGNORED_PARAMS =~ k } if @@ignore_amz_params
@@ -321,6 +324,8 @@ module NIFTY
321
324
  # [Integer] :instance_port - 宛先ポート
322
325
  # @option options [Array<String>] :security_group ファイアウォールグループ名
323
326
  # @option options [Integer] :copy_count コピー台数
327
+ # @option options [String] :region_name リージョン情報
328
+ # @option options [String] :availability_zone ゾーン情報
324
329
  # @return [Hash] レスポンスXML解析結果
325
330
  #
326
331
  # @example
@@ -363,6 +368,7 @@ module NIFTY
363
368
  params.merge!(pathlist('CopyInstance.SecurityGroup', options[:security_group]))
364
369
  params.merge!(opts_to_prms(options, [:instance_id, :copy_count]))
365
370
  params.merge!(opts_to_prms(options, [:instance_name, :instance_type, :accounting_type], 'CopyInstance'))
371
+ params.merge!(opts_to_prms(options, [:region_name, :availability_zone], 'CopyInstance.Placement'))
366
372
 
367
373
  return response_generator(params)
368
374
  end
@@ -83,6 +83,7 @@ module NIFTY
83
83
  # @option options [String] :ip_version グローバルIP アドレスのバージョン
84
84
  # 許可値: v4
85
85
  # @option options [String] :accounting_type 利用料金タイプ
86
+ # @option options [String] :availability_zones ゾーン情報
86
87
  # 許可値: 1(月額課金) | 2(従量課金)
87
88
  # @return [Hash] レスポンスXML解析結果
88
89
  #
@@ -87,6 +87,7 @@ module NIFTY
87
87
  # @option options [String] :group_name ファイアウォールグループ名(必須)
88
88
  # 使用可能文字: 半角英数字
89
89
  # @option options [String] :group_description ファイアウォールグループのメモ
90
+ # @option options [String] :availability_zone ゾーン情報
90
91
  # @return [Hash] レスポンスXML解析結果
91
92
  #
92
93
  # @example
@@ -98,6 +99,7 @@ module NIFTY
98
99
 
99
100
  params = {'Action' => 'CreateSecurityGroup'}
100
101
  params.merge!(opts_to_prms(options, [:group_name, :group_description]))
102
+ params.merge!(opts_to_prms(options, [:availability_zone], 'Placement'))
101
103
 
102
104
  return response_generator(params)
103
105
  end
data/lib/NIFTY/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module NIFTY
2
- VERSION = '1.9.beta1'
2
+ VERSION = '1.11.beta1'
3
3
  end
@@ -19,27 +19,52 @@ context "availability_zones" do
19
19
  :signature_version => '2', :signature_method => 'HmacSHA256')
20
20
 
21
21
  @describe_availability_zones_response_body = <<-RESPONSE
22
- <DescribeAvailabilityZonesResponse xmlns="http://xxxx.nifty.com/xxx/xxx/">
23
- <availabilityZoneInfo>
24
- <item>
25
- <zoneName>ap-japan-1a</zoneName>
26
- <zoneState>available</zoneState>
27
- <regionName>ap-japan-1</regionName>
28
- </item>
29
- </availabilityZoneInfo>
30
- </DescribeAvailabilityZonesResponse>
22
+ <DescribeAvailabilityZonesResponse xmlns="https://cp.cloud.nifty.com/api/">
23
+  <availabilityZoneInfo>
24
+   <item>
25
+    <zoneName>east-11</zoneName>
26
+    <zoneState>available</zoneState>
27
+    <regionName>east-1</regionName>
28
+    <messageSet>
29
+     <item>
30
+      <message/>
31
+     </item>
32
+    </messageSet>
33
+    <securityGroupSupported>true</securityGroupSupported>
34
+    <isDefault>true</isDefault>
35
+   </item>
36
+  </availabilityZoneInfo>
37
+ </DescribeAvailabilityZonesResponse>
38
+ RESPONSE
39
+ @describe_regions_response_body = <<-RESPONSE
40
+ <DescribeRegionsResponse xmlns="https://cp.cloud.nifty.com/api/">
41
+ <requestId>f6dd8353-eb6b-6b4fd32e4f05</requestId>
42
+ <regionInfo>
43
+ <item>
44
+ <regionName>east-1</regionName>
45
+ <regionEndpoint>east-1.cloud.nifty.com</regionEndpoint>
46
+ <messageSet>
47
+ <item>
48
+ <message/>
49
+ </item>
50
+ </messageSet>
51
+ <isDefault>true</isDefault>
52
+ </item>
53
+ </regionInfo>
54
+ </DescribeRegionsResponse>
31
55
  RESPONSE
32
-
33
56
  end
34
57
 
35
58
 
36
59
  # describe_availability_zones
37
60
  specify "describe_availability_zones - レスポンスを正しく解析できるか" do
38
61
  @api.stubs(:exec_request).returns stub(:body => @describe_availability_zones_response_body, :is_a? => true)
39
- response = @api.describe_availability_zones(:zone_name => 'ap-japan-1a')
40
- response.availabilityZoneInfo.item[0].zoneName.should.equal 'ap-japan-1a'
62
+ response = @api.describe_availability_zones(:zone_name => 'east-11')
63
+ response.availabilityZoneInfo.item[0].zoneName.should.equal 'east-11'
41
64
  response.availabilityZoneInfo.item[0].zoneState.should.equal 'available'
42
- response.availabilityZoneInfo.item[0].regionName.should.equal 'ap-japan-1'
65
+ response.availabilityZoneInfo.item[0].regionName.should.equal 'east-1'
66
+ response.availabilityZoneInfo.item[0].securityGroupSupported.should.equal 'true'
67
+ response.availabilityZoneInfo.item[0].isDefault.should.equal 'true'
43
68
  end
44
69
 
45
70
  specify "describe_availability_zones - :key_name正常" do
@@ -48,4 +73,20 @@ context "availability_zones" do
48
73
  lambda { @api.describe_availability_zones(:zone_name => %w(foo bar)) }.should.not.raise(NIFTY::ArgumentError)
49
74
  end
50
75
 
76
+ # describe_regions
77
+ specify "describe_regions - レスポンスを正しく解析できるか" do
78
+ @api.stubs(:exec_request).returns stub(:body => @describe_regions_response_body, :is_a? => true)
79
+ response = @api.describe_regions(:zone_name => 'east-11')
80
+ response.requestId.should.equal 'f6dd8353-eb6b-6b4fd32e4f05'
81
+ response.regionInfo.item[0].regionName.should.equal 'east-1'
82
+ response.regionInfo.item[0].regionEndpoint.should.equal 'east-1.cloud.nifty.com'
83
+ response.regionInfo.item[0].isDefault.should.equal 'true'
84
+ end
85
+
86
+ specify "describe_regions - :region_name正常" do
87
+ @api.stubs(:exec_request).returns stub(:body => @describe_availability_zones_response_body, :is_a? => true)
88
+ lambda { @api.describe_regions(:region_name => 'foo') }.should.not.raise(NIFTY::ArgumentError)
89
+ lambda { @api.describe_regions(:region_name => %w(foo bar)) }.should.not.raise(NIFTY::ArgumentError)
90
+ end
91
+
51
92
  end
@@ -38,6 +38,10 @@ context "images" do
38
38
  <imageType>machine</imageType>
39
39
  <platform>centos</platform>
40
40
  <name>CentOS 5.3 32bit Plain</name>
41
+ <placement>
42
+ <regionName>east-1</regionName>
43
+ <availabilityZone>east-11</availabilityZone>
44
+ </placement>
41
45
  <rootDeviceType>disk</rootDeviceType>
42
46
  </item>
43
47
  </imagesSet>
@@ -74,10 +78,13 @@ context "images" do
74
78
  "Name" => "a",
75
79
  "Description" => "a",
76
80
  "NoReboot" => "a",
77
- "LeftInstance" => "true"
81
+ "LeftInstance" => "true",
82
+ "Placement.RegionName" => "east-1",
83
+ "Placement.AvailabilityZone" => "east-11"
78
84
  ).returns stub(:body => @create_image_response_body, :is_a? => true)
79
85
  @api.stubs(:exec_request).returns stub(:body => @create_image_response_body, :is_a? => true)
80
- response = @api.create_image( :instance_id => "a", :name => "a", :description => "a", :no_reboot => "a", :left_instance => true )
86
+ response = @api.create_image( :instance_id => "a", :name => "a", :description => "a", :no_reboot => "a", :left_instance => true,
87
+ :region_name => "east-1", :availability_zone => "east-11" )
81
88
  end
82
89
 
83
90
  specify "create_image - :instance_id, :name正常" do
@@ -131,6 +138,8 @@ context "images" do
131
138
  response.imagesSet.item[0].imageType.should.equal 'machine'
132
139
  response.imagesSet.item[0].platform.should.equal 'centos'
133
140
  response.imagesSet.item[0].name.should.equal 'CentOS 5.3 32bit Plain'
141
+ response.imagesSet.item[0].placement.regionName.should.equal 'east-1'
142
+ response.imagesSet.item[0].placement.availabilityZone.should.equal 'east-11'
134
143
  response.imagesSet.item[0].rootDeviceType.should.equal 'disk'
135
144
  end
136
145
 
@@ -22,6 +22,7 @@ context "instances" do
22
22
  @valid_ip_type = %w(static dynamic none)
23
23
  @accounting_type = [1, 2, '1', '2']
24
24
  @windows_image_id = [12, 16, '12', '16']
25
+ @valid_agreement = [true, false, 'true', 'false']
25
26
 
26
27
  @basic_run_instances_options = {:security_group => "gr01", :image_id => 2, :key_name => 'foo', :password => 'password'}
27
28
  @basic_import_instance_options = {:ovf => "dummy"}
@@ -85,7 +86,7 @@ context "instances" do
85
86
  <instanceType>mini</instanceType>
86
87
  <launchTime>2010-05-17T11:22:33.456Z</launchTime>
87
88
  <placement>
88
- <availabilityZone>ap-japan-1a</availabilityZone>
89
+ <availabilityZone>east-11</availabilityZone>
89
90
  </placement>
90
91
  <kernelId />
91
92
  <ramdiskId />
@@ -268,7 +269,7 @@ context "instances" do
268
269
  response.reservationSet.item[0].instancesSet.item[0].amiLaunchIndex.should.equal nil
269
270
  response.reservationSet.item[0].instancesSet.item[0].instanceType.should.equal "mini"
270
271
  response.reservationSet.item[0].instancesSet.item[0].launchTime.should.equal "2010-05-17T11:22:33.456Z"
271
- response.reservationSet.item[0].instancesSet.item[0].placement.availabilityZone.should.equal "ap-japan-1a"
272
+ response.reservationSet.item[0].instancesSet.item[0].placement.availabilityZone.should.equal "east-11"
272
273
  response.reservationSet.item[0].instancesSet.item[0].kernelId.should.equal nil
273
274
  response.reservationSet.item[0].instancesSet.item[0].ramdiskId.should.equal nil
274
275
  response.reservationSet.item[0].instancesSet.item[0].platform.should.equal nil
@@ -482,7 +483,8 @@ context "instances" do
482
483
  'InstanceId' => 'server01',
483
484
  'Admin' => 'admin',
484
485
  'Password' => 'pass',
485
- 'IpType' => 'static'
486
+ 'IpType' => 'static',
487
+ 'Agreement' => 'true'
486
488
  ).returns stub(:body => @run_instances_response_body, :is_a? => true)
487
489
  @api.stubs(:exec_request).returns stub(:body => @run_instances_response_body, :is_a? => true)
488
490
  response = @api.run_instances(:image_id => 1, :min_count => 1, :max_count => 3, :key_name => 'key', :security_group => %w(gr1 gr2), :user_data => 'data',
@@ -493,7 +495,7 @@ context "instances" do
493
495
  {:device_name => 'dev2', :virtual_name => 'vir2', :ebs_snapshot_id => 'snap2', :ebs_volume_size => 'size2',
494
496
  :ebs_delete_on_termination => 'del2', :ebs_no_device => 'nodev2'}],
495
497
  :monitoring_enabled => 'en', :subnet_id => 'sub', :disable_api_termination => false, :instance_initiated_shutdown_behavior => 'aaa',
496
- :accounting_type => 1, :instance_id => 'server01', :admin => 'admin', :password => 'pass', :ip_type => 'static')
498
+ :accounting_type => 1, :instance_id => 'server01', :admin => 'admin', :password => 'pass', :ip_type => 'static', :agreement => true)
497
499
  end
498
500
 
499
501
  specify "run_instances - :image_id, :key_name, :password正常" do
@@ -623,6 +625,13 @@ context "instances" do
623
625
  end
624
626
  end
625
627
 
628
+ specify "run_instances - :agreement正常" do
629
+ @api.stubs(:exec_request).returns stub(:body => @run_instances_response_body, :is_a? => true)
630
+ @valid_agreement.each do |agreement|
631
+ lambda { @api.run_instances(@basic_run_instances_options.merge(:agreement => agreement)) }.should.not.raise(NIFTY::ArgumentError)
632
+ end
633
+ end
634
+
626
635
  specify "run_instances - :image_id未指定/不正" do
627
636
  lambda { @api.run_instances }.should.raise(NIFTY::ArgumentError)
628
637
  lambda { @api.run_instances(:image_id => '') }.should.raise(NIFTY::ArgumentError)
@@ -672,6 +681,11 @@ context "instances" do
672
681
  lambda { @api.run_instances(@basic_run_instances_options.merge(:ip_type => 5)) }.should.raise(NIFTY::ArgumentError)
673
682
  end
674
683
 
684
+ specify "run_instances - :agreement不正" do
685
+ lambda { @api.run_instances(@basic_run_instances_options.merge(:agreement => 'agree')) }.should.raise(NIFTY::ArgumentError)
686
+ lambda { @api.run_instances(@basic_run_instances_options.merge(:agreement => 1)) }.should.raise(NIFTY::ArgumentError)
687
+ end
688
+
675
689
 
676
690
  # start_instances
677
691
  specify "start_instances - レスポンスを正しく解析できるか" do
@@ -873,6 +887,8 @@ context "instances" do
873
887
  'CopyInstance.InstanceType' => 'mini',
874
888
  'CopyInstance.AccountingType' => '1',
875
889
  'CopyInstance.ipType' => 'static',
890
+ 'CopyInstance.Placement.RegionName' => 'east-1',
891
+ 'CopyInstance.Placement.AvailabilityZone' => 'east-11',
876
892
  'CopyInstance.LoadBalancers.1.LoadBalancerName' => 'lb1',
877
893
  'CopyInstance.LoadBalancers.1.LoadBalancerPort' => '80',
878
894
  'CopyInstance.LoadBalancers.1.InstancePort' => '80',
@@ -887,7 +903,7 @@ context "instances" do
887
903
  response = @api.copy_instances( :instance_id => "server01", :instance_name => 'cpy', :instance_type => 'mini', :accounting_type => 1, :ip_type => 'static',
888
904
  :load_balancers => [{:load_balancer_name => 'lb1', :load_balancer_port => 80, :instance_port => 80},
889
905
  {:load_balancer_name => 'lb2', :load_balancer_port => 80, :instance_port => 80}],
890
- :security_group => %w(gr1 gr2), :copy_count => 2
906
+ :security_group => %w(gr1 gr2), :copy_count => 2, :region_name => 'east-1', :availability_zone => 'east-11'
891
907
  )
892
908
  end
893
909
 
@@ -133,7 +133,7 @@ context "load_balancers" do
133
133
  </IPAddresses>
134
134
  </Filter>
135
135
  <AvailabilityZones>
136
- <member>ap-japan-1a</member>
136
+ <member>east-11</member>
137
137
  </AvailabilityZones>
138
138
  <CreatedTime>2010-05-17T11:22:33.456Z</CreatedTime>
139
139
  <AccountingType>1</AccountingType>
@@ -186,7 +186,7 @@ context "load_balancers" do
186
186
  </IPAddresses>
187
187
  </Filter>
188
188
  <AvailabilityZones>
189
- <member>ap-japan-1a</member>
189
+ <member>east-12</member>
190
190
  </AvailabilityZones>
191
191
  <CreatedTime>2010-05-17T11:22:43.789Z</CreatedTime>
192
192
  <AccountingType>1</AccountingType>
@@ -693,7 +693,7 @@ context "load_balancers" do
693
693
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].Filter.FilterType.should.equal '1'
694
694
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].Filter.IPAddresses.member[0].should.equal '111.111.111.111'
695
695
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].Filter.IPAddresses.member[1].should.equal '111.111.111.112'
696
- response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].AvailabilityZones.member[0].should.equal 'ap-japan-1a'
696
+ response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].AvailabilityZones.member[0].should.equal 'east-11'
697
697
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].CreatedTime.should.equal '2010-05-17T11:22:33.456Z'
698
698
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].Option.SessionStickinessPolicy.Enabled.should.equal 'true'
699
699
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].Option.SessionStickinessPolicy.ExpirationPeriod.should.equal '10'
@@ -717,7 +717,7 @@ context "load_balancers" do
717
717
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[1].member[0].HealthCheck.HealthyThreshold.should.equal '1'
718
718
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[1].member[0].Filter.FilterType.should.equal '1'
719
719
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[1].member[0].Filter.IPAddresses.member[0].should.equal '*.*.*.*'
720
- response.DescribeLoadBalancersResult.LoadBalancerDescriptions[1].member[0].AvailabilityZones.member[0].should.equal 'ap-japan-1a'
720
+ response.DescribeLoadBalancersResult.LoadBalancerDescriptions[1].member[0].AvailabilityZones.member[0].should.equal 'east-12'
721
721
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[1].member[0].CreatedTime.should.equal '2010-05-17T11:22:43.789Z'
722
722
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].Option.SessionStickinessPolicy.Enabled.should.equal 'true'
723
723
  response.DescribeLoadBalancersResult.LoadBalancerDescriptions[0].member[0].Option.SessionStickinessPolicy.ExpirationPeriod.should.equal '10'
@@ -175,10 +175,11 @@ context "security_groups" do
175
175
  specify "create_security_group - パラメータが正しく作られるか" do
176
176
  @api.stubs(:make_request).with("Action" => "CreateSecurityGroup",
177
177
  "GroupName" => "a",
178
- "GroupDescription" => "a"
178
+ "GroupDescription" => "a",
179
+ "Placement.AvailabilityZone" => "east-12"
179
180
  ).returns stub(:body => @create_security_group_response_body, :is_a? => true)
180
181
  @api.stubs(:exec_request).returns stub(:body => @create_security_group_response_body, :is_a? => true)
181
- response = @api.create_security_group(:group_name => "a", :group_description => "a")
182
+ response = @api.create_security_group(:group_name => "a", :group_description => "a", :availability_zone => "east-12")
182
183
  end
183
184
 
184
185
  specify "create_security_group - :group_name正常" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nifty-cloud-sdk
3
3
  version: !ruby/object:Gem::Version
4
- hash: 62196233
5
- prerelease: 4
4
+ hash: 62196249
5
+ prerelease: 5
6
6
  segments:
7
7
  - 1
8
- - 9
8
+ - 11
9
9
  - beta
10
10
  - 1
11
- version: 1.9.beta1
11
+ version: 1.11.beta1
12
12
  platform: ruby
13
13
  authors:
14
14
  - NIFTY Corporation
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-11-24 00:00:00 +09:00
19
+ date: 2012-11-25 00:00:00 +09:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency