tengine_resource 0.5.15 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/Gemfile +1 -27
  2. data/Gemfile.lock +60 -73
  3. data/README.rdoc +2 -2
  4. data/bin/create_indexes_for_tengine_resource +18 -0
  5. data/lib/tengine/resource/config/resource.rb +0 -3
  6. data/lib/tengine/resource/credential.rb +16 -17
  7. data/lib/tengine/resource/net_ssh.rb +22 -10
  8. data/lib/tengine/resource/physical_server.rb +8 -0
  9. data/lib/tengine/resource/provider.rb +206 -35
  10. data/lib/tengine/resource/server.rb +3 -3
  11. data/lib/tengine/resource/virtual_server.rb +1 -1
  12. data/lib/tengine/resource/virtual_server_image.rb +8 -8
  13. data/lib/tengine/resource/virtual_server_type.rb +2 -2
  14. data/lib/tengine/resource/watcher.rb +39 -9
  15. data/tmp/.gitkeep +0 -0
  16. metadata +92 -141
  17. data/.document +0 -5
  18. data/.rspec +0 -1
  19. data/Rakefile +0 -42
  20. data/VERSION +0 -1
  21. data/config/.gitignore +0 -2
  22. data/lib/tengine/resource/credential/ec2.rb +0 -5
  23. data/lib/tengine/resource/credential/ec2/dummy.rb +0 -148
  24. data/lib/tengine/resource/credential/ec2/launch_options.rb +0 -179
  25. data/lib/tengine/resource/provider/ec2.rb +0 -187
  26. data/lib/tengine/resource/provider/wakame.rb +0 -638
  27. data/spec/fixtures/goku_at_ec2_ap_northeast.rb +0 -177
  28. data/spec/mongoid.yml +0 -35
  29. data/spec/mongoid_en.yml +0 -48
  30. data/spec/spec_helper.rb +0 -43
  31. data/spec/support/ec2.rb +0 -129
  32. data/spec/support/mongo_index_key_log.rb +0 -91
  33. data/spec/tengine/resource/bugfix/watcher_for_wakame_spec.rb +0 -232
  34. data/spec/tengine/resource/credential_spec.rb +0 -205
  35. data/spec/tengine/resource/drivers/resource_control_driver_spec.rb +0 -84
  36. data/spec/tengine/resource/net_ssh_spec.rb +0 -148
  37. data/spec/tengine/resource/physical_server_spec.rb +0 -47
  38. data/spec/tengine/resource/provider/ec2_spec.rb +0 -473
  39. data/spec/tengine/resource/provider/test_files/describe_host_nodes.json +0 -22
  40. data/spec/tengine/resource/provider/test_files/describe_images.json +0 -23
  41. data/spec/tengine/resource/provider/test_files/describe_instance_specs.json +0 -23
  42. data/spec/tengine/resource/provider/test_files/describe_instances.json +0 -56
  43. data/spec/tengine/resource/provider/test_files/run_instances.json +0 -30
  44. data/spec/tengine/resource/provider/test_files/terminate_instances.json +0 -3
  45. data/spec/tengine/resource/provider/wakame/00_describe_host_nodes_0_physical_servers.json +0 -8
  46. data/spec/tengine/resource/provider/wakame/01_describe_host_nodes_10_physical_servers.json +0 -139
  47. data/spec/tengine/resource/provider/wakame/02_describe_host_nodes_60_physical_servers.json +0 -795
  48. data/spec/tengine/resource/provider/wakame/10_describe_instances_0_virtual_servers.json +0 -8
  49. data/spec/tengine/resource/provider/wakame/11_describe_instances_10_virtual_servers.json +0 -469
  50. data/spec/tengine/resource/provider/wakame/12_describe_instances_after_run_instances.json +0 -280
  51. data/spec/tengine/resource/provider/wakame/13_describe_instances_after_terminate_instances.json +0 -279
  52. data/spec/tengine/resource/provider/wakame/20_describe_images_0_virtual_server_images.json +0 -8
  53. data/spec/tengine/resource/provider/wakame/21_describe_images_5_virtual_server_images.json +0 -84
  54. data/spec/tengine/resource/provider/wakame/22_describe_images_60_virtual_server_images.json +0 -856
  55. data/spec/tengine/resource/provider/wakame/30_describe_instance_specs_0_virtual_server_specs.json +0 -8
  56. data/spec/tengine/resource/provider/wakame/31_describe_instance_specs_4_virtual_server_specs.json +0 -66
  57. data/spec/tengine/resource/provider/wakame/40_run_instances_0_virtual_servers.json +0 -1
  58. data/spec/tengine/resource/provider/wakame/41_run_instances_1_virtual_servers.json +0 -22
  59. data/spec/tengine/resource/provider/wakame/42_run_instances_5_virtual_servers.json +0 -106
  60. data/spec/tengine/resource/provider/wakame/50_terminate_instances_0_virtual_servers.json +0 -1
  61. data/spec/tengine/resource/provider/wakame/51_terminate_instances_3_virtual_servers.json +0 -5
  62. data/spec/tengine/resource/provider/wakame/sync_physical_servers_spec.rb +0 -114
  63. data/spec/tengine/resource/provider/wakame/sync_virtual_server_images_spec.rb +0 -116
  64. data/spec/tengine/resource/provider/wakame/sync_virtual_server_types_spec.rb +0 -116
  65. data/spec/tengine/resource/provider/wakame/sync_virtual_servers_spec.rb +0 -216
  66. data/spec/tengine/resource/provider/wakame_api_spec.rb +0 -319
  67. data/spec/tengine/resource/provider/wakame_spec.rb +0 -339
  68. data/spec/tengine/resource/provider_spec.rb +0 -252
  69. data/spec/tengine/resource/server_spec.rb +0 -195
  70. data/spec/tengine/resource/test_files/.gitignore +0 -6
  71. data/spec/tengine/resource/test_files/00_describe_host_nodes_0_physical_servers.json +0 -8
  72. data/spec/tengine/resource/test_files/01_describe_host_nodes_10_physical_servers.json +0 -139
  73. data/spec/tengine/resource/test_files/02_describe_host_nodes_60_physical_servers.json +0 -795
  74. data/spec/tengine/resource/test_files/10_describe_instances_0_virtual_servers.json +0 -8
  75. data/spec/tengine/resource/test_files/11_describe_instances_10_virtual_servers.json +0 -469
  76. data/spec/tengine/resource/test_files/12_describe_instances_after_run_instances.json +0 -280
  77. data/spec/tengine/resource/test_files/13_describe_instances_after_terminate_instances.json +0 -279
  78. data/spec/tengine/resource/test_files/14_describe_instances_after_run_1_instance.json +0 -55
  79. data/spec/tengine/resource/test_files/20_describe_images_0_virtual_server_images.json +0 -8
  80. data/spec/tengine/resource/test_files/21_describe_images_5_virtual_server_images.json +0 -84
  81. data/spec/tengine/resource/test_files/22_describe_images_60_virtual_server_images.json +0 -856
  82. data/spec/tengine/resource/test_files/30_describe_instance_specs_0_virtual_server_specs.json +0 -8
  83. data/spec/tengine/resource/test_files/31_describe_instance_specs_4_virtual_server_specs.json +0 -66
  84. data/spec/tengine/resource/test_files/40_run_instances_0_virtual_servers.json +0 -1
  85. data/spec/tengine/resource/test_files/41_run_instances_1_virtual_servers.json +0 -22
  86. data/spec/tengine/resource/test_files/42_run_instances_5_virtual_servers.json +0 -106
  87. data/spec/tengine/resource/test_files/43_run_instances_1_virtual_servers_without_aws_availability_zone.json +0 -22
  88. data/spec/tengine/resource/test_files/50_terminate_instances_0_virtual_servers.json +0 -1
  89. data/spec/tengine/resource/test_files/51_terminate_instances_3_virtual_servers.json +0 -5
  90. data/spec/tengine/resource/virtual_server_image_spec.rb +0 -94
  91. data/spec/tengine/resource/virtual_server_spec.rb +0 -116
  92. data/spec/tengine/resource/virtual_server_type_spec.rb +0 -4
  93. data/spec/tengine/resource/watcher_spec.rb +0 -1027
  94. data/spec/tengine_resource_spec.rb +0 -5
  95. data/tengine_resource.gemspec +0 -172
  96. data/tmp/log/.gitignore +0 -1
@@ -1,232 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require 'spec_helper'
3
- require 'eventmachine'
4
- require 'amqp'
5
- require 'tengine/mq/suite'
6
- require 'apis/wakame'
7
- require 'controllers/controller'
8
-
9
- describe Tengine::Resource::Provider::Wakame do
10
-
11
- before :all do
12
- class Tengine::Resource::VirtualServerType
13
- def destroy; $stdout.puts "invoked"; super; end
14
- end
15
- class Tengine::Resource::VirtualServerImage
16
- def destroy; $stdout.puts "invoked"; super; end
17
- end
18
- class Tengine::Resource::PhysicalServer
19
- def destroy; $stdout.puts "invoked"; super; end
20
- end
21
- class Tengine::Resource::VirtualServer
22
- def destroy; $stdout.puts "invoked"; super; end
23
- end
24
- end
25
-
26
- after :all do
27
- Tengine::Resource::VirtualServerType.class_eval { remove_method :destroy }
28
- Tengine::Resource::VirtualServerImage.class_eval { remove_method :destroy }
29
- Tengine::Resource::PhysicalServer.class_eval { remove_method :destroy }
30
- Tengine::Resource::VirtualServer.class_eval { remove_method :destroy }
31
- end
32
-
33
- before do
34
- Tengine::Resource::Provider.delete_all
35
- @provider_wakame = Tengine::Resource::Provider::Wakame.create!({
36
- :name => "wakame-vdc",
37
- :description => "",
38
- :properties => {
39
- :key_name => "ssh-xxxxx"
40
- },
41
- :polling_interval => 5,
42
- :connection_settings => {
43
- :account => "tama_account1",
44
- :ec2_host => "10.10.10.10",
45
- :ec2_port => 80,
46
- :ec2_protocol => "https",
47
- :wakame_host => "192.168.0.10",
48
- :wakame_port => 8080,
49
- :wakame_protocol => "http",
50
- },
51
- })
52
- Tengine::Resource::VirtualServerType.delete_all
53
- @virtual_server_type_wakame = @provider_wakame.virtual_server_types.create!({
54
- :provided_id => "is-demospec",
55
- :caption => "is-demospec",
56
- :cpu_cores => 2,
57
- :memory_size => 512,
58
- :properties => {
59
- :arch => "x86_64",
60
- :hypervisor => "kvm",
61
- :account_id => "a-shpoolxx",
62
- :vifs => "--- \neth0: \n :bandwidth: 100000\n :index: 0\n",
63
- :quota_weight => "1.0",
64
- :drives => "--- \nephemeral1: \n :type: :local\n :size: 100\n :index: 0\n",
65
- :created_at => "2011-10-28T02:58:57Z",
66
- :updated_at => "2011-10-28T02:58:57Z",
67
- }
68
- })
69
- Tengine::Resource::VirtualServerImage.delete_all
70
- @virtual_server_image_wakame = @provider_wakame.virtual_server_images.create!({
71
- :name => "vimage",
72
- :description => "",
73
- :provided_id => "wmi-lucid6",
74
- :provided_description => "ubuntu-10.04_with-metadata_kvm_i386.raw volume",
75
- })
76
- Tengine::Resource::PhysicalServer.delete_all
77
- @physical_server_wakame = @provider_wakame.physical_servers.create!({
78
- :name => "demohost",
79
- :description => "",
80
- :provided_id => "hp-demohost",
81
- :status => "online",
82
- :addresses => {},
83
- :address_order => [],
84
- :cpu_cores => 100,
85
- :memory_size => 400000,
86
- :properties => {
87
- :uuid => "hp-demohost",
88
- :account_id => "a-shpoolxx",
89
- :arch => "x86_64",
90
- :hypervisor => "kvm",
91
- :created_at => "2011-10-18T03:53:24Z",
92
- :updated_at => "2011-10-18T03:53:24Z",
93
- }
94
- })
95
- Tengine::Resource::VirtualServer.delete_all
96
- @provider_wakame.virtual_servers.create!({
97
- :name => "vhost",
98
- :description => "",
99
- :provided_id => "i-jria301q",
100
- :provided_image_id => "wmi-lucid5",
101
- :provided_type_id => "is-demospec",
102
- :host_server => @physical_server_wakame,
103
- :status => "running",
104
- :addresses => {
105
- "private_ip_address" => "192.168.2.188",
106
- "nw-data" => "192.168.2.188",
107
- },
108
- :address_order => ["private_ip_address"],
109
- :properties => {
110
- :aws_kernel_id => "",
111
- :aws_launch_time => "2011-10-18T06:51:16Z",
112
- :tags => {},
113
- :aws_reservation_id => "",
114
- :aws_owner => "a-shpoolxx",
115
- :instance_lifecycle => "",
116
- :block_device_mappings => [{
117
- :ebs_volume_id => "",
118
- :ebs_status => "",
119
- :ebs_attach_time => "",
120
- :ebs_delete_on_termination => false,
121
- :device_name => ""
122
- }],
123
- :ami_launch_index => "",
124
- :root_device_name => "",
125
- :aws_ramdisk_id => "",
126
- :aws_availability_zone => "hp-demohost",
127
- :aws_groups => nil,
128
- :spot_instance_request_id => "",
129
- :ssh_key_name => nil,
130
- :virtualization_type => "",
131
- :placement_group_name => "",
132
- :requester_id => "",
133
- :aws_product_codes => [],
134
- :client_token => "",
135
- :architecture => "x86_64",
136
- :aws_state_code => 0,
137
- :root_device_type => "",
138
- :monitoring_state => "",
139
- :aws_reason => ""
140
- }
141
- })
142
-
143
- @tama_controller_factory = mock(::Tama::Controllers::ControllerFactory.allocate)
144
- ::Tama::Controllers::ControllerFactory.
145
- stub(:create_controller).
146
- with("tama_account1", "10.10.10.10", 80, "https", "192.168.0.10", 8080, "http").
147
- and_return(@tama_controller_factory)
148
- end
149
-
150
- describe :sync_virtual_server_types do
151
- it "削除の通知は一度しか行われない" do
152
- @tama_controller_factory.stub(:describe_instance_specs).with([]).and_return([])
153
-
154
- # 一度も呼び出されない
155
- @provider_wakame.should_not_receive(:dirrefential_update_virtual_server_type_hashs)
156
- @provider_wakame.should_not_receive(:create_virtual_server_type_hashs)
157
- # 一度だけ呼び出される
158
- $stdout.should_receive(:puts).with("invoked").once
159
-
160
- 3.times do
161
- @provider_wakame.virtual_server_type_watch
162
- end
163
- end
164
- end
165
-
166
- describe :sync_virtual_server_images do
167
- # bug [大量にTengine::Resource::VirtualServer.destroyed.tengine_resource_watchdという種別名イベントが登録されつづけている]
168
- it "削除の通知は一度しか行われない" do
169
- @tama_controller_factory.stub(:describe_instances).with([]).and_return([])
170
-
171
- # 一度も呼び出されない
172
- @provider_wakame.should_not_receive(:dirrefential_update_virtual_server_hashs)
173
- @provider_wakame.should_not_receive(:create_virtual_server_hashs)
174
- # 一度だけ呼び出される
175
- $stdout.should_receive(:puts).with("invoked").once
176
-
177
- 3.times do
178
- @provider_wakame.virtual_server_watch
179
- end
180
- end
181
- end
182
-
183
- describe :sync_virtual_server_images do
184
- it "削除の通知は一度しか行われない" do
185
- @tama_controller_factory.stub(:describe_images).with([]).and_return([])
186
-
187
- # 一度も呼び出されない
188
- @provider_wakame.should_not_receive(:dirrefential_update_virtual_server_image_hashs)
189
- @provider_wakame.should_not_receive(:create_virtual_server_image_hashs)
190
- # 一度だけ呼び出される
191
- $stdout.should_receive(:puts).with("invoked").once
192
-
193
- 3.times do
194
- @provider_wakame.virtual_server_image_watch
195
- end
196
- end
197
- end
198
-
199
- describe :sync_virtual_servers do
200
- # bug [大量にTengine::Resource::VirtualServer.destroyed.tengine_resource_watchdという種別名イベントが登録されつづけている]
201
- it "削除の通知は一度しか行われない" do
202
- @tama_controller_factory.stub(:describe_instances).with([]).and_return([])
203
-
204
- # 一度も呼び出されない
205
- @provider_wakame.should_not_receive(:dirrefential_update_virtual_server_hashs)
206
- @provider_wakame.should_not_receive(:create_virtual_server_hashs)
207
- # 一度だけ呼び出される
208
- $stdout.should_receive(:puts).with("invoked").once
209
-
210
- 3.times do
211
- @provider_wakame.virtual_server_watch
212
- end
213
- end
214
- end
215
-
216
- describe :sync_physical_servers do
217
- it "削除の通知は一度しか行われない" do
218
- @tama_controller_factory.stub(:describe_host_nodes).with([]).and_return([])
219
-
220
- # 一度も呼び出されない
221
- @provider_wakame.should_not_receive(:dirrefential_update_physical_server_hashs)
222
- @provider_wakame.should_not_receive(:create_physical_server_hashs)
223
- # 一度だけ呼び出される
224
- $stdout.should_receive(:puts).with("invoked").once
225
-
226
- 3.times do
227
- @provider_wakame.physical_server_watch
228
- end
229
- end
230
- end
231
-
232
- end
@@ -1,205 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require 'spec_helper'
3
- require 'net/ssh'
4
-
5
- describe Tengine::Resource::Credential do
6
-
7
- valid_attributes1 = {
8
- :name => "ssh-private_key",
9
- :auth_type_key => :ssh_password,
10
- :auth_values => {
11
- :username => 'user1',
12
- :password => "password1",
13
- }
14
- }.freeze
15
-
16
- context "name、auth_type_cd、auth_values は必須" do
17
- it "正常系" do
18
- Tengine::Resource::Credential.delete_all
19
- credential1 = Tengine::Resource::Credential.new(valid_attributes1)
20
- credential1.valid?.should == true
21
- end
22
-
23
- [:name, :auth_type_key].each do |key|
24
- it "#{key}なし" do
25
- attrs = valid_attributes1.dup
26
- attrs.delete(key)
27
- credential1 = Tengine::Resource::Credential.new(attrs)
28
- credential1.valid?.should == false
29
- end
30
- end
31
-
32
- end
33
-
34
- context "nameはユニーク" do
35
- before do
36
- Tengine::Resource::Credential.delete_all
37
- @credential1 = Tengine::Resource::Credential.create!(valid_attributes1)
38
- end
39
-
40
- it "同じ名前で登録されているものが存在する場合エラー" do
41
- expect{
42
- @credential1 = Tengine::Resource::Credential.create!(valid_attributes1)
43
- }.to raise_error(Mongoid::Errors::Validations, "Validation failed - Name is already taken.")
44
- end
45
- end
46
-
47
- context "nameはベース名として定義される文字列です" do
48
- it "スラッシュ'/’はリソース識別子で使われるのでnameには使用できません" do
49
- server1 = Tengine::Resource::Credential.new(:name => "foo/bar")
50
- server1.valid?.should == false
51
- server1.errors[:name].should == [Tengine::Core::Validation::BASE_NAME.message]
52
- end
53
-
54
- it "コロン':'はリソース識別子で使われるのでnameには使用できません" do
55
- server1 = Tengine::Resource::Credential.new(:name => "foo:bar")
56
- server1.valid?.should == false
57
- server1.errors[:name].should == [Tengine::Core::Validation::BASE_NAME.message]
58
- end
59
- end
60
-
61
-
62
- context "nameで検索" do
63
- before do
64
- Tengine::Resource::Credential.delete_all
65
- @credential = Tengine::Resource::Credential.create!(valid_attributes1)
66
- end
67
-
68
- context "見つかる場合" do
69
- it "name で検索できるか" do
70
- found_credential = nil
71
- lambda{
72
- found_credential = Tengine::Resource::Credential.first(:conditions => {:name => "ssh-private_key"})
73
- }.should_not raise_error
74
- found_credential.should_not be_nil
75
- found_credential.id.should == @credential.id
76
- end
77
-
78
- it "find_by_name" do
79
- found_credential = nil
80
- lambda{
81
- found_credential = Tengine::Resource::Credential.find_by_name("ssh-private_key")
82
- }.should_not raise_error
83
- found_credential.should_not be_nil
84
- found_credential.id.should == @credential.id
85
- end
86
-
87
- it "find_by_name!" do
88
- found_credential = nil
89
- lambda{
90
- found_credential = Tengine::Resource::Credential.find_by_name!("ssh-private_key")
91
- }.should_not raise_error
92
- found_credential.should_not be_nil
93
- found_credential.id.should == @credential.id
94
- end
95
- end
96
-
97
- context "見つからない場合" do
98
- it "find_by_name" do
99
- found_credential = Tengine::Resource::Credential.find_by_name("unexist_name").should == nil
100
- end
101
-
102
- it "find_by_name!" do
103
- lambda{
104
- found_credential = Tengine::Resource::Credential.find_by_name!("unexist_name")
105
- }.should raise_error(Tengine::Core::FindByName::Error)
106
- end
107
- end
108
-
109
- end
110
-
111
-
112
- describe :secure_auth_values, "外部に見せても良いように見せちゃ拙い情報は取り除く" do
113
- it :ssh_password do
114
- credential = Tengine::Resource::Credential.new(:name => "ssh-pass1",
115
- :auth_type_key => :ssh_password,
116
- :auth_values => {:username => 'goku', :password => "password1"})
117
- credential.secure_auth_values.should == {'username' => 'goku'}
118
- end
119
-
120
- it :ssh_public_key do
121
- credential = Tengine::Resource::Credential.new(:name => "ssh-pk1",
122
- :auth_type_key => :ssh_public_key,
123
- :auth_values => {:username => 'goku', :private_keys => "pkxxxxx", :passphrase => "abc"})
124
- credential.secure_auth_values.should == {'username' => 'goku'}
125
- end
126
-
127
- end
128
-
129
- describe :auth_values_validation do
130
- context "valid" do
131
-
132
- describe :ssh_password do
133
- it "キーがSymbol" do
134
- Tengine::Resource::Credential.new(:name => "ssh-pass1",
135
- :auth_type_key => :ssh_password,
136
- :auth_values => {:username => 'goku', :password => "password1"}).valid?.should == true
137
- end
138
- it "キーが文字列" do
139
- Tengine::Resource::Credential.new(:name => "ssh-pass1",
140
- :auth_type_key => :ssh_password,
141
- :auth_values => {'username' => 'goku', 'password' => "password1"}).valid?.should == true
142
- end
143
- end
144
-
145
- describe :ssh_public_key do
146
- it "キーがSymbol" do
147
- Tengine::Resource::Credential.new(:name => "ssh-pk1",
148
- :auth_type_key => :ssh_public_key,
149
- :auth_values => {:username => 'goku', :private_keys => "pkxxxxx"}).valid?.should == true
150
- end
151
- it "キーが文字列" do
152
- Tengine::Resource::Credential.new(:name => "ssh-pk1",
153
- :auth_type_key => :ssh_public_key,
154
- :auth_values => {'username' => 'goku', 'private_keys' => "pkxxxxx"}).valid?.should == true
155
- end
156
- end
157
-
158
- end
159
-
160
- context "invalid" do
161
- describe :ssh_password do
162
- it ":usernameが空文字列" do
163
- Tengine::Resource::Credential.new(:name => "ssh-pass1",
164
- :auth_type_key => :ssh_password,
165
- :auth_values => {:username => '', :password => "password1"}).valid?.should == false
166
- end
167
- it "passwordなし" do
168
- Tengine::Resource::Credential.new(:name => "ssh-pass1",
169
- :auth_type_key => :ssh_password,
170
- :auth_values => {'username' => 'goku'}).valid?.should == false
171
- end
172
- end
173
-
174
- describe :ssh_public_key do
175
- it ":usernameなし" do
176
- credential1 = Tengine::Resource::Credential.new(:name => "ssh-pk1",
177
- :auth_type_key => :ssh_public_key,
178
- :auth_values => {:private_keys => "pkxxxxx"})
179
- credential1.valid?.should == false
180
- end
181
- it "private_keyが空文字列" do
182
- credential1 = Tengine::Resource::Credential.new(:name => "ssh-pk1",
183
- :auth_type_key => :ssh_public_key,
184
- :auth_values => {'username' => 'goku', 'private_keys' => ""})
185
- credential1.valid?.should == false
186
- end
187
- end
188
-
189
- describe :ec2_access_key do
190
- it "access_keyが空文字列" do
191
- credential1 = Tengine::Resource::Credential.new(:name => "ec2-access-key1",
192
- :auth_type_key => :ec2_access_key,
193
- :auth_values => {:access_key => '', :secret_access_key => "abcdef"})
194
- credential1.valid?.should == false
195
- end
196
- it "secret_access_keyがnil" do
197
- credential1 = Tengine::Resource::Credential.new(:name => "ec2-access-key1",
198
- :auth_type_key => :ec2_access_key,
199
- :auth_values => {'access_key' => '12345', 'secret_access_key' => nil})
200
- credential1.valid?.should == false
201
- end
202
- end
203
- end
204
- end
205
- end
@@ -1,84 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- __END__
3
- require 'spec_helper'
4
- require 'tengine/rspec'
5
-
6
- describe 'resource_control_driver' do
7
- include Tengine::RSpec::Extension
8
-
9
- target_dsl File.expand_path("../../../../lib/tengine/resource/drivers/resource_control_driver.rb", File.dirname(__FILE__))
10
- driver :resource_control_driver
11
-
12
- before do
13
- Tengine::Resource::Provider::Wakame.delete_all(:name => 'tama0001')
14
- @provider = Tengine::Resource::Provider::Wakame.create!(
15
- :name => "tama0001",
16
- :description => "provided by wakame / tama",
17
- :connection_settings => {
18
- :account => "a-shpoolxx",
19
- :ec2_host => "192.168.2.22",
20
- :ec2_port => 9005,
21
- :ec2_protocol => "https",
22
- :wakame_host => "192.168.2.22",
23
- :wakame_port => 9001,
24
- :wakame_protocol => "https",},
25
- :properties => { :key_name => "ssh-xxxxx" })
26
- end
27
-
28
- context '仮想サーバ起動リクエストイベント' do
29
- it "反応する" do
30
- vi = @provider.virtual_server_images.create!(:provided_id => "wmi-lucid5", :name => "wmi-lucid5")
31
- vt = @provider.virtual_server_types.create!(:provided_id => "is-small", :name => "is-small")
32
- ps = @provider.physical_servers.create!(:provided_id => "foo-dc", :name => "foo-dc")
33
- @provider.
34
- should_receive(:create_virtual_servers).
35
- with(:virtual_server_image => vi,
36
- :virtual_server_type => vt,
37
- :physical_server => ps,
38
- :count => 1)
39
- Tengine::Resource::Provider::Wakame.stub(:instantiate).with(anything).and_return(@provider)
40
-
41
- tengine.receive('仮想サーバ起動リクエストイベント', :properties => {
42
- :provider_id => @provider._id,
43
- :virtual_server_image_id => vi._id,
44
- :virtual_server_type_id => vt._id,
45
- :physical_server_id => ps._id,
46
- :count => 1,})
47
- end
48
- end
49
-
50
- context '仮想サーバ停止リクエストイベント' do
51
- before do
52
- Tengine::Resource::VirtualServer.delete_all
53
- end
54
-
55
- it "反応する" do
56
- v1 = @provider.virtual_servers.create!(:provided_id => 'i-f222222d', :name => 'i-f222222d')
57
- v2 = @provider.virtual_servers.create!(:provided_id => 'i-f222222e', :name => 'i-f222222e')
58
- @provider.
59
- should_receive(:terminate_virtual_servers).
60
- with([v1, v2])
61
- Tengine::Resource::Provider::Wakame.stub(:instantiate).with(anything).and_return(@provider)
62
-
63
- tengine.receive('仮想サーバ停止リクエストイベント', :properties => {
64
- :provider_id => @provider._id,
65
- :virtual_servers => [v1._id, v2._id] })
66
- end
67
-
68
- it "存在しない仮想サーバを停止しようとすると例外がraiseされる" do
69
- v1 = @provider.virtual_servers.create!(:provided_id => 'i-f222222d', :name => 'i-f222222d')
70
- v2 = @provider.virtual_servers.create!(:provided_id => 'i-f222222e', :name => 'i-f222222e')
71
-
72
- # 存在するはずの仮想サーバのデータを削除して例外を起こします
73
- Tengine::Resource::VirtualServer.delete_all
74
-
75
- begin
76
- tengine.receive('仮想サーバ停止リクエストイベント', :properties => {
77
- :provider_id => @provider._id,
78
- :virtual_servers => [v1._id, v2._id] })
79
- fail
80
- rescue Mongoid::Errors::DocumentNotFound => e
81
- end
82
- end
83
- end
84
- end