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
@@ -2,16 +2,17 @@ Shindo.tests('Fog::Compute[:brightbox] | server type requests', ['brightbox']) d
2
2
 
3
3
  tests('success') do
4
4
 
5
- tests("#list_server_types").formats(Brightbox::Compute::Formats::Collection::SERVER_TYPES) do
5
+ tests("#list_server_types") do
6
6
  pending if Fog.mocking?
7
- data = Fog::Compute[:brightbox].list_server_types
8
- @server_type_id = data.first["id"]
9
- data
7
+ result = Fog::Compute[:brightbox].list_server_types
8
+ @server_type_id = result.first["id"]
9
+ formats(Brightbox::Compute::Formats::Collection::SERVER_TYPES) { result }
10
10
  end
11
11
 
12
- tests("#get_server_type('#{@server_type_id}')").formats(Brightbox::Compute::Formats::Full::SERVER_TYPE) do
12
+ tests("#get_server_type('#{@server_type_id}')") do
13
13
  pending if Fog.mocking?
14
- Fog::Compute[:brightbox].get_server_type(@server_type_id)
14
+ result = Fog::Compute[:brightbox].get_server_type(@server_type_id)
15
+ formats(Brightbox::Compute::Formats::Full::SERVER_TYPE) { result }
15
16
  end
16
17
 
17
18
  end
@@ -2,29 +2,24 @@ Shindo.tests('Fog::Compute[:brightbox] | user requests', ['brightbox']) do
2
2
 
3
3
  tests('success') do
4
4
 
5
- tests("#list_users").formats(Brightbox::Compute::Formats::Collection::USERS) do
5
+ tests("#list_users") do
6
6
  pending if Fog.mocking?
7
- data = Fog::Compute[:brightbox].list_users
8
- @user_id = data.first["id"]
9
- data
7
+ result = Fog::Compute[:brightbox].list_users
8
+ @user_id = result.first["id"]
9
+ formats(Brightbox::Compute::Formats::Collection::USERS) { result }
10
10
  end
11
11
 
12
- tests("#get_user('#{@user_id}')").formats(Brightbox::Compute::Formats::Full::USER) do
12
+ tests("#get_user('#{@user_id}')") do
13
13
  pending if Fog.mocking?
14
- data = Fog::Compute[:brightbox].get_user(@user_id)
15
- @original_name = data["name"]
16
- data
14
+ result = Fog::Compute[:brightbox].get_user(@user_id)
15
+ formats(Brightbox::Compute::Formats::Full::USER) { result }
17
16
  end
18
17
 
19
- update_options = { :name => "Fog@#{Time.now.iso8601}" }
20
-
21
- tests("#update_user('#{@user_id}', #{update_options.inspect})").formats(Brightbox::Compute::Formats::Full::USER) do
18
+ update_options = { :name => "Example User" }
19
+ tests("#update_user('#{@user_id}', #{update_options.inspect})") do
22
20
  pending if Fog.mocking?
23
- Fog::Compute[:brightbox].update_user(@user_id, update_options)
24
- end
25
-
26
- unless Fog.mocking?
27
- Fog::Compute[:brightbox].update_user(@user_id, :name => @original_name)
21
+ result = Fog::Compute[:brightbox].update_user(@user_id, update_options)
22
+ formats(Brightbox::Compute::Formats::Full::USER) { result }
28
23
  end
29
24
 
30
25
  end
@@ -2,16 +2,17 @@ Shindo.tests('Fog::Compute[:brightbox] | zone requests', ['brightbox']) do
2
2
 
3
3
  tests('success') do
4
4
 
5
- tests("#list_zones").formats(Brightbox::Compute::Formats::Collection::ZONES) do
5
+ tests("#list_zones") do
6
6
  pending if Fog.mocking?
7
- data = Fog::Compute[:brightbox].list_zones
8
- @zone_id = data.first["id"]
9
- data
7
+ result = Fog::Compute[:brightbox].list_zones
8
+ @zone_id = result.first["id"]
9
+ formats(Brightbox::Compute::Formats::Collection::ZONES) { result }
10
10
  end
11
11
 
12
- tests("#get_zone('#{@zone_id}')").formats(Brightbox::Compute::Formats::Full::ZONE) do
12
+ tests("#get_zone('#{@zone_id}')") do
13
13
  pending if Fog.mocking?
14
- Fog::Compute[:brightbox].get_zone(@zone_id)
14
+ result = Fog::Compute[:brightbox].get_zone(@zone_id)
15
+ formats(Brightbox::Compute::Formats::Full::ZONE) { result }
15
16
  end
16
17
 
17
18
  end
@@ -0,0 +1,36 @@
1
+ Shindo.tests('Fog::Compute[:clodo] | image requests', ['clodo']) do
2
+
3
+ ### Fog.mock!
4
+
5
+ clodo = Fog::Compute[:clodo]
6
+
7
+ @image_format = {
8
+ 'id' => String,
9
+ 'name' => String,
10
+ 'status' => String,
11
+ 'vps_type' => String
12
+ }
13
+
14
+ @image_details_format = {
15
+ 'os_type' => String,
16
+ 'os_bits' => String,
17
+ 'os_hvm' => String,
18
+ '_attr' => @image_format
19
+ }
20
+
21
+ tests("success") do
22
+ tests("- list_images").formats([@image_format]) do
23
+ clodo.list_images.body['images']
24
+ end
25
+
26
+ tests("- list_images_detail").formats([@image_details_format]) do
27
+ clodo.list_images_detail.body['images']
28
+ end
29
+ end
30
+
31
+ tests("failure") do
32
+ tests("- get_image_details(541)").returns(nil) do
33
+ clodo.images.get(541)
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,152 @@
1
+ Shindo.tests('Fog::Compute[:clodo] | server requests', ['clodo']) do
2
+
3
+ @ip_format = {
4
+ 'primary_ip' => Fog::Boolean,
5
+ 'isp' => Fog::Boolean,
6
+ 'ip' => String
7
+ }
8
+
9
+ @server_format = {
10
+ 'addresses' => {
11
+ 'public' => [@ip_format]
12
+ },
13
+ 'id' => String,
14
+ 'imageId' => String,
15
+ 'name' => String,
16
+ 'type' => String,
17
+ 'status' => String
18
+ }
19
+
20
+ @server_details_format = @server_format.merge({
21
+ 'id' => Integer,
22
+ 'vps_createdate' => String,
23
+ 'vps_hdd_max' => String,
24
+ 'vps_traff' => NilClass,
25
+ 'vps_mem_1h_max' => String,
26
+ 'vps_mem_load' => String,
27
+ 'vps_user_pass' => String,
28
+ 'vps_vnc_pass' => String,
29
+ 'vps_adddate' => String,
30
+ 'vps_os_title' => String,
31
+ 'vps_update' => String,
32
+ 'vps_mem_1h_min' => String,
33
+ 'vps_mem_1h_avg' => NilClass,
34
+ 'vps_memory_max' => String,
35
+ 'vps_os_version' => String,
36
+ 'vps_cpu_1h_max' => String,
37
+ 'vps_hdd_load' => String,
38
+ 'vps_disk_load' => String,
39
+ 'vps_os_type' => String,
40
+ 'vps_memory' => String,
41
+ 'vps_cpu_load' => String,
42
+ 'vps_update_days' => String,
43
+ 'vps_os_bits' => String,
44
+ 'vps_vnc' => String,
45
+ 'vps_cpu_max' => String,
46
+ 'vps_cpu_1h_min' => String,
47
+ 'vps_cpu_1h_avg' => NilClass,
48
+ 'vps_root_pass' => String
49
+ })
50
+
51
+ @server_create_format = {
52
+ 'name' => String,
53
+ 'adminPass' => String,
54
+ 'imageId' => String,
55
+ 'id' => Integer
56
+ }
57
+
58
+ # Fog.mock!
59
+
60
+ clodo = Fog::Compute[:clodo]
61
+
62
+ tests('success') do
63
+ tests('- create_server(541)').formats(@server_create_format) do
64
+ data = clodo.create_server(541,{:vps_type => 'ScaleServer'}).body['server']
65
+ @server_id = data['id']
66
+ data
67
+ end
68
+
69
+ tests('- list_servers(ready)').formats([@server_format]) do
70
+ clodo.list_servers.body['servers'].reject {|s| !['is_running', 'is_disabled'].include?(s['status']) }
71
+ end
72
+
73
+ tests('- list_servers(not ready)').formats([@server_format.merge({'addresses'=>{'public'=>NilClass}})]) do
74
+ clodo.list_servers.body['servers'].reject {|s| !['is_request'].include?(s['status']) }
75
+ end
76
+
77
+ clodo.servers.get(@server_id).wait_for { ready? || state == 'is_error' } unless Fog.mocking?
78
+
79
+ tests("- add_ip_address(#{@server_id})").succeeds do
80
+ clodo.add_ip_address(@server_id)
81
+ end
82
+
83
+ # tests("- get_server_details(#{@server_id})").formats(@server_details_format) do
84
+ # data = clodo.get_server_details(@server_id).body['server']
85
+ # @additional_ip = data['addresses']['public'].select {|a| !a['primary_ip'] }.first
86
+ # data
87
+ # end
88
+
89
+ tests("- reboot_server(#{@server_id})").succeeds do
90
+ clodo.reboot_server(@server_id, :hard)
91
+ end
92
+
93
+ clodo.servers.get(@server_id).wait_for { ready? || state == 'is_error' } unless Fog.mocking?
94
+
95
+ # tests("- delete_ip_address(#{@server_id}, #{@additional_ip['ip']})").success do
96
+ # clodo.delete_ip_address(@server_id, @additional_ip['ip'])
97
+ # end
98
+
99
+ tests("- stop_server(#{@server_id})").succeeds do
100
+ clodo.stop_server(@server_id)
101
+ end
102
+
103
+ unless Fog.mocking?
104
+ clodo.servers.get(@server_id).wait_for { state == 'is_disabled' || state == 'is_error' }
105
+ end
106
+
107
+ tests("- start_server(#{@server_id})").succeeds do
108
+ clodo.start_server(@server_id)
109
+ end
110
+
111
+ clodo.servers.get(@server_id).wait_for { ready? || state == 'is_error' } unless Fog.mocking?
112
+
113
+ tests("- delete_server(#{@server_id})").succeeds do
114
+ clodo.delete_server(@server_id)
115
+ end
116
+ end
117
+
118
+ tests('failure') do
119
+ tests('- create_server(0)').raises(Excon::Errors::BadRequest) do
120
+ data = clodo.create_server(0,{:vps_type => 'ScaleServer'}).body['server']
121
+ @server_id = data['id']
122
+ data
123
+ end
124
+
125
+ tests("- reboot_server(0)").raises(Excon::Errors::BadRequest) do
126
+ clodo.reboot_server(0, :hard)
127
+ end
128
+
129
+ tests("- stop_server(0)").raises(Excon::Errors::BadRequest) do
130
+ clodo.stop_server(0)
131
+ end
132
+
133
+ tests("- start_server(0)").raises(Excon::Errors::BadRequest) do
134
+ clodo.start_server(0)
135
+ end
136
+
137
+ ## delete_server(0) in actual API, works not as it must,
138
+ ## so I do not include this test in tests sequence.
139
+ # tests("- delete_server(0)").raises(Fog::Compute::Clodo::NotFound) do
140
+ # clodo.delete_server(0)
141
+ # end
142
+ #
143
+ # tests("- delete_ip_address(0, 6.6.6.6)").raises(Fog::Compute::Clodo::NotFound) do
144
+ # clodo.delete_ip_address(0, "6.6.6.6")
145
+ # end
146
+
147
+ tests("- delete_ip_address(#{@server_id}, 6.6.6.6)").raises(Excon::Errors::BadRequest) do
148
+ clodo.delete_ip_address(@server_id, "6.6.6.6")
149
+ end
150
+
151
+ end
152
+ end
@@ -13,7 +13,7 @@ def compute_providers
13
13
  },
14
14
  :brightbox => {
15
15
  :server_attributes => {
16
- :image_id => 'img-2ab98' # Ubuntu Lucid 10.04 server (i686)
16
+ :image_id => 'img-4gqhs' # Ubuntu Lucid 10.04 server (i686)
17
17
  },
18
18
  :mocked => false
19
19
  },
@@ -18,12 +18,12 @@ Shindo.tests do
18
18
  tests('credential') do
19
19
  returns(:default, "is :default") { Fog.credential }
20
20
 
21
- returns("foo", "can be set directly") do
21
+ returns(:foo, "can be set directly") do
22
22
  Fog.credential = "foo"
23
23
  Fog.credential
24
24
  end
25
25
 
26
- returns("bar", "can be set with environment variable") do
26
+ returns(:bar, "can be set with environment variable") do
27
27
  ENV["FOG_CREDENTIAL"] = "bar"
28
28
  Fog.credential
29
29
  end
@@ -4,10 +4,14 @@ class Glesys
4
4
  module Servers
5
5
 
6
6
  LIST = {
7
- 'arguments' => [],
7
+ 'debug' => {
8
+ 'input' => []
9
+ },
8
10
  'servers' => [{
9
11
  'serverid' => String,
10
- 'hostname' => String
12
+ 'hostname' => String,
13
+ 'datacenter' => String,
14
+ 'platform' => String,
11
15
  }],
12
16
  'status' => {
13
17
  'code' => String,
@@ -16,17 +20,19 @@ class Glesys
16
20
  }
17
21
 
18
22
  CREATE = {
19
- 'arguments' => {
20
- "rootpw" => String,
21
- "disksize" => String,
22
- "memorysize" => String,
23
- "datacenter" => String,
24
- "cpucores" => String,
25
- "transfer" => String,
26
- "template" => String,
27
- "description" => String,
28
- "hostname" => String,
29
- "platform" => String
23
+ 'debug' => {
24
+ 'input' => {
25
+ "rootpw" => String,
26
+ "disksize" => String,
27
+ "memorysize" => String,
28
+ "datacenter" => String,
29
+ "cpucores" => String,
30
+ "transfer" => String,
31
+ "template" => String,
32
+ "description" => String,
33
+ "hostname" => String,
34
+ "platform" => String
35
+ }
30
36
  },
31
37
  'server' => {
32
38
  'serverid' => String,
@@ -44,9 +50,11 @@ class Glesys
44
50
  }
45
51
 
46
52
  DESTROY = {
47
- 'arguments' => {
48
- 'serverid' => String,
49
- 'keepip' => String,
53
+ 'debug' => {
54
+ 'input' => {
55
+ 'serverid' => String,
56
+ 'keepip' => String,
57
+ }
50
58
  },
51
59
  'status' => {
52
60
  'code' => String,
@@ -55,61 +63,68 @@ class Glesys
55
63
  }
56
64
 
57
65
  DETAILS = {
58
- 'arguments' => {
59
- 'serverid' => String
60
- },
66
+ 'debug' => {
67
+ 'input' => {
68
+ 'serverid' => String
69
+ }
70
+ },
61
71
  'server' => {
62
72
  'managedhosting' => String,
63
73
  'cost' => {
64
74
  'amount' => Float,
65
- 'timeperiod' => String,
75
+ 'timeperiod' => String,
66
76
  'currency' => String
67
77
  },
68
- 'datacenter' => String,
78
+ 'serverid' => String,
79
+ 'datacenter' => String,
69
80
  'memory' => String,
70
- 'cpucores' => String,
71
- 'transfer' => String,
72
- 'template' => String,
81
+ 'cpucores' => String,
82
+ 'transfer' => String,
83
+ 'template' => String,
73
84
  'iplist' => [{
74
- 'cost' => String,
75
- 'version' => String,
85
+ 'cost' => String,
86
+ 'version' => String,
76
87
  'ip' => String
77
88
  }],
78
89
  'description' => String,
79
- 'hostname' => String,
80
- 'disk' => String,
90
+ 'hostname' => String,
91
+ 'disk' => String,
81
92
  'platform' => String
82
- },
93
+ },
83
94
  'status' => {
84
- 'code' => String,
95
+ 'code' => String,
85
96
  'text' => String
86
97
  }
87
98
  }
88
99
 
89
100
  STATUS = {
90
- 'arguments' => {
91
- 'serverid' => String
92
- },
101
+ 'debug' => {
102
+ 'input' => {
103
+ 'serverid' => String
104
+ }
105
+ },
93
106
  'server' => {
94
- 'memory' => String,
107
+ 'memory' => String,
95
108
  'bandwidth' => {
96
- 'last30days' => Integer,
109
+ 'last30days' => Integer,
97
110
  'today' => Integer,
98
111
  'max' => String
99
- },
100
- 'cpu' => String,
101
- 'disk' => String,
112
+ },
113
+ 'cpu' => String,
114
+ 'disk' => String,
102
115
  'state' => String
103
- },
104
- 'status' => {
116
+ },
117
+ 'status' => {
105
118
  'code' => String,
106
119
  'text' => String
107
120
  }
108
121
  }
109
-
122
+
110
123
  START = {
111
- 'arguments' => {
112
- 'serverid' => String
124
+ 'debug' => {
125
+ 'input' => {
126
+ 'serverid' => String
127
+ }
113
128
  },
114
129
  'status' => {
115
130
  'code' => String,
@@ -118,9 +133,11 @@ class Glesys
118
133
  }
119
134
 
120
135
  STOP = {
121
- 'arguments' => {
122
- 'serverid' => String,
123
- 'type' => String
136
+ 'debug' => {
137
+ 'input' => {
138
+ 'serverid' => String,
139
+ 'type' => String
140
+ }
124
141
  },
125
142
  'status' => {
126
143
  'code' => String,
@@ -130,9 +147,11 @@ class Glesys
130
147
 
131
148
  end
132
149
  module Ips
133
-
150
+
134
151
  IPLIST = {
135
- 'arguments' => [],
152
+ 'debug' => {
153
+ 'input' => []
154
+ },
136
155
  'iplist' => [{
137
156
  'price' => {
138
157
  'amount' => String,
@@ -144,18 +163,21 @@ class Glesys
144
163
  'platform' => String,
145
164
  'ip' => String,
146
165
  'version' => String,
166
+ 'PTR' => String,
147
167
  }],
148
168
  'status' => {
149
169
  'code' => String,
150
170
  'text' => String
151
171
  }
152
172
  }
153
-
173
+
154
174
  IPLIST_ALL = {
155
- 'arguments' => {
156
- 'datacenter' => String,
157
- 'ipversion' => String,
158
- 'platform' => String
175
+ 'debug' => {
176
+ 'input' => {
177
+ 'datacenter' => String,
178
+ 'ipversion' => String,
179
+ 'platform' => String
180
+ }
159
181
  },
160
182
  'iplist' => [],
161
183
  'status' => {
@@ -170,12 +192,13 @@ class Glesys
170
192
  }
171
193
 
172
194
  IPLIST_CATCH_RELEASE = {
173
- 'arguments' => {
174
- 'ipaddress' => String,
175
- 'ipversion'=> String,
176
- },
195
+ 'debug' => {
196
+ 'input' => {
197
+ 'ipaddress' => String,
198
+ }
199
+ },
177
200
  'status' => {
178
- 'code' => String,
201
+ 'code' => String,
179
202
  'text' => String
180
203
  }
181
204
  }
@@ -184,20 +207,22 @@ class Glesys
184
207
  module Templates
185
208
 
186
209
  LIST = {
187
- 'arguments' => [],
188
- 'templates' => {
210
+ 'debug' => {
211
+ 'input' => []
212
+ },
213
+ 'templates' => {
189
214
  'Xen' => [{
190
215
  'name' => String,
191
- 'os' => String,
192
- 'min_mem_size' => String,
193
- 'min_disk_size' => String,
216
+ 'os' => String,
217
+ 'min_mem_size' => String,
218
+ 'min_disk_size' => String,
194
219
  'platform' => String
195
220
  }],
196
221
  'OpenVZ' => [{
197
222
  'name' => String,
198
- 'os' => String,
199
- 'min_mem_size' => String,
200
- 'min_disk_size' => String,
223
+ 'os' => String,
224
+ 'min_mem_size' => String,
225
+ 'min_disk_size' => String,
201
226
  'platform' => String
202
227
  }]
203
228
  },