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
@@ -10,7 +10,7 @@ Shindo.tests('Fog::Compute[:glesys] | ip requests', ['glesys']) do
10
10
  Fog::Compute[:glesys].ip_list_own.body['response']
11
11
  end
12
12
 
13
- tests("#ip_list_free(:datcenter => 'Falkenberg, :platform => 'Xen', :ipversion => 4)"
13
+ tests("#ip_list_free(:datacenter => 'Falkenberg, :platform => 'Xen', :ipversion => 4)"
14
14
  ).formats(Glesys::Compute::Formats::Ips::IPLIST_ALL) do
15
15
  pending if Fog.mocking?
16
16
  ips = Fog::Compute[:glesys].ip_list_free(
@@ -1,7 +1,7 @@
1
1
  Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
2
-
2
+
3
3
  @serverid = nil
4
- @hostname = "fog.#{Time.now.to_i}"
4
+ @hostname = "fog-#{Time.now.to_i}"
5
5
 
6
6
  @create = ":hostname => #@hostname, :rootpw => 'pw#{Time.now.to_i}', "+
7
7
  ":datacenter => 'Falkenberg', :platform => 'Xen', :template => 'Debian-6 x64', "+
@@ -27,7 +27,7 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
27
27
  :cpucores => "1",
28
28
  :transfer => "500"
29
29
  )
30
-
30
+
31
31
  @serverid = vm.body['response']['server']['serverid']
32
32
  vm.body['response']
33
33
  end
@@ -35,7 +35,7 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
35
35
  unless Fog.mocking?
36
36
  Fog::Compute[:glesys].servers.get(@serverid).wait_for { ready? }
37
37
  end
38
-
38
+
39
39
  tests("#server_details(#{@serverid})").formats(Glesys::Compute::Formats::Servers::DETAILS) do
40
40
  pending if Fog.mocking?
41
41
  Fog::Compute[:glesys].server_details(@serverid).body['response']
@@ -55,7 +55,7 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
55
55
  unless Fog.mocking?
56
56
  pending if Fog.mocking?
57
57
  s = Fog::Compute[:glesys].servers.get(@serverid)
58
- s.wait_for { s.state == 'stopped' }
58
+ s.wait_for { s.state == 'stopped' }
59
59
  end
60
60
 
61
61
  tests("#start(:serverid => #{@serverid})").formats(Glesys::Compute::Formats::Servers::START) do
@@ -15,6 +15,8 @@ if Fog.mock?
15
15
  :bluebox_customer_id => 'bluebox_customer_id',
16
16
  :brightbox_client_id => 'brightbox_client_id',
17
17
  :brightbox_secret => 'brightbox_secret',
18
+ :clodo_api_key => 'clodo_api_key',
19
+ :clodo_username => 'clodo_username',
18
20
  :dnsimple_email => 'dnsimple_email',
19
21
  :dnsimple_password => 'dnsimple_password',
20
22
  :dnsmadeeasy_api_key => 'dnsmadeeasy_api_key',
@@ -0,0 +1,14 @@
1
+ Shindo.tests('Fog::Rackspace::DNS | zone', ['rackspace']) do
2
+ pending if Fog.mocking?
3
+
4
+ provider = Fog::DNS[:rackspace]
5
+ domain_name = uniq_id + '.com'
6
+
7
+ zone = provider.zones.create({:domain => domain_name, :email => 'hostmaster@' + domain_name})
8
+
9
+ tests('adding same domain twice throws error').raises(Fog::DNS::Rackspace::CallbackError) do
10
+ provider.zones.create({:domain => domain_name, :email => 'hostmaster@' + domain_name})
11
+ end
12
+
13
+ zone.destroy
14
+ end
@@ -25,6 +25,11 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
25
25
  returns(true) { @instance.connection_logging }
26
26
  end
27
27
 
28
+ tests('#enable_connection_logging after reload').succeeds do
29
+ @instance.reload
30
+ returns(true) { @instance.connection_logging }
31
+ end
32
+
28
33
  @instance.wait_for { ready? }
29
34
  tests('#disable_connection_logging').succeeds do
30
35
  @instance.disable_connection_logging
@@ -54,6 +59,11 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
54
59
  returns('CONNECT') { monitor['type'] }
55
60
  end
56
61
 
62
+ @instance.wait_for { ready? }
63
+ tests("#enable_health_monitor('HTTP', 10, 5, 2, {:status_regex => '^[234][0-9][0-9]$', :path=>'/', :body_regex=>' '})").succeeds do
64
+ @instance.enable_health_monitor('HTTP', 10, 5, 2, {:status_regex => '^[234][0-9][0-9]$', :path=>'/', :body_regex=>' '})
65
+ end
66
+
57
67
  @instance.wait_for { ready? }
58
68
  tests("#disable_health_monitor").succeeds do
59
69
  @instance.disable_health_monitor
@@ -99,6 +109,21 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
99
109
  @instance.disable_session_persistence
100
110
  end
101
111
 
112
+ @instance.wait_for { ready? }
113
+ tests("#error_page").succeeds do
114
+ @instance.error_page
115
+ end
116
+
117
+ @instance.wait_for { ready? }
118
+ tests("#error_page = 'asdf'").succeeds do
119
+ @instance.error_page = 'asdf'
120
+ end
121
+
122
+ @instance.wait_for { ready? }
123
+ tests("#reset_error_page").succeeds do
124
+ @instance.reset_error_page
125
+ end
126
+
102
127
  @instance.wait_for { ready? }
103
128
  end
104
129
 
@@ -101,8 +101,10 @@ Shindo.tests('Fog::DNS[:rackspace] | DNS requests', ['rackspace', 'dns']) do
101
101
 
102
102
  tests( 'failure') do
103
103
 
104
- tests('create_domain(invalid)').raises(Fog::Rackspace::Errors::BadRequest) do
105
- wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].create_domains([{:name => 'badtestdomain.com', :email => '', :records => [{:ttl => 300, :name => 'badtestdomain.com', :type => 'A', :data => '192.168.1.1'}]}])
104
+ tests('create_domain(invalid)').returns('ERROR') do
105
+ response = wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].create_domains([{:name => 'badtestdomain.com', :email => '', :records => [{:ttl => 300, :name => 'badtestdomain.com', :type => 'A', :data => '192.168.1.1'}]}])
106
+
107
+ response.body['status']
106
108
  end
107
109
 
108
110
  tests('list_domains :limit => 5, :offset => 8').raises(Fog::Rackspace::Errors::BadRequest) do
@@ -0,0 +1,31 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | error_page', ['rackspace', 'loadbalancers']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ given_a_load_balancer_service do
6
+ given_a_load_balancer do
7
+ tests('success') do
8
+
9
+ @lb.wait_for { ready? }
10
+ tests("#get_error_page(#{@lb.id})").formats(ERROR_PAGE_FORMAT) do
11
+ @service.get_error_page(@lb.id).body
12
+ end
13
+
14
+ @lb.wait_for { ready? }
15
+ tests("#set_error_page(#{@lb.id}, '<html><body>hi!</body></html>')").succeeds do
16
+ @service.set_error_page(@lb.id, '<html><body>hi!</body></html>')
17
+ end
18
+
19
+ @lb.wait_for { ready? }
20
+ tests("#get_error_page(#{@lb.id})").formats(ERROR_PAGE_FORMAT) do
21
+ @service.get_error_page(@lb.id).body
22
+ end
23
+
24
+ @lb.wait_for { ready? }
25
+ tests("#remove_error_page()").succeeds do
26
+ @service.remove_error_page(@lb.id)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -3,6 +3,11 @@ NODE_FORMAT = {'node' => SINGLE_NODE_FORMAT}
3
3
  NODES_FORMAT = {'nodes' => [SINGLE_NODE_FORMAT]}
4
4
  VIRTUAL_IP_FORMAT = {'type' => String, 'id' => Integer, 'type' => String, 'ipVersion' => String, 'address' => String}
5
5
  VIRTUAL_IPS_FORMAT = { 'virtualIps' => [VIRTUAL_IP_FORMAT] }
6
+ SOURCE_ADDRESSES = {
7
+ 'ipv4Servicenet' => String,
8
+ 'ipv4Public' => String,
9
+ 'ipv6Public' => String,
10
+ }
6
11
  LOAD_BALANCER_USAGE_FORMAT = {
7
12
  'loadBalancerUsageRecords' => [
8
13
  {
@@ -87,11 +92,22 @@ LOAD_BALANCERS_FORMAT = {
87
92
  'port' => Integer,
88
93
  'protocol' => String,
89
94
  'algorithm' => String,
90
- 'sourceAddresses' => {
91
- 'ipv4Servicenet' => String,
92
- 'ipv4Public' => String,
93
- 'ipv6Public' => String,
94
- },
95
+ 'status' => String,
96
+ 'virtualIps' => [VIRTUAL_IP_FORMAT],
97
+ 'created' => { 'time' => String },
98
+ 'updated' => { 'time' => String }
99
+ }]
100
+ }
101
+
102
+ LOAD_BALANCERS_DETAIL_FORMAT = {
103
+ 'loadBalancers' => [
104
+ {
105
+ 'name' => String,
106
+ 'id' => Integer,
107
+ 'port' => Integer,
108
+ 'protocol' => String,
109
+ 'algorithm' => String,
110
+ 'sourceAddresses' => SOURCE_ADDRESSES,
95
111
  'status' => String,
96
112
  'virtualIps' => [VIRTUAL_IP_FORMAT],
97
113
  'nodes' => [SINGLE_NODE_FORMAT],
@@ -106,11 +122,7 @@ LOAD_BALANCER_FORMAT = {
106
122
  'port' => Integer,
107
123
  'protocol' => String,
108
124
  'algorithm' => String,
109
- 'sourceAddresses' => {
110
- 'ipv4Servicenet' => String,
111
- 'ipv4Public' => String,
112
- 'ipv6Public' => String,
113
- },
125
+ 'sourceAddresses' => SOURCE_ADDRESSES,
114
126
  'status' => String,
115
127
  'cluster' => { 'name' => String },
116
128
  'virtualIps' => [VIRTUAL_IP_FORMAT],
@@ -120,4 +132,8 @@ LOAD_BALANCER_FORMAT = {
120
132
  }.merge(CONNECTION_LOGGING_FORMAT)
121
133
  }
122
134
 
123
-
135
+ ERROR_PAGE_FORMAT = {
136
+ 'errorpage' => {
137
+ 'content' => String
138
+ }
139
+ }
@@ -8,7 +8,7 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
8
8
  @lb_id = nil
9
9
  @lb_name = 'fog' + Time.now.to_i.to_s
10
10
 
11
- tests('#create_load_balancer(fog, )').formats(LOAD_BALANCER_FORMAT) do
11
+ tests("#create_load_balancer(#{@lb_name}, 'HTTP', 80,...)").formats(LOAD_BALANCER_FORMAT) do
12
12
  data = @service.create_load_balancer(@lb_name, 'HTTP', 80, [{ :type => 'PUBLIC'}], [{ :address => '10.0.0.1', :port => 80, :condition => 'ENABLED'}]).body
13
13
  @lb_id = data['loadBalancer']['id']
14
14
  data
@@ -30,6 +30,9 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
30
30
  sleep 10
31
31
  end
32
32
 
33
+ tests("#list_load_balancers({:node_address => '10.0.0.1'})").formats(LOAD_BALANCERS_FORMAT) do
34
+ @service.list_load_balancers({:node_address => '10.0.0.1'}).body
35
+ end
33
36
 
34
37
  tests("#update_load_balancer(#{@lb_id}, { :port => 80 })").succeeds do
35
38
  @service.update_load_balancer(@lb_id, { :port => 80 }).body
@@ -1,4 +1,4 @@
1
- Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace']) do
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | node_tests', ['rackspace']) do
2
2
 
3
3
  pending if Fog.mocking?
4
4
 
@@ -9,7 +9,7 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
9
9
  tests('success') do
10
10
 
11
11
  @lb.wait_for { ready? }
12
- tests('#create_node').formats(NODES_FORMAT) do
12
+ tests("#create_node(#{@lb.id}, '10.10.10.10', 80, 'ENABLED')").formats(NODES_FORMAT) do
13
13
  data = @service.create_node(@lb.id, '10.10.10.10', 80, 'ENABLED').body
14
14
  @nodes_created << data['nodes'][0]['id']
15
15
  data
@@ -23,48 +23,48 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
23
23
  end
24
24
 
25
25
  @lb.wait_for { ready? }
26
- tests("list_nodes").formats(NODES_FORMAT) do
26
+ tests("#list_nodes(#{@lb.id})").formats(NODES_FORMAT) do
27
27
  @service.list_nodes(@lb.id).body
28
28
  end
29
29
 
30
30
  @lb.wait_for { ready? }
31
- tests("get_node(#{@lb_node_id})").formats(NODE_FORMAT) do
31
+ tests("#get_node(#{@lb.id})").formats(NODE_FORMAT) do
32
32
  @service.get_node(@lb.id, @nodes_created[0]).body
33
33
  end
34
34
 
35
- tests("update_node(#{@lb.id}, #{@nodes_created[0]})").succeeds do
36
-
37
- @lb.wait_for { ready? }
38
- tests("condition").succeeds do
39
- @service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED' })
40
- end
35
+ @lb.wait_for { ready? }
36
+ tests("#update_node(#{@lb.id}, #{@nodes_created[0]}, { :condition => 'DISABLED' })").succeeds do
37
+ @service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED' })
38
+ end
41
39
 
42
- @lb.wait_for { ready? }
43
- tests("weight").succeeds do
44
- @service.update_node(@lb.id, @nodes_created[0], { :weight => 20 })
45
- end
40
+ @lb.wait_for { ready? }
41
+ tests("#update_node(#{@lb.id}, #{@nodes_created[0]}, { :weight => 20})").succeeds do
42
+ @service.update_node(@lb.id, @nodes_created[0], { :weight => 20 })
43
+ end
46
44
 
47
- @lb.wait_for { ready? }
48
- tests("condition and weight").succeeds do
49
- @service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED', :weight => 20 })
50
- end
45
+ @lb.wait_for { ready? }
46
+ tests("#update_node(#{@lb.id}, #{@nodes_created[0]}, { :condition => 'DISABLED', :weight => 20 })").succeeds do
47
+ @service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED', :weight => 20 })
51
48
  end
52
49
  end
53
50
 
54
51
  tests('failure') do
55
- tests('create_node(invalid ip)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
52
+ tests('#create_node(invalid ip)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
56
53
  @service.create_node(@lb.id, '', 80, 'ENABLED')
57
54
  end
58
- tests('create_node(invalid condition)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
55
+ tests('#create_node(invalid condition)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
59
56
  @service.create_node(@lb.id, '10.10.10.10', 80, 'EABLED')
60
57
  end
61
- tests('get_node(0)').raises(Fog::Rackspace::LoadBalancers::NotFound) do
58
+ tests("#get_node(#{@lb.id}, 0)").raises(Fog::Rackspace::LoadBalancers::NotFound) do
62
59
  @service.get_node(@lb.id, 0)
63
60
  end
64
- tests('delete_nodes(0)').raises(Fog::Rackspace::LoadBalancers::ServiceError) do
65
- @service.delete_nodes(@lb.id, 0)
61
+ tests("#delete_node(#{@lb.id}, 0)").raises(Fog::Rackspace::LoadBalancers::NotFound) do
62
+ @service.delete_node(@lb.id, 0)
63
+ end
64
+ tests("#delete_nodes('a', 'b')").raises(Fog::Rackspace::LoadBalancers::NotFound) do
65
+ @service.delete_nodes(@lb.id, 'a', 'b')
66
66
  end
67
- tests('update_node(0)').raises(Fog::Rackspace::LoadBalancers::NotFound) do
67
+ tests("#update_node(#{@lb.id}, 0, { :weight => 20 })").raises(Fog::Rackspace::LoadBalancers::NotFound) do
68
68
  @service.update_node(@lb.id, 0, { :weight => 20 })
69
69
  end
70
70
  end
@@ -72,7 +72,6 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
72
72
  tests('success') do
73
73
  @lb.wait_for { ready? }
74
74
  tests("#delete_nodes(multiple node)").succeeds do
75
- pending
76
75
  @service.delete_nodes(@lb.id, *@nodes_created)
77
76
  end
78
77
  @lb.wait_for { ready? }
@@ -16,9 +16,9 @@ Shindo.tests('Fog::Compute[:slicehost] | slice requests', ['slicehost']) do
16
16
 
17
17
  @slice_id = nil
18
18
 
19
- tests("#create_slice(1, 19, 'fogcreateslice')").formats(@slice_format.merge('root-password' => String)) do
19
+ tests("#create_slice(1, 305, 'fogcreateslice')").formats(@slice_format.merge('root-password' => String)) do
20
20
  pending if Fog.mocking?
21
- data = Fog::Compute[:slicehost].create_slice(1, 19, 'fogcreateslice').body
21
+ data = Fog::Compute[:slicehost].create_slice(1, 305, 'fogcreateslice').body
22
22
  @slice_id = data['id']
23
23
  data
24
24
  end
@@ -14,16 +14,16 @@ Shindo.tests('Fog::Compute[:stormondemand] | server requests', ['stormondemand']
14
14
  'ip' => String,
15
15
  'ip_count' => String,
16
16
  'subaccnt' => String,
17
- 'template' => NilClass,
17
+ 'template' => String,
18
18
  'template_description' => String,
19
- 'manage_level' => NilClass,
19
+ 'manage_level' => String,
20
20
  'zone' => Hash,
21
21
  'active' => Integer,
22
22
  'create_date' => String
23
23
  }
24
24
 
25
25
  @servers_format = {
26
- 'servers' => [@server_format]
26
+ 'items' => [@server_format]
27
27
  }
28
28
 
29
29
  tests('success') do
@@ -0,0 +1,110 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ExternalNetwork xmlns="http://www.vmware.com/vcloud/v1" name="ParentNetwork1" type="application/vnd.vmware.admin.network+xml" href="https://vcloud.example.com/api/v1.0/admin/network/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v1 http://vcloud.example.com/api/v1.0/schema/master.xsd">
3
+ <Description>Internet Connection</Description>
4
+ <Configuration>
5
+ <IpScope>
6
+ <IsInherited>false</IsInherited>
7
+ <Gateway>172.0.0.1</Gateway>
8
+ <Netmask>255.255.255.0</Netmask>
9
+ <Dns1>172.0.0.2</Dns1>
10
+ <Dns2>172.0.0.190</Dns2>
11
+ <IpRanges>
12
+ <IpRange>
13
+ <StartAddress>172.0.0.142</StartAddress>
14
+ <EndAddress>172.0.0.156</EndAddress>
15
+ </IpRange>
16
+ <IpRange>
17
+ <StartAddress>172.0.0.160</StartAddress>
18
+ <EndAddress>172.0.0.184</EndAddress>
19
+ </IpRange>
20
+ <IpRange>
21
+ <StartAddress>172.0.0.195</StartAddress>
22
+ <EndAddress>172.0.0.235</EndAddress>
23
+ </IpRange>
24
+ </IpRanges>
25
+ <AllocatedIpAddresses>
26
+ <IpAddress>172.0.0.153</IpAddress>
27
+ <IpAddress>172.0.0.147</IpAddress>
28
+ <IpAddress>172.0.0.221</IpAddress>
29
+ <IpAddress>172.0.0.226</IpAddress>
30
+ <IpAddress>172.0.0.151</IpAddress>
31
+ <IpAddress>172.0.0.161</IpAddress>
32
+ <IpAddress>172.0.0.164</IpAddress>
33
+ <IpAddress>172.0.0.163</IpAddress>
34
+ <IpAddress>172.0.0.218</IpAddress>
35
+ <IpAddress>172.0.0.173</IpAddress>
36
+ <IpAddress>172.0.0.172</IpAddress>
37
+ <IpAddress>172.0.0.175</IpAddress>
38
+ <IpAddress>172.0.0.178</IpAddress>
39
+ <IpAddress>172.0.0.197</IpAddress>
40
+ <IpAddress>172.0.0.180</IpAddress>
41
+ <IpAddress>172.0.0.201</IpAddress>
42
+ <IpAddress>172.0.0.156</IpAddress>
43
+ <IpAddress>172.0.0.202</IpAddress>
44
+ <IpAddress>172.0.0.183</IpAddress>
45
+ <IpAddress>172.0.0.149</IpAddress>
46
+ <IpAddress>172.0.0.214</IpAddress>
47
+ <IpAddress>172.0.0.171</IpAddress>
48
+ <IpAddress>172.0.0.162</IpAddress>
49
+ <IpAddress>172.0.0.198</IpAddress>
50
+ <IpAddress>172.0.0.224</IpAddress>
51
+ <IpAddress>172.0.0.195</IpAddress>
52
+ <IpAddress>172.0.0.196</IpAddress>
53
+ <IpAddress>172.0.0.150</IpAddress>
54
+ <IpAddress>172.0.0.169</IpAddress>
55
+ <IpAddress>172.0.0.170</IpAddress>
56
+ <IpAddress>172.0.0.176</IpAddress>
57
+ <IpAddress>172.0.0.200</IpAddress>
58
+ <IpAddress>172.0.0.179</IpAddress>
59
+ <IpAddress>172.0.0.205</IpAddress>
60
+ <IpAddress>172.0.0.213</IpAddress>
61
+ <IpAddress>172.0.0.210</IpAddress>
62
+ <IpAddress>172.0.0.215</IpAddress>
63
+ <IpAddress>172.0.0.219</IpAddress>
64
+ <IpAddress>172.0.0.208</IpAddress>
65
+ <IpAddress>172.0.0.216</IpAddress>
66
+ <IpAddress>172.0.0.217</IpAddress>
67
+ <IpAddress>172.0.0.204</IpAddress>
68
+ <IpAddress>172.0.0.232</IpAddress>
69
+ <IpAddress>172.0.0.154</IpAddress>
70
+ <IpAddress>172.0.0.235</IpAddress>
71
+ <IpAddress>172.0.0.146</IpAddress>
72
+ <IpAddress>172.0.0.209</IpAddress>
73
+ <IpAddress>172.0.0.211</IpAddress>
74
+ <IpAddress>172.0.0.199</IpAddress>
75
+ <IpAddress>172.0.0.155</IpAddress>
76
+ <IpAddress>172.0.0.142</IpAddress>
77
+ <IpAddress>172.0.0.160</IpAddress>
78
+ <IpAddress>172.0.0.212</IpAddress>
79
+ <IpAddress>172.0.0.177</IpAddress>
80
+ <IpAddress>172.0.0.167</IpAddress>
81
+ <IpAddress>172.0.0.166</IpAddress>
82
+ <IpAddress>172.0.0.168</IpAddress>
83
+ <IpAddress>172.0.0.165</IpAddress>
84
+ <IpAddress>172.0.0.181</IpAddress>
85
+ <IpAddress>172.0.0.184</IpAddress>
86
+ <IpAddress>172.0.0.143</IpAddress>
87
+ <IpAddress>172.0.0.230</IpAddress>
88
+ <IpAddress>172.0.0.206</IpAddress>
89
+ <IpAddress>172.0.0.233</IpAddress>
90
+ <IpAddress>172.0.0.222</IpAddress>
91
+ <IpAddress>172.0.0.225</IpAddress>
92
+ <IpAddress>172.0.0.220</IpAddress>
93
+ <IpAddress>172.0.0.227</IpAddress>
94
+ <IpAddress>172.0.0.148</IpAddress>
95
+ <IpAddress>172.0.0.228</IpAddress>
96
+ <IpAddress>172.0.0.229</IpAddress>
97
+ <IpAddress>172.0.0.231</IpAddress>
98
+ <IpAddress>172.0.0.152</IpAddress>
99
+ <IpAddress>172.0.0.145</IpAddress>
100
+ <IpAddress>172.0.0.174</IpAddress>
101
+ <IpAddress>172.0.0.182</IpAddress>
102
+ <IpAddress>172.0.0.203</IpAddress>
103
+ <IpAddress>172.0.0.207</IpAddress>
104
+ <IpAddress>172.0.0.144</IpAddress>
105
+ </AllocatedIpAddresses>
106
+ </IpScope>
107
+ <FenceMode>isolated</FenceMode>
108
+ </Configuration>
109
+ <ProviderInfo>NETWORK:dvportgroup-230 on com.vmware.vcloud.entity.vimserver:35935555</ProviderInfo>
110
+ </ExternalNetwork>