fog 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +3 -3
  3. data/changelog.txt +213 -0
  4. data/docs/compute/index.markdown +15 -1
  5. data/fog.gemspec +3 -3
  6. data/lib/fog.rb +1 -1
  7. data/lib/fog/aws.rb +9 -0
  8. data/lib/fog/aws/auto_scaling.rb +3 -1
  9. data/lib/fog/aws/cloud_formation.rb +2 -0
  10. data/lib/fog/aws/cloud_watch.rb +2 -0
  11. data/lib/fog/aws/compute.rb +9 -3
  12. data/lib/fog/aws/elasticache.rb +8 -1
  13. data/lib/fog/aws/elb.rb +2 -0
  14. data/lib/fog/aws/models/cloud_watch/metric_statistic.rb +1 -2
  15. data/lib/fog/aws/models/compute/security_group.rb +1 -1
  16. data/lib/fog/aws/models/compute/server.rb +3 -1
  17. data/lib/fog/aws/models/dns/records.rb +3 -3
  18. data/lib/fog/aws/models/elb/load_balancer.rb +6 -0
  19. data/lib/fog/aws/models/storage/file.rb +2 -2
  20. data/lib/fog/aws/models/storage/files.rb +4 -4
  21. data/lib/fog/aws/parsers/compute/describe_instance_status.rb +64 -0
  22. data/lib/fog/aws/parsers/compute/describe_security_groups.rb +1 -1
  23. data/lib/fog/aws/parsers/sqs/receive_message.rb +1 -1
  24. data/lib/fog/aws/parsers/sts/get_session_token.rb +31 -0
  25. data/lib/fog/aws/rds.rb +36 -1
  26. data/lib/fog/aws/requests/compute/describe_availability_zones.rb +3 -0
  27. data/lib/fog/aws/requests/compute/describe_instance_status.rb +36 -0
  28. data/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -0
  29. data/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb +27 -0
  30. data/lib/fog/aws/requests/rds/create_db_instance.rb +64 -1
  31. data/lib/fog/aws/requests/rds/delete_db_instance.rb +19 -3
  32. data/lib/fog/aws/requests/rds/describe_db_instances.rb +40 -1
  33. data/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb +1 -1
  34. data/lib/fog/aws/requests/rds/modify_db_instance.rb +24 -1
  35. data/lib/fog/aws/requests/rds/reboot_db_instance.rb +17 -1
  36. data/lib/fog/aws/requests/storage/{hash_to_acl.rb → acl_utils.rb} +8 -0
  37. data/lib/fog/aws/requests/storage/copy_object.rb +8 -0
  38. data/lib/fog/aws/requests/storage/get_bucket_acl.rb +7 -1
  39. data/lib/fog/aws/requests/storage/get_object_acl.rb +7 -1
  40. data/lib/fog/aws/requests/storage/get_object_http_url.rb +4 -3
  41. data/lib/fog/aws/requests/storage/get_object_https_url.rb +4 -3
  42. data/lib/fog/aws/requests/storage/put_bucket_acl.rb +2 -2
  43. data/lib/fog/aws/requests/storage/put_object_acl.rb +1 -1
  44. data/lib/fog/aws/requests/sts/get_federation_token.rb +20 -0
  45. data/lib/fog/aws/requests/sts/get_session_token.rb +18 -0
  46. data/lib/fog/aws/simpledb.rb +5 -1
  47. data/lib/fog/aws/sns.rb +2 -0
  48. data/lib/fog/aws/sqs.rb +5 -1
  49. data/lib/fog/aws/storage.rb +6 -0
  50. data/lib/fog/aws/sts.rb +137 -0
  51. data/lib/fog/bin.rb +1 -0
  52. data/lib/fog/bin/aws.rb +2 -0
  53. data/lib/fog/bin/clodo.rb +31 -0
  54. data/lib/fog/brightbox/compute.rb +7 -0
  55. data/lib/fog/brightbox/models/compute/cloud_ip.rb +10 -2
  56. data/lib/fog/brightbox/models/compute/firewall_policies.rb +29 -0
  57. data/lib/fog/brightbox/models/compute/firewall_policy.rb +65 -0
  58. data/lib/fog/brightbox/models/compute/firewall_rule.rb +54 -0
  59. data/lib/fog/brightbox/models/compute/firewall_rules.rb +24 -0
  60. data/lib/fog/brightbox/models/compute/image.rb +2 -0
  61. data/lib/fog/brightbox/models/compute/server.rb +41 -6
  62. data/lib/fog/brightbox/models/compute/server_group.rb +56 -17
  63. data/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +14 -0
  64. data/lib/fog/clodo.rb +34 -0
  65. data/lib/fog/clodo/compute.rb +152 -0
  66. data/lib/fog/clodo/models/compute/image.rb +31 -0
  67. data/lib/fog/clodo/models/compute/images.rb +28 -0
  68. data/lib/fog/clodo/models/compute/server.rb +163 -0
  69. data/lib/fog/clodo/models/compute/servers.rb +36 -0
  70. data/lib/fog/clodo/requests/compute/add_ip_address.rb +49 -0
  71. data/lib/fog/clodo/requests/compute/create_server.rb +112 -0
  72. data/lib/fog/clodo/requests/compute/delete_ip_address.rb +47 -0
  73. data/lib/fog/clodo/requests/compute/delete_server.rb +44 -0
  74. data/lib/fog/clodo/requests/compute/get_image_details.rb +20 -0
  75. data/lib/fog/clodo/requests/compute/get_server_details.rb +49 -0
  76. data/lib/fog/clodo/requests/compute/list_images.rb +48 -0
  77. data/lib/fog/clodo/requests/compute/list_images_detail.rb +61 -0
  78. data/lib/fog/clodo/requests/compute/list_servers.rb +50 -0
  79. data/lib/fog/clodo/requests/compute/list_servers_detail.rb +51 -0
  80. data/lib/fog/clodo/requests/compute/move_ip_address.rb +34 -0
  81. data/lib/fog/clodo/requests/compute/reboot_server.rb +19 -0
  82. data/lib/fog/clodo/requests/compute/rebuild_server.rb +21 -0
  83. data/lib/fog/clodo/requests/compute/server_action.rb +25 -0
  84. data/lib/fog/clodo/requests/compute/start_server.rb +19 -0
  85. data/lib/fog/clodo/requests/compute/stop_server.rb +19 -0
  86. data/lib/fog/compute.rb +3 -0
  87. data/lib/fog/core/credentials.rb +3 -3
  88. data/lib/fog/core/errors.rb +2 -0
  89. data/lib/fog/core/wait_for.rb +1 -1
  90. data/lib/fog/dnsmadeeasy/dns.rb +1 -1
  91. data/lib/fog/libvirt/compute.rb +2 -0
  92. data/lib/fog/libvirt/models/compute/nodes.rb +1 -3
  93. data/lib/fog/libvirt/models/compute/server.rb +8 -1
  94. data/lib/fog/providers.rb +1 -0
  95. data/lib/fog/rackspace/dns.rb +10 -2
  96. data/lib/fog/rackspace/load_balancers.rb +3 -0
  97. data/lib/fog/rackspace/models/compute/server.rb +2 -2
  98. data/lib/fog/rackspace/models/dns/callback.rb +3 -1
  99. data/lib/fog/rackspace/models/dns/record.rb +4 -0
  100. data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +18 -8
  101. data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +1 -2
  102. data/lib/fog/rackspace/requests/load_balancers/get_error_page.rb +15 -0
  103. data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +8 -2
  104. data/lib/fog/rackspace/requests/load_balancers/remove_error_page.rb +15 -0
  105. data/lib/fog/rackspace/requests/load_balancers/set_error_page.rb +21 -0
  106. data/lib/fog/vcloud/compute.rb +7 -1
  107. data/lib/fog/vcloud/models/compute/catalogs.rb +4 -5
  108. data/lib/fog/vcloud/models/compute/helpers/status.rb +37 -0
  109. data/lib/fog/vcloud/models/compute/network.rb +13 -49
  110. data/lib/fog/vcloud/models/compute/networks.rb +12 -3
  111. data/lib/fog/vcloud/models/compute/organization.rb +44 -0
  112. data/lib/fog/vcloud/models/compute/organizations.rb +29 -0
  113. data/lib/fog/vcloud/models/compute/server.rb +35 -56
  114. data/lib/fog/vcloud/models/compute/servers.rb +11 -13
  115. data/lib/fog/vcloud/models/compute/vapp.rb +41 -0
  116. data/lib/fog/vcloud/models/compute/vapps.rb +32 -0
  117. data/lib/fog/vcloud/models/compute/vdc.rb +11 -26
  118. data/lib/fog/vcloud/models/compute/vdcs.rb +6 -8
  119. data/lib/fog/vcloud/requests/compute/get_server.rb +10 -0
  120. data/lib/fog/vsphere/compute.rb +1 -0
  121. data/lib/fog/vsphere/models/compute/server.rb +18 -0
  122. data/lib/fog/vsphere/models/compute/servers.rb +8 -2
  123. data/lib/fog/vsphere/requests/compute/datacenters.rb +34 -0
  124. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +132 -91
  125. data/lib/fog/vsphere/requests/compute/vm_clone.rb +76 -37
  126. data/spec/lib/fog/aws/parsers/sqs/receive_message_spec.rb +58 -0
  127. data/tests/aws/models/elb/model_tests.rb +5 -0
  128. data/tests/aws/requests/compute/instance_tests.rb +23 -0
  129. data/tests/aws/requests/compute/security_group_tests.rb +1 -0
  130. data/tests/aws/requests/elb/listener_tests.rb +4 -0
  131. data/tests/aws/requests/storage/{hash_to_acl_tests.rb → acl_utils_tests.rb} +38 -2
  132. data/tests/aws/requests/storage/bucket_tests.rb +0 -3
  133. data/tests/aws/requests/storage/object_tests.rb +2 -4
  134. data/tests/aws/requests/sts/get_federation_token_tests.rb +21 -0
  135. data/tests/aws/requests/sts/session_token_tests.rb +16 -0
  136. data/tests/brightbox/requests/compute/account_tests.rb +11 -6
  137. data/tests/brightbox/requests/compute/api_client_tests.rb +23 -12
  138. data/tests/brightbox/requests/compute/cloud_ip_tests.rb +32 -17
  139. data/tests/brightbox/requests/compute/helper.rb +29 -3
  140. data/tests/brightbox/requests/compute/image_tests.rb +17 -14
  141. data/tests/brightbox/requests/compute/interface_tests.rb +3 -2
  142. data/tests/brightbox/requests/compute/load_balancer_tests.rb +57 -11
  143. data/tests/brightbox/requests/compute/server_group_tests.rb +29 -22
  144. data/tests/brightbox/requests/compute/server_tests.rb +41 -22
  145. data/tests/brightbox/requests/compute/server_type_tests.rb +7 -6
  146. data/tests/brightbox/requests/compute/user_tests.rb +11 -16
  147. data/tests/brightbox/requests/compute/zone_tests.rb +7 -6
  148. data/tests/clodo/requests/compute/image_tests.rb +36 -0
  149. data/tests/clodo/requests/compute/server_tests.rb +152 -0
  150. data/tests/compute/helper.rb +1 -1
  151. data/tests/core/credential_tests.rb +2 -2
  152. data/tests/glesys/requests/compute/helper.rb +91 -66
  153. data/tests/glesys/requests/compute/ip_tests.rb +1 -1
  154. data/tests/glesys/requests/compute/server_tests.rb +5 -5
  155. data/tests/helpers/mock_helper.rb +2 -0
  156. data/tests/rackspace/models/dns/zone_tests.rb +14 -0
  157. data/tests/rackspace/models/{access_list_tests.rb → load_balancers/access_list_tests.rb} +0 -0
  158. data/tests/rackspace/models/{access_lists_tests.rb → load_balancers/access_lists_tests.rb} +0 -0
  159. data/tests/rackspace/models/{load_balancer_tests.rb → load_balancers/load_balancer_tests.rb} +25 -0
  160. data/tests/rackspace/models/{load_balancers_tests.rb → load_balancers/load_balancers_tests.rb} +0 -0
  161. data/tests/rackspace/models/{node_tests.rb → load_balancers/node_tests.rb} +0 -0
  162. data/tests/rackspace/models/{nodes_tests.rb → load_balancers/nodes_tests.rb} +0 -0
  163. data/tests/rackspace/models/{virtual_ip_tests.rb → load_balancers/virtual_ip_tests.rb} +0 -0
  164. data/tests/rackspace/models/{virtual_ips_tests.rb → load_balancers/virtual_ips_tests.rb} +0 -0
  165. data/tests/rackspace/requests/dns/dns_tests.rb +4 -2
  166. data/tests/rackspace/requests/load_balancers/error_page_tests.rb +31 -0
  167. data/tests/rackspace/requests/load_balancers/helper.rb +27 -11
  168. data/tests/rackspace/requests/load_balancers/load_balancer_tests.rb +4 -1
  169. data/tests/rackspace/requests/load_balancers/node_tests.rb +24 -25
  170. data/tests/slicehost/requests/compute/slice_tests.rb +2 -2
  171. data/tests/storm_on_demand/requests/compute/server_tests.rb +3 -3
  172. data/tests/vcloud/data/api_+_v1.0_+_admin_+_network_+_2 +110 -0
  173. data/tests/vcloud/data/api_+_v1.0_+_login +5 -0
  174. data/tests/vcloud/data/api_+_v1.0_+_network_+_1 +44 -0
  175. data/tests/vcloud/data/api_+_v1.0_+_network_+_2 +31 -0
  176. data/tests/vcloud/data/api_+_v1.0_+_org_+_1 +17 -0
  177. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vapp-1 +369 -0
  178. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-1 +139 -0
  179. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-2 +155 -0
  180. data/tests/vcloud/data/api_+_v1.0_+_vdc_+_1 +61 -0
  181. data/tests/vcloud/models/compute/conn_helper.rb +20 -0
  182. data/tests/vcloud/models/compute/network_tests.rb +65 -0
  183. data/tests/vcloud/models/compute/networks_tests.rb +42 -0
  184. data/tests/vcloud/models/compute/organization_tests.rb +13 -0
  185. data/tests/vcloud/models/compute/organizations_tests.rb +14 -0
  186. data/tests/vcloud/models/compute/server_tests.rb +136 -0
  187. data/tests/vcloud/models/compute/servers_tests.rb +10 -89
  188. data/tests/vcloud/models/compute/vapp_tests.rb +27 -0
  189. data/tests/vcloud/models/compute/vapps_tests.rb +17 -0
  190. data/tests/vcloud/models/compute/vdc_tests.rb +42 -0
  191. data/tests/vcloud/models/compute/vdcs_tests.rb +17 -0
  192. data/tests/vsphere/requests/compute/vm_clone_tests.rb +2 -6
  193. metadata +151 -55
@@ -3,48 +3,63 @@ Shindo.tests('Fog::Compute[:brightbox] | cloud ip requests', ['brightbox']) do
3
3
  tests('success') do
4
4
 
5
5
  unless Fog.mocking?
6
- @server = Fog::Compute[:brightbox].servers.create(compute_providers[:brightbox][:server_attributes])
6
+ @server = Brightbox::Compute::TestSupport.get_test_server
7
7
  end
8
8
 
9
- tests("#create_cloud_ip").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
9
+ tests("#create_cloud_ip") do
10
10
  pending if Fog.mocking?
11
- data = Fog::Compute[:brightbox].create_cloud_ip
12
- @cloud_ip_id = data["id"]
13
- data
11
+ result = Fog::Compute[:brightbox].create_cloud_ip
12
+ @cloud_ip_id = result["id"]
13
+ formats(Brightbox::Compute::Formats::Full::CLOUD_IP) { result }
14
14
  end
15
15
 
16
- tests("#list_cloud_ips").formats(Brightbox::Compute::Formats::Collection::CLOUD_IPS) do
16
+ tests("#list_cloud_ips") do
17
17
  pending if Fog.mocking?
18
- Fog::Compute[:brightbox].list_cloud_ips
18
+ result = Fog::Compute[:brightbox].list_cloud_ips
19
+ formats(Brightbox::Compute::Formats::Collection::CLOUD_IPS) { result }
19
20
  end
20
21
 
21
- tests("#get_cloud_ip('#{@cloud_ip_id}')").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
22
+ tests("#get_cloud_ip('#{@cloud_ip_id}')") do
22
23
  pending if Fog.mocking?
23
- Fog::Compute[:brightbox].get_cloud_ip(@cloud_ip_id)
24
+ result = Fog::Compute[:brightbox].get_cloud_ip(@cloud_ip_id)
25
+ formats(Brightbox::Compute::Formats::Full::CLOUD_IP) { result }
24
26
  end
25
27
 
26
28
  unless Fog.mocking?
27
- @server.wait_for { ready? }
28
- map_options = {:interface => @server.interfaces.first["id"]}
29
+ map_options = {:destination => @server.interfaces.first["id"]}
29
30
  end
30
31
 
31
- tests("#map_cloud_ip('#{@cloud_ip_id}', #{map_options.inspect})").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
32
+ tests("#map_cloud_ip('#{@cloud_ip_id}', #{map_options.inspect})") do
32
33
  pending if Fog.mocking?
33
- Fog::Compute[:brightbox].map_cloud_ip(@cloud_ip_id, map_options)
34
+ result = Fog::Compute[:brightbox].map_cloud_ip(@cloud_ip_id, map_options)
35
+ formats(Brightbox::Compute::Formats::Full::CLOUD_IP) { result }
34
36
  end
35
37
 
36
38
  unless Fog.mocking?
37
39
  Fog::Compute[:brightbox].cloud_ips.get(@cloud_ip_id).wait_for { mapped? }
38
40
  end
39
41
 
40
- tests("#unmap_cloud_ip('#{@cloud_ip_id}')").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
42
+ tests("#unmap_cloud_ip('#{@cloud_ip_id}')") do
41
43
  pending if Fog.mocking?
42
- Fog::Compute[:brightbox].unmap_cloud_ip(@cloud_ip_id)
44
+ result = Fog::Compute[:brightbox].unmap_cloud_ip(@cloud_ip_id)
45
+ formats(Brightbox::Compute::Formats::Full::CLOUD_IP) { result }
43
46
  end
44
47
 
45
- tests("#destroy_cloud_ip('#{@cloud_ip_id}')").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
48
+ unless Fog.mocking?
49
+ update_options = {:reverse_dns => "public.#{@server.id}.gb1.brightbox.com"}
50
+ end
51
+
52
+ tests("#update_cloud_ip('#{@cloud_ip_id}', #{update_options.inspect})") do
53
+ pending if Fog.mocking?
54
+ result = Fog::Compute[:brightbox].update_cloud_ip(@cloud_ip_id, update_options)
55
+ formats(Brightbox::Compute::Formats::Full::CLOUD_IP) { result }
56
+ result = Fog::Compute[:brightbox].update_cloud_ip(@cloud_ip_id, {:reverse_dns => ""})
57
+ end
58
+
59
+ tests("#destroy_cloud_ip('#{@cloud_ip_id}')") do
46
60
  pending if Fog.mocking?
47
- Fog::Compute[:brightbox].destroy_cloud_ip(@cloud_ip_id)
61
+ result = Fog::Compute[:brightbox].destroy_cloud_ip(@cloud_ip_id)
62
+ formats(Brightbox::Compute::Formats::Full::CLOUD_IP) { result }
48
63
  end
49
64
 
50
65
  unless Fog.mocking?
@@ -32,7 +32,28 @@ NilClass.send :include, Fog::Brightbox::Nullable::Zone
32
32
  class Brightbox
33
33
  module Compute
34
34
  module TestSupport
35
- IMAGE_IDENTIFER = "img-2ab98" # Ubuntu Lucid 10.04 server (i686)
35
+ # Find a suitable image for testing with
36
+ # For speed of server building we're using an empty image
37
+ def self.image_id
38
+ return @image_id unless @image_id.nil?
39
+ images = Fog::Compute[:brightbox].list_images
40
+ raise "No available images!" if images.empty?
41
+ image = images.select {|img| img.size == 0 }.first
42
+ image = images.first if image.nil?
43
+ @image_id = image["id"]
44
+ end
45
+
46
+ # Prepare a test server, wait for it to be usable but raise if it fails
47
+ def self.get_test_server
48
+ test_server_options = {:image_id => image_id}
49
+ server = Fog::Compute[:brightbox].servers.create(test_server_options)
50
+ server.wait_for {
51
+ raise "Test server failed to build" if state == "failed"
52
+ ready?
53
+ }
54
+ server
55
+ end
56
+
36
57
  end
37
58
  module Formats
38
59
  module Struct
@@ -111,7 +132,7 @@ class Brightbox
111
132
  "source" => String,
112
133
  "status" => String,
113
134
  "owner" => String,
114
- "username" => Fog::Nullable::String,
135
+ "username" => Fog::Nullable::String
115
136
  }
116
137
 
117
138
  INTERFACE = {
@@ -143,7 +164,8 @@ class Brightbox
143
164
  "name" => String,
144
165
  "created_at" => String,
145
166
  "default" => Fog::Boolean,
146
- "description" => Fog::Nullable::String
167
+ "description" => Fog::Nullable::String,
168
+ "created_at" => String
147
169
  }
148
170
 
149
171
  SERVER_TYPE = {
@@ -235,6 +257,7 @@ class Brightbox
235
257
  "source_type" => String,
236
258
  "status" => String,
237
259
  "owner" => String,
260
+ "username" => Fog::Nullable::String,
238
261
  "public" => Fog::Boolean,
239
262
  "official" => Fog::Boolean,
240
263
  "compatibility_mode" => Fog::Boolean,
@@ -287,6 +310,7 @@ class Brightbox
287
310
  "name" => String,
288
311
  "description" => Fog::Nullable::String,
289
312
  "default" => Fog::Boolean,
313
+ "created_at" => String,
290
314
  "account" => Brightbox::Compute::Formats::Nested::ACCOUNT,
291
315
  "servers" => [Brightbox::Compute::Formats::Nested::SERVER]
292
316
  }
@@ -421,6 +445,7 @@ class Brightbox
421
445
  "source_type" => String,
422
446
  "status" => String,
423
447
  "owner" => String, # Account ID not object
448
+ "username" => Fog::Nullable::String,
424
449
  "public" => Fog::Boolean,
425
450
  "official" => Fog::Boolean,
426
451
  "compatibility_mode" => Fog::Boolean,
@@ -489,6 +514,7 @@ class Brightbox
489
514
  "name" => String,
490
515
  "description" => Fog::Nullable::String,
491
516
  "default" => Fog::Boolean,
517
+ "created_at" => String,
492
518
  "account" => Brightbox::Compute::Formats::Nested::ACCOUNT,
493
519
  "servers" => [Brightbox::Compute::Formats::Nested::SERVER]
494
520
  }
@@ -7,35 +7,38 @@ Shindo.tests('Fog::Compute[:brightbox] | image requests', ['brightbox']) do
7
7
  # "arch" => "i686",
8
8
  # "source" => "fnord"
9
9
  # }
10
- # tests("#create_image(#{creation_options.inspect})").formats(Brightbox::Compute::Formats::Full::IMAGE) do
11
- # data = Fog::Compute[:brightbox].create_image(creation_options)
12
- # @image_id = data["id"]
13
- # data
10
+ # tests("#create_image(#{creation_options.inspect})")
11
+ # result = Fog::Compute[:brightbox].create_image(creation_options)
12
+ # @image_id = result["id"]
13
+ # formats(Brightbox::Compute::Formats::Full::IMAGE) { result }
14
14
  # end
15
15
 
16
16
  # Fog::Compute[:brightbox].images.get(@image_id).wait_for { ready? }
17
17
 
18
- tests("#list_images").formats(Brightbox::Compute::Formats::Collection::IMAGES) do
18
+ tests("#list_images") do
19
19
  pending if Fog.mocking?
20
- data = Fog::Compute[:brightbox].list_images
21
- @image_id = data.first["id"]
22
- data
20
+ result = Fog::Compute[:brightbox].list_images
21
+ @image_id = result.first["id"]
22
+ formats(Brightbox::Compute::Formats::Collection::IMAGES) { result }
23
23
  end
24
24
 
25
- tests("#get_image('#{@image_id}')").formats(Brightbox::Compute::Formats::Full::IMAGE) do
25
+ tests("#get_image('#{@image_id}')") do
26
26
  pending if Fog.mocking?
27
- Fog::Compute[:brightbox].get_image(@image_id)
27
+ result = Fog::Compute[:brightbox].get_image(@image_id)
28
+ formats(Brightbox::Compute::Formats::Full::IMAGE) { result }
28
29
  end
29
30
 
30
31
  ## Until Image creation can be automated, we shouldn't be updating Images randomly
31
32
  # update_options = {}
32
- # tests("#update_image('#{@image_id}', #{update_options.inspect})").formats(Brightbox::Compute::Formats::Full::IMAGE) do
33
- # Fog::Compute[:brightbox].update_image(@image_id, :name => "New name from Fog test")
33
+ # tests("#update_image('#{@image_id}', #{update_options.inspect})") do
34
+ # result = Fog::Compute[:brightbox].update_image(@image_id, :name => "New name from Fog test")
35
+ # formats(Brightbox::Compute::Formats::Full::IMAGE) { result }
34
36
  # end
35
37
 
36
38
  ## Same as other tests - can't be deleting them unless part of the test run
37
- # tests("#destroy_server('#{@image_id}')").formats(Brightbox::Compute::Formats::Full::IMAGE) do
38
- # Fog::Compute[:brightbox].destroy_image(@image_id)
39
+ # tests("#destroy_server('#{@image_id}')") do
40
+ # result = Fog::Compute[:brightbox].destroy_image(@image_id)
41
+ # formats(Brightbox::Compute::Formats::Full::IMAGE) { result }
39
42
  # end
40
43
 
41
44
  end
@@ -7,9 +7,10 @@ Shindo.tests('Fog::Compute[:brightbox] | interface requests', ['brightbox']) do
7
7
  @interface_id = server.interfaces.first["id"]
8
8
  end
9
9
 
10
- tests("#get_interface('#{@interface_id}')").formats(Brightbox::Compute::Formats::Full::INTERFACE) do
10
+ tests("#get_interface('#{@interface_id}')") do
11
11
  pending if Fog.mocking?
12
- Fog::Compute[:brightbox].get_interface(@interface_id)
12
+ result = Fog::Compute[:brightbox].get_interface(@interface_id)
13
+ formats(Brightbox::Compute::Formats::Full::INTERFACE) { result }
13
14
  end
14
15
 
15
16
  end
@@ -3,7 +3,7 @@ Shindo.tests('Fog::Compute[:brightbox] | load balancer requests', ['brightbox'])
3
3
  tests('success') do
4
4
 
5
5
  unless Fog.mocking?
6
- @node = Fog::Compute[:brightbox].servers.create(:image_id => Brightbox::Compute::TestSupport::IMAGE_IDENTIFER)
6
+ @node = Brightbox::Compute::TestSupport.get_test_server
7
7
  node_id = @node.id
8
8
  end
9
9
 
@@ -22,34 +22,80 @@ Shindo.tests('Fog::Compute[:brightbox] | load balancer requests', ['brightbox'])
22
22
  }
23
23
  }
24
24
 
25
- tests("#create_load_balancer(#{create_options.inspect})").formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) do
25
+ tests("#create_load_balancer(#{create_options.inspect})") do
26
26
  pending if Fog.mocking?
27
- data = Fog::Compute[:brightbox].create_load_balancer(create_options)
28
- @load_balancer_id = data["id"]
29
- data
27
+ result = Fog::Compute[:brightbox].create_load_balancer(create_options)
28
+ @load_balancer_id = result["id"]
29
+ formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) { result }
30
30
  end
31
31
 
32
32
  unless Fog.mocking?
33
33
  Fog::Compute[:brightbox].load_balancers.get(@load_balancer_id).wait_for { ready? }
34
34
  end
35
35
 
36
- tests("#list_load_balancers()").formats(Brightbox::Compute::Formats::Collection::LOAD_BALANCERS) do
36
+ tests("#list_load_balancers()") do
37
37
  pending if Fog.mocking?
38
- Fog::Compute[:brightbox].list_load_balancers
38
+ result = Fog::Compute[:brightbox].list_load_balancers
39
+ formats(Brightbox::Compute::Formats::Collection::LOAD_BALANCERS) { result }
39
40
  end
40
41
 
41
- tests("#get_load_balancer('#{@load_balancer_id}')").formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) do
42
+ tests("#get_load_balancer('#{@load_balancer_id}')") do
42
43
  pending if Fog.mocking?
43
- Fog::Compute[:brightbox].get_load_balancer(@load_balancer_id)
44
+ result = Fog::Compute[:brightbox].get_load_balancer(@load_balancer_id)
45
+ formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) { result }
44
46
  end
45
47
 
46
- tests("#destroy_load_balancer('#{@load_balancer_id}')").formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) do
48
+ update_options = {:name => "New name"}
49
+ tests("#update_load_balancer('#{@load_balancer_id}', #{update_options.inspect})") do
47
50
  pending if Fog.mocking?
48
- Fog::Compute[:brightbox].destroy_load_balancer(@load_balancer_id)
51
+ result = Fog::Compute[:brightbox].update_load_balancer(@load_balancer_id, update_options)
52
+ formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) { result }
53
+ end
54
+
55
+ add_listeners_options = {:listeners=>[{:out=>28080, :in=>8080, :protocol=>"http"}]}
56
+ tests("#add_listeners_load_balancer('#{@load_balancer_id}', #{add_listeners_options.inspect})") do
57
+ pending if Fog.mocking?
58
+ result = Fog::Compute[:brightbox].add_listeners_load_balancer(@load_balancer_id, add_listeners_options)
59
+ formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) { result }
60
+ end
61
+
62
+ remove_listeners_options = {:listeners=>[{:out=>28080, :in=>8080, :protocol=>"http"}]}
63
+ tests("#remove_listeners_load_balancer('#{@load_balancer_id}', #{remove_listeners_options.inspect})") do
64
+ pending if Fog.mocking?
65
+ result = Fog::Compute[:brightbox].remove_listeners_load_balancer(@load_balancer_id, remove_listeners_options)
66
+ formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) { result }
67
+ end
68
+
69
+ unless Fog.mocking?
70
+ @node2 = Brightbox::Compute::TestSupport.get_test_server
71
+ second_node_id = @node2.id
72
+ end
73
+
74
+ # Can't remove the last node so we need to add a second...
75
+ add_nodes_options = {:nodes => [{:node => second_node_id}]}
76
+ tests("#add_nodes_load_balancer('#{@load_balancer_id}', #{add_nodes_options.inspect})") do
77
+ pending if Fog.mocking?
78
+ result = Fog::Compute[:brightbox].add_nodes_load_balancer(@load_balancer_id, add_nodes_options)
79
+ formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) { result }
80
+ end
81
+
82
+ # ...before we can attempt to remove either
83
+ remove_nodes_options = {:nodes => [{:node => node_id}]}
84
+ tests("#remove_nodes_load_balancer('#{@load_balancer_id}', #{remove_nodes_options.inspect})") do
85
+ pending if Fog.mocking?
86
+ result = Fog::Compute[:brightbox].remove_nodes_load_balancer(@load_balancer_id, remove_nodes_options)
87
+ formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) { result }
88
+ end
89
+
90
+ tests("#destroy_load_balancer('#{@load_balancer_id}')") do
91
+ pending if Fog.mocking?
92
+ result = Fog::Compute[:brightbox].destroy_load_balancer(@load_balancer_id)
93
+ formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) { result }
49
94
  end
50
95
 
51
96
  unless Fog.mocking?
52
97
  @node.destroy
98
+ @node2.destroy
53
99
  end
54
100
 
55
101
  end
@@ -3,7 +3,7 @@ Shindo.tests('Fog::Compute[:brightbox] | server group requests', ['brightbox'])
3
3
  tests('success') do
4
4
 
5
5
  unless Fog.mocking?
6
- @server = Fog::Compute[:brightbox].servers.create(:image_id => Brightbox::Compute::TestSupport::IMAGE_IDENTIFER)
6
+ @server = Brightbox::Compute::TestSupport.get_test_server
7
7
  server_id = @server.id
8
8
  end
9
9
 
@@ -14,55 +14,62 @@ Shindo.tests('Fog::Compute[:brightbox] | server group requests', ['brightbox'])
14
14
  }]
15
15
  }
16
16
 
17
- tests("#create_server_group(#{create_options.inspect})").formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) do
17
+ tests("#create_server_group(#{create_options.inspect})") do
18
18
  pending if Fog.mocking?
19
- data = Fog::Compute[:brightbox].create_server_group(create_options)
20
- @server_group_id = data["id"]
21
- data
19
+ result = Fog::Compute[:brightbox].create_server_group(create_options)
20
+ @server_group_id = result["id"]
21
+ formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) { result }
22
22
  end
23
23
 
24
- tests("#list_server_groups").formats(Brightbox::Compute::Formats::Collection::SERVER_GROUPS) do
24
+ tests("#list_server_groups") do
25
25
  pending if Fog.mocking?
26
- Fog::Compute[:brightbox].list_server_groups
26
+ result = Fog::Compute[:brightbox].list_server_groups
27
+ formats(Brightbox::Compute::Formats::Collection::SERVER_GROUPS) { result }
28
+ @default_group_id = result.select {|grp| grp["default"] == true }.first["id"]
27
29
  end
28
30
 
29
- tests("#get_server_group('#{@server_group_id}')").formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) do
31
+ tests("#get_server_group('#{@server_group_id}')") do
30
32
  pending if Fog.mocking?
31
- Fog::Compute[:brightbox].get_server_group(@server_group_id)
33
+ result = Fog::Compute[:brightbox].get_server_group(@server_group_id)
34
+ formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) { result }
32
35
  end
33
36
 
34
37
  update_options = {:name => "Fog@#{Time.now.iso8601}"}
35
- tests("#update_server_group(#{update_options.inspect})").formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) do
38
+ tests("#update_server_group('#{@server_group_id}', #{update_options.inspect})") do
36
39
  pending if Fog.mocking?
37
- Fog::Compute[:brightbox].update_server_group(@server_group_id, update_options)
40
+ result = Fog::Compute[:brightbox].update_server_group(@server_group_id, update_options)
41
+ formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) { result }
38
42
  end
39
43
 
40
44
  remove_options = {:servers => [{:server => server_id}]}
41
- tests("#remove_servers_server_group(#{remove_options.inspect})").formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) do
45
+ tests("#remove_servers_server_group('#{@server_group_id}', #{remove_options.inspect})") do
42
46
  pending if Fog.mocking?
43
- Fog::Compute[:brightbox].remove_servers_server_group(@server_group_id, remove_options)
47
+ result = Fog::Compute[:brightbox].remove_servers_server_group(@server_group_id, remove_options)
48
+ formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) { result }
44
49
  end
45
50
 
46
51
  add_options = {:servers => [{:server => server_id}]}
47
- tests("#add_servers_server_group(#{remove_options.inspect})").formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) do
52
+ tests("#add_servers_server_group('#{@server_group_id}', #{remove_options.inspect})") do
48
53
  pending if Fog.mocking?
49
- Fog::Compute[:brightbox].add_servers_server_group(@server_group_id, add_options)
54
+ result = Fog::Compute[:brightbox].add_servers_server_group(@server_group_id, add_options)
55
+ formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) { result }
50
56
  end
51
57
 
52
- # Server Group must be empty to delete so we need to remove it again
53
- remove_options = {:servers => [{:server => server_id}]}
54
- tests("#remove_servers_server_group(#{remove_options.inspect})").formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) do
58
+ move_options = {:destination => @default_group_id, :servers => [{:server => server_id}]}
59
+ tests("#move_servers_server_group('#{@server_group_id}', #{move_options.inspect})") do
55
60
  pending if Fog.mocking?
56
- Fog::Compute[:brightbox].remove_servers_server_group(@server_group_id, remove_options)
61
+ result = Fog::Compute[:brightbox].move_servers_server_group(@server_group_id, move_options)
62
+ formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) { result }
63
+ test("group is emptied") { result["servers"].empty? }
57
64
  end
58
65
 
59
- tests("#destroy_server_group('#{@server_group_id}')").formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) do
66
+ tests("#destroy_server_group('#{@server_group_id}')") do
60
67
  pending if Fog.mocking?
61
- Fog::Compute[:brightbox].destroy_server_group(@server_group_id)
68
+ result = Fog::Compute[:brightbox].destroy_server_group(@server_group_id)
69
+ formats(Brightbox::Compute::Formats::Full::SERVER_GROUP) { result }
62
70
  end
63
71
 
64
72
  unless Fog.mocking?
65
- @server.wait_for { ready? }
66
73
  @server.destroy
67
74
  end
68
75
 
@@ -2,58 +2,77 @@ Shindo.tests('Fog::Compute[:brightbox] | server requests', ['brightbox']) do
2
2
 
3
3
  tests('success') do
4
4
 
5
- image_id = Brightbox::Compute::TestSupport::IMAGE_IDENTIFER
6
- server_id = nil
5
+ unless Fog.mocking?
6
+ image_id = Brightbox::Compute::TestSupport.image_id
7
+ server_id = nil
8
+ end
7
9
 
8
- tests("#create_server(:image => '#{image_id}')").formats(Brightbox::Compute::Formats::Full::SERVER) do
10
+ tests("#create_server(:image => '#{image_id}')") do
9
11
  pending if Fog.mocking?
10
- data = Fog::Compute[:brightbox].create_server(:image => image_id)
11
- server_id = data["id"]
12
- data
12
+ result = Fog::Compute[:brightbox].create_server(:image => image_id)
13
+ server_id = result["id"]
14
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
13
15
  end
14
16
 
15
17
  unless Fog.mocking?
16
18
  Fog::Compute[:brightbox].servers.get(server_id).wait_for { ready? }
17
19
  end
18
20
 
19
- tests("#list_servers").formats(Brightbox::Compute::Formats::Collection::SERVERS) do
21
+ tests("#list_servers") do
22
+ pending if Fog.mocking?
23
+ result = Fog::Compute[:brightbox].list_servers
24
+ formats(Brightbox::Compute::Formats::Collection::SERVERS) { result }
25
+ end
26
+
27
+ tests("#get_server('#{server_id}')") do
20
28
  pending if Fog.mocking?
21
- Fog::Compute[:brightbox].list_servers
29
+ result = Fog::Compute[:brightbox].get_server(server_id)
30
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
22
31
  end
23
32
 
24
- tests("#get_server('#{server_id}')").formats(Brightbox::Compute::Formats::Full::SERVER) do
33
+ tests("#update_server('#{server_id}')") do
25
34
  pending if Fog.mocking?
26
- Fog::Compute[:brightbox].get_server(server_id)
35
+ result = Fog::Compute[:brightbox].update_server(server_id, :name => "Fog@#{Time.now.iso8601}")
36
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
27
37
  end
28
38
 
29
- tests("#update_server('#{server_id}')").formats(Brightbox::Compute::Formats::Full::SERVER) do
39
+ tests("#activate_console_server('#{server_id}')") do
30
40
  pending if Fog.mocking?
31
- Fog::Compute[:brightbox].update_server(server_id, :name => "Fog@#{Time.now.iso8601}")
41
+ result = Fog::Compute[:brightbox].activate_console_server(server_id)
42
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
32
43
  end
33
44
 
34
- tests("#activate_console_server('#{server_id}')").formats(Brightbox::Compute::Formats::Full::SERVER) do
45
+ tests("#stop_server('#{server_id}')") do
35
46
  pending if Fog.mocking?
36
- Fog::Compute[:brightbox].activate_console_server(server_id)
47
+ result = Fog::Compute[:brightbox].stop_server(server_id)
48
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
37
49
  end
38
50
 
39
- tests("#stop_server('#{server_id}')").formats(Brightbox::Compute::Formats::Full::SERVER) do
51
+ tests("#start_server('#{server_id}')") do
40
52
  pending if Fog.mocking?
41
- Fog::Compute[:brightbox].stop_server(server_id)
53
+ result = Fog::Compute[:brightbox].start_server(server_id)
54
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
42
55
  end
43
56
 
44
- tests("#start_server('#{server_id}')").formats(Brightbox::Compute::Formats::Full::SERVER) do
57
+ tests("#shutdown_server('#{server_id}')") do
45
58
  pending if Fog.mocking?
46
- Fog::Compute[:brightbox].start_server(server_id)
59
+ result = Fog::Compute[:brightbox].shutdown_server(server_id)
60
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
47
61
  end
48
62
 
49
- tests("#shutdown_server('#{server_id}')").formats(Brightbox::Compute::Formats::Full::SERVER) do
63
+ tests("#snapshot_server('#{server_id}')") do
50
64
  pending if Fog.mocking?
51
- Fog::Compute[:brightbox].shutdown_server(server_id)
65
+ result = Fog::Compute[:brightbox].snapshot_server(server_id)
66
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
67
+ snapshot_id = result["id"]
68
+ @snapshot = Fog::Compute[:brightbox].images.get(snapshot_id)
69
+ @snapshot.destroy
52
70
  end
53
71
 
54
- tests("#destroy_server('#{server_id}')").formats(Brightbox::Compute::Formats::Full::SERVER) do
72
+ tests("#destroy_server('#{server_id}')") do
55
73
  pending if Fog.mocking?
56
- Fog::Compute[:brightbox].destroy_server(server_id)
74
+ result = Fog::Compute[:brightbox].destroy_server(server_id)
75
+ formats(Brightbox::Compute::Formats::Full::SERVER) { result }
57
76
  end
58
77
 
59
78
  end