fog 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +1 -0
  3. data/Rakefile +2 -1
  4. data/changelog.txt +184 -0
  5. data/docs/cdn/index.markdown +69 -3
  6. data/fog.gemspec +2 -2
  7. data/lib/fog.rb +2 -1
  8. data/lib/fog/atmos/models/storage/file.rb +16 -14
  9. data/lib/fog/aws/auto_scaling.rb +55 -13
  10. data/lib/fog/aws/cdn.rb +69 -9
  11. data/lib/fog/aws/cloud_watch.rb +15 -1
  12. data/lib/fog/aws/compute.rb +2 -0
  13. data/lib/fog/aws/models/auto_scaling/group.rb +10 -4
  14. data/lib/fog/aws/models/cdn/distribution.rb +93 -0
  15. data/lib/fog/aws/models/cdn/distribution_helper.rb +64 -0
  16. data/lib/fog/aws/models/cdn/distributions.rb +32 -0
  17. data/lib/fog/aws/models/cdn/distributions_helper.rb +47 -0
  18. data/lib/fog/aws/models/cdn/invalidation.rb +64 -0
  19. data/lib/fog/aws/models/cdn/invalidations.rb +54 -0
  20. data/lib/fog/aws/models/cdn/streaming_distribution.rb +77 -0
  21. data/lib/fog/aws/models/cdn/streaming_distributions.rb +32 -0
  22. data/lib/fog/aws/models/compute/server.rb +0 -23
  23. data/lib/fog/aws/models/compute/spot_request.rb +2 -24
  24. data/lib/fog/aws/models/rds/server.rb +18 -0
  25. data/lib/fog/aws/models/rds/subnet_group.rb +20 -0
  26. data/lib/fog/aws/models/rds/subnet_groups.rb +27 -0
  27. data/lib/fog/aws/models/storage/file.rb +1 -1
  28. data/lib/fog/aws/parsers/auto_scaling/describe_adjustment_types.rb +15 -2
  29. data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb +39 -13
  30. data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_notification_types.rb +43 -0
  31. data/lib/fog/aws/parsers/auto_scaling/describe_metric_collection_types.rb +3 -3
  32. data/lib/fog/aws/parsers/auto_scaling/describe_notification_configurations.rb +42 -0
  33. data/lib/fog/aws/parsers/auto_scaling/describe_scaling_process_types.rb +15 -2
  34. data/lib/fog/aws/parsers/auto_scaling/describe_tags.rb +46 -0
  35. data/lib/fog/aws/parsers/auto_scaling/describe_termination_policy_types.rb +44 -0
  36. data/lib/fog/aws/parsers/cdn/get_invalidation.rb +32 -0
  37. data/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb +1 -1
  38. data/lib/fog/aws/parsers/cloud_watch/list_metrics.rb +1 -1
  39. data/lib/fog/aws/parsers/compute/describe_availability_zones.rb +13 -2
  40. data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +1 -1
  41. data/lib/fog/aws/parsers/elasticache/base.rb +0 -2
  42. data/lib/fog/aws/parsers/elasticache/engine_defaults_parser.rb +1 -1
  43. data/lib/fog/aws/parsers/elasticache/event_list.rb +2 -0
  44. data/lib/fog/aws/parsers/rds/base.rb +32 -0
  45. data/lib/fog/aws/parsers/rds/create_db_subnet_group.rb +38 -0
  46. data/lib/fog/aws/parsers/rds/describe_db_subnet_groups.rb +38 -0
  47. data/lib/fog/aws/parsers/rds/event_list.rb +40 -0
  48. data/lib/fog/aws/parsers/rds/subnet_group_parser.rb +38 -0
  49. data/lib/fog/aws/parsers/rds/tag_list_parser.rb +35 -0
  50. data/lib/fog/aws/rds.rb +24 -7
  51. data/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb +36 -16
  52. data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +19 -12
  53. data/lib/fog/aws/requests/auto_scaling/create_or_update_tags.rb +63 -0
  54. data/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb +10 -3
  55. data/lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb +21 -5
  56. data/lib/fog/aws/requests/auto_scaling/delete_policy.rb +2 -2
  57. data/lib/fog/aws/requests/auto_scaling/delete_tags.rb +63 -0
  58. data/lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb +4 -3
  59. data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb +17 -13
  60. data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb +1 -1
  61. data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_notification_types.rb +55 -0
  62. data/lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb +6 -5
  63. data/lib/fog/aws/requests/auto_scaling/describe_notification_configurations.rb +79 -0
  64. data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +1 -1
  65. data/lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb +4 -3
  66. data/lib/fog/aws/requests/auto_scaling/describe_tags.rb +74 -0
  67. data/lib/fog/aws/requests/auto_scaling/describe_termination_policy_types.rb +53 -0
  68. data/lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb +1 -1
  69. data/lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb +2 -2
  70. data/lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb +30 -11
  71. data/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb +4 -4
  72. data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +8 -5
  73. data/lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb +2 -2
  74. data/lib/fog/aws/requests/auto_scaling/set_instance_health.rb +2 -2
  75. data/lib/fog/aws/requests/auto_scaling/suspend_processes.rb +1 -1
  76. data/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb +30 -18
  77. data/lib/fog/aws/requests/cdn/delete_distribution.rb +31 -0
  78. data/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb +30 -0
  79. data/lib/fog/aws/requests/cdn/get_distribution.rb +28 -0
  80. data/lib/fog/aws/requests/cdn/get_distribution_list.rb +29 -0
  81. data/lib/fog/aws/requests/cdn/get_invalidation.rb +60 -0
  82. data/lib/fog/aws/requests/cdn/get_invalidation_list.rb +41 -0
  83. data/lib/fog/aws/requests/cdn/get_streaming_distribution.rb +26 -0
  84. data/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb +30 -0
  85. data/lib/fog/aws/requests/cdn/post_distribution.rb +44 -0
  86. data/lib/fog/aws/requests/cdn/post_invalidation.rb +33 -0
  87. data/lib/fog/aws/requests/cdn/post_streaming_distribution.rb +44 -0
  88. data/lib/fog/aws/requests/cdn/put_distribution_config.rb +28 -0
  89. data/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb +28 -0
  90. data/lib/fog/aws/requests/compute/create_image.rb +32 -5
  91. data/lib/fog/aws/requests/compute/create_subnet.rb +3 -3
  92. data/lib/fog/aws/requests/compute/create_volume.rb +2 -2
  93. data/lib/fog/aws/requests/compute/register_image.rb +1 -1
  94. data/lib/fog/aws/requests/elasticache/describe_events.rb +7 -4
  95. data/lib/fog/aws/requests/glacier/create_archive.rb +1 -1
  96. data/lib/fog/aws/requests/glacier/initiate_multipart_upload.rb +1 -1
  97. data/lib/fog/aws/requests/rds/add_tags_to_resource.rb +46 -0
  98. data/lib/fog/aws/requests/rds/create_db_instance.rb +2 -0
  99. data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +58 -0
  100. data/lib/fog/aws/requests/rds/describe_db_subnet_groups.rb +63 -0
  101. data/lib/fog/aws/requests/rds/describe_events.rb +52 -0
  102. data/lib/fog/aws/requests/rds/list_tags_for_resource.rb +44 -0
  103. data/lib/fog/aws/requests/rds/remove_tags_from_resource.rb +44 -0
  104. data/lib/fog/aws/sqs.rb +1 -1
  105. data/lib/fog/aws/storage.rb +1 -1
  106. data/lib/fog/bin/openstack.rb +5 -0
  107. data/lib/fog/bluebox/models/compute/server.rb +0 -19
  108. data/lib/fog/bluebox/requests/compute/create_block.rb +8 -8
  109. data/lib/fog/brightbox/compute.rb +56 -7
  110. data/lib/fog/brightbox/models/compute/accounts.rb +29 -0
  111. data/lib/fog/brightbox/models/compute/api_client.rb +37 -0
  112. data/lib/fog/brightbox/models/compute/api_clients.rb +24 -0
  113. data/lib/fog/brightbox/models/compute/application.rb +27 -0
  114. data/lib/fog/brightbox/models/compute/applications.rb +28 -0
  115. data/lib/fog/brightbox/models/compute/server.rb +3 -1
  116. data/lib/fog/brightbox/models/compute/users.rb +1 -3
  117. data/lib/fog/brightbox/requests/compute/create_application.rb +13 -0
  118. data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +2 -2
  119. data/lib/fog/brightbox/requests/compute/destroy_application.rb +14 -0
  120. data/lib/fog/brightbox/requests/compute/get_account.rb +28 -4
  121. data/lib/fog/brightbox/requests/compute/get_application.rb +14 -0
  122. data/lib/fog/brightbox/requests/compute/get_authenticated_user.rb +19 -0
  123. data/lib/fog/brightbox/requests/compute/get_scoped_account.rb +19 -0
  124. data/lib/fog/brightbox/requests/compute/get_user.rb +28 -5
  125. data/lib/fog/brightbox/requests/compute/list_accounts.rb +13 -0
  126. data/lib/fog/brightbox/requests/compute/list_applications.rb +13 -0
  127. data/lib/fog/brightbox/requests/compute/reset_secret_application.rb +14 -0
  128. data/lib/fog/brightbox/requests/compute/update_account.rb +51 -3
  129. data/lib/fog/brightbox/requests/compute/update_application.rb +15 -0
  130. data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +4 -2
  131. data/lib/fog/brightbox/requests/compute/update_scoped_account.rb +37 -0
  132. data/lib/fog/clodo/models/compute/server.rb +7 -44
  133. data/lib/fog/compute/models/server.rb +23 -2
  134. data/lib/fog/core/time.rb +2 -0
  135. data/lib/fog/core/wait_for.rb +0 -2
  136. data/lib/fog/ecloud/models/compute/servers.rb +3 -1
  137. data/lib/fog/ecloud/requests/compute/get_servers.rb +1 -1
  138. data/lib/fog/ecloud/requests/compute/get_tasks.rb +1 -1
  139. data/lib/fog/go_grid/models/compute/server.rb +0 -4
  140. data/lib/fog/google/storage.rb +1 -1
  141. data/lib/fog/hp/models/compute/server.rb +1 -23
  142. data/lib/fog/hp/storage.rb +0 -1
  143. data/lib/fog/joyent/models/compute/server.rb +4 -0
  144. data/lib/fog/joyent/models/compute/servers.rb +4 -3
  145. data/lib/fog/libvirt/models/compute/server.rb +1 -27
  146. data/lib/fog/linode/models/compute/server.rb +0 -1
  147. data/lib/fog/local/models/storage/directory.rb +1 -1
  148. data/lib/fog/network.rb +26 -0
  149. data/lib/fog/ninefold/compute.rb +8 -0
  150. data/lib/fog/ninefold/requests/compute/assign_to_load_balancer_rule.rb +13 -0
  151. data/lib/fog/ninefold/requests/compute/create_load_balancer_rule.rb +11 -0
  152. data/lib/fog/ninefold/requests/compute/delete_load_balancer_rule.rb +11 -0
  153. data/lib/fog/ninefold/requests/compute/list_load_balancer_rule_instances.rb +15 -0
  154. data/lib/fog/ninefold/requests/compute/list_load_balancer_rules.rb +14 -0
  155. data/lib/fog/ninefold/requests/compute/remove_from_load_balancer_rule.rb +12 -0
  156. data/lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb +15 -0
  157. data/lib/fog/ninefold/storage.rb +14 -112
  158. data/lib/fog/openstack.rb +4 -1
  159. data/lib/fog/openstack/compute.rb +20 -1
  160. data/lib/fog/openstack/identity.rb +67 -18
  161. data/lib/fog/openstack/image.rb +12 -4
  162. data/lib/fog/openstack/models/compute/security_group.rb +1 -1
  163. data/lib/fog/openstack/models/compute/server.rb +5 -23
  164. data/lib/fog/openstack/models/identity/tenants.rb +5 -3
  165. data/lib/fog/openstack/models/identity/users.rb +4 -1
  166. data/lib/fog/openstack/models/image/image.rb +6 -1
  167. data/lib/fog/openstack/models/network/network.rb +46 -0
  168. data/lib/fog/openstack/models/network/networks.rb +34 -0
  169. data/lib/fog/openstack/models/network/port.rb +52 -0
  170. data/lib/fog/openstack/models/network/ports.rb +34 -0
  171. data/lib/fog/openstack/models/network/subnet.rb +55 -0
  172. data/lib/fog/openstack/models/network/subnets.rb +34 -0
  173. data/lib/fog/openstack/network.rb +234 -0
  174. data/lib/fog/openstack/requests/compute/attach_volume.rb +10 -0
  175. data/lib/fog/openstack/requests/compute/create_security_group.rb +15 -11
  176. data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +17 -15
  177. data/lib/fog/openstack/requests/compute/create_server.rb +7 -1
  178. data/lib/fog/openstack/requests/compute/create_volume.rb +10 -10
  179. data/lib/fog/openstack/requests/compute/create_volume_snapshot.rb +16 -1
  180. data/lib/fog/openstack/requests/compute/detach_volume.rb +5 -0
  181. data/lib/fog/openstack/requests/compute/get_snapshot_details.rb +4 -4
  182. data/lib/fog/openstack/requests/compute/get_volume_details.rb +9 -9
  183. data/lib/fog/openstack/requests/compute/list_security_groups.rb +3 -3
  184. data/lib/fog/openstack/requests/compute/list_volumes.rb +14 -14
  185. data/lib/fog/openstack/requests/identity/create_tenant.rb +3 -3
  186. data/lib/fog/openstack/requests/identity/create_user.rb +1 -1
  187. data/lib/fog/openstack/requests/identity/delete_role.rb +1 -1
  188. data/lib/fog/openstack/requests/identity/get_tenant.rb +1 -1
  189. data/lib/fog/openstack/requests/identity/list_roles.rb +7 -0
  190. data/lib/fog/openstack/requests/image/create_image.rb +36 -38
  191. data/lib/fog/openstack/requests/image/delete_image.rb +0 -2
  192. data/lib/fog/openstack/requests/image/list_public_images.rb +7 -25
  193. data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +2 -41
  194. data/lib/fog/openstack/requests/image/update_image.rb +26 -21
  195. data/lib/fog/openstack/requests/image/update_image_members.rb +37 -0
  196. data/lib/fog/openstack/requests/network/create_network.rb +44 -0
  197. data/lib/fog/openstack/requests/network/create_port.rb +52 -0
  198. data/lib/fog/openstack/requests/network/create_subnet.rb +56 -0
  199. data/lib/fog/openstack/requests/network/delete_network.rb +30 -0
  200. data/lib/fog/openstack/requests/network/delete_port.rb +30 -0
  201. data/lib/fog/openstack/requests/network/delete_subnet.rb +30 -0
  202. data/lib/fog/openstack/requests/network/get_network.rb +42 -0
  203. data/lib/fog/openstack/requests/network/get_port.rb +48 -0
  204. data/lib/fog/openstack/requests/network/get_subnet.rb +49 -0
  205. data/lib/fog/openstack/requests/network/list_networks.rb +27 -0
  206. data/lib/fog/openstack/requests/network/list_ports.rb +27 -0
  207. data/lib/fog/openstack/requests/network/list_subnets.rb +27 -0
  208. data/lib/fog/openstack/requests/network/set_tenant.rb +21 -0
  209. data/lib/fog/openstack/requests/network/update_network.rb +41 -0
  210. data/lib/fog/openstack/requests/network/update_port.rb +44 -0
  211. data/lib/fog/openstack/requests/network/update_subnet.rb +44 -0
  212. data/lib/fog/openstack/requests/volume/create_volume.rb +10 -10
  213. data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +16 -1
  214. data/lib/fog/openstack/requests/volume/get_snapshot_details.rb +6 -6
  215. data/lib/fog/openstack/requests/volume/get_volume_details.rb +10 -10
  216. data/lib/fog/openstack/requests/volume/list_volumes.rb +14 -14
  217. data/lib/fog/openstack/volume.rb +10 -0
  218. data/lib/fog/rackspace/models/compute/server.rb +1 -24
  219. data/lib/fog/rackspace/models/compute_v2/server.rb +4 -2
  220. data/lib/fog/rackspace/requests/compute_v2/create_server.rb +1 -1
  221. data/lib/fog/rackspace/requests/compute_v2/list_servers.rb +1 -1
  222. data/lib/fog/storm_on_demand/models/compute/server.rb +1 -5
  223. data/lib/fog/virtual_box/models/compute/server.rb +2 -44
  224. data/lib/fog/vmfusion/models/compute/server.rb +3 -36
  225. data/lib/fog/vsphere/models/compute/server.rb +1 -1
  226. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +2 -31
  227. data/lib/fog/vsphere/requests/compute/vm_clone.rb +35 -7
  228. data/tests/aws/models/cdn/distribution_tests.rb +15 -0
  229. data/tests/aws/models/cdn/distributions_tests.rb +15 -0
  230. data/tests/aws/models/cdn/invalidation_tests.rb +32 -0
  231. data/tests/aws/models/cdn/invalidations_tests.rb +15 -0
  232. data/tests/aws/models/cdn/streaming_distribution_tests.rb +15 -0
  233. data/tests/aws/models/cdn/streaming_distributions_tests.rb +15 -0
  234. data/tests/aws/models/rds/tagging_tests.rb +20 -0
  235. data/tests/aws/requests/auto_scaling/auto_scaling_tests.rb +1 -11
  236. data/tests/aws/requests/auto_scaling/describe_types_tests.rb +102 -0
  237. data/tests/aws/requests/auto_scaling/helper.rb +47 -3
  238. data/tests/aws/requests/auto_scaling/notification_configuration_tests.rb +123 -0
  239. data/tests/aws/requests/auto_scaling/tag_tests.rb +62 -0
  240. data/tests/aws/requests/cdn/cdn_tests.rb +252 -0
  241. data/tests/aws/requests/compute/image_tests.rb +32 -1
  242. data/tests/aws/requests/compute/volume_tests.rb +3 -3
  243. data/tests/aws/requests/rds/describe_events.rb +16 -0
  244. data/tests/aws/requests/rds/helper.rb +26 -0
  245. data/tests/aws/requests/rds/subnet_groups_test.rb +48 -0
  246. data/tests/aws/requests/rds/tagging_tests.rb +78 -0
  247. data/tests/brightbox/requests/compute/account_tests.rb +24 -4
  248. data/tests/brightbox/requests/compute/application_test.rb +63 -0
  249. data/tests/brightbox/requests/compute/helper.rb +49 -1
  250. data/tests/helper.rb +4 -1
  251. data/tests/local/models/directory_tests.rb +16 -0
  252. data/tests/ninefold/requests/compute/helper.rb +53 -0
  253. data/tests/ninefold/requests/compute/load_balancer_tests.rb +66 -0
  254. data/tests/openstack/models/image/image_tests.rb +1 -0
  255. data/tests/openstack/models/network/network_tests.rb +24 -0
  256. data/tests/openstack/models/network/networks_tests.rb +21 -0
  257. data/tests/openstack/models/network/port_tests.rb +28 -0
  258. data/tests/openstack/models/network/ports_tests.rb +25 -0
  259. data/tests/openstack/models/network/subnet_tests.rb +30 -0
  260. data/tests/openstack/models/network/subnets_tests.rb +27 -0
  261. data/tests/openstack/requests/compute/image_tests.rb +3 -4
  262. data/tests/openstack/requests/compute/quota_tests.rb +2 -0
  263. data/tests/openstack/requests/compute/security_group_tests.rb +10 -10
  264. data/tests/openstack/requests/compute/server_tests.rb +3 -1
  265. data/tests/openstack/requests/compute/volume_tests.rb +11 -12
  266. data/tests/openstack/requests/identity/tenant_tests.rb +2 -1
  267. data/tests/openstack/requests/image/image_tests.rb +66 -45
  268. data/tests/openstack/requests/network/network_tests.rb +56 -0
  269. data/tests/openstack/requests/network/port_tests.rb +63 -0
  270. data/tests/openstack/requests/network/subnet_tests.rb +66 -0
  271. data/tests/rackspace/models/identity/user_tests.rb +1 -1
  272. data/tests/rackspace/models/identity/users_tests.rb +1 -1
  273. metadata +137 -13
  274. data/lib/fog/ninefold/models/storage/directories.rb +0 -48
  275. data/lib/fog/ninefold/models/storage/directory.rb +0 -53
  276. data/lib/fog/ninefold/models/storage/file.rb +0 -108
  277. data/lib/fog/ninefold/models/storage/files.rb +0 -73
  278. data/lib/fog/ninefold/requests/storage/delete_namespace.rb +0 -19
  279. data/lib/fog/ninefold/requests/storage/get_namespace.rb +0 -20
  280. data/lib/fog/ninefold/requests/storage/head_namespace.rb +0 -20
  281. data/lib/fog/ninefold/requests/storage/post_namespace.rb +0 -20
  282. data/lib/fog/ninefold/requests/storage/put_namespace.rb +0 -20
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Compute
3
+ class Brightbox
4
+ class Real
5
+
6
+ def get_application(identifier)
7
+ return nil if identifier.nil? || identifier == ""
8
+ request("get", "/1.0/applications/#{identifier}", [200])
9
+ end
10
+
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,19 @@
1
+ module Fog
2
+ module Compute
3
+ class Brightbox
4
+ class Real
5
+ # Requests details about authenticated user from the API
6
+ #
7
+ # === Returns:
8
+ #
9
+ # <tt>Hash</tt>:: The JSON response parsed to a Hash
10
+ #
11
+ def get_authenticated_user
12
+ request("get", "/1.0/user", [200])
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
19
+
@@ -0,0 +1,19 @@
1
+ module Fog
2
+ module Compute
3
+ class Brightbox
4
+ class Real
5
+
6
+ # Requests details about currently scoped account
7
+ #
8
+ # === Returns:
9
+ #
10
+ # <tt>Hash</tt>:: The JSON response parsed to a Hash
11
+ #
12
+ def get_scoped_account
13
+ request("get", "/1.0/account", [200])
14
+ end
15
+
16
+ end
17
+ end
18
+ end
19
+ end
@@ -2,13 +2,36 @@ module Fog
2
2
  module Compute
3
3
  class Brightbox
4
4
  class Real
5
-
6
- def get_user(identifier)
7
- return nil if identifier.nil? || identifier == ""
8
- request("get", "/1.0/users/#{identifier}", [200])
5
+ # Requests details about a user from the API
6
+ #
7
+ # === Parameters:
8
+ #
9
+ # <tt>identifier <String></tt>:: The identifier to request (Default is +nil+)
10
+ #
11
+ # === Returns:
12
+ #
13
+ # <tt>Hash</tt>:: The JSON response parsed to a Hash
14
+ #
15
+ # === Notes:
16
+ #
17
+ # This also supports a deprecated form where if an identifier is not
18
+ # passed then the requesting user is returned instead. This should not
19
+ # be used in new code. Use #get_authenticated_user instead.
20
+ #
21
+ # === Reference:
22
+ #
23
+ # https://api.gb1.brightbox.com/1.0/#user_get_user
24
+ #
25
+ def get_user(identifier = nil)
26
+ if identifier.nil? || identifier == ""
27
+ Fog::Logger.deprecation("get_user() without a parameter is deprecated, use get_authenticated_user instead [light_black](#{caller.first})[/]")
28
+ get_authenticated_user
29
+ else
30
+ request("get", "/1.0/users/#{identifier}", [200])
31
+ end
9
32
  end
10
33
 
11
34
  end
12
35
  end
13
36
  end
14
- end
37
+ end
@@ -0,0 +1,13 @@
1
+ module Fog
2
+ module Compute
3
+ class Brightbox
4
+ class Real
5
+
6
+ def list_accounts
7
+ request("get", "/1.0/accounts", [200])
8
+ end
9
+
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module Fog
2
+ module Compute
3
+ class Brightbox
4
+ class Real
5
+
6
+ def list_applications
7
+ request("get", "/1.0/applications", [200])
8
+ end
9
+
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Compute
3
+ class Brightbox
4
+ class Real
5
+
6
+ def reset_secret_application(identifier)
7
+ return nil if identifier.nil? || identifier == ""
8
+ request("post", "/1.0/applications/#{identifier}/reset_secret", [200])
9
+ end
10
+
11
+ end
12
+ end
13
+ end
14
+ end
@@ -3,12 +3,60 @@ module Fog
3
3
  class Brightbox
4
4
  class Real
5
5
 
6
- def update_account(options)
6
+ # Requests an update to the currently scoped account
7
+ #
8
+ # === Parameters:
9
+ #
10
+ # <tt>identifier <String></tt>:: The identifier to request (Default is +nil+)
11
+ # <tt>options <Hash></tt>:: Hash of options for update
12
+ #
13
+ # === Options:
14
+ #
15
+ # <tt>name</tt>:: Account name
16
+ # <tt>address_1</tt>:: First line of address
17
+ # <tt>address_2</tt>:: Second line of address
18
+ # <tt>city</tt>:: City part of address
19
+ # <tt>county</tt>:: County part of address
20
+ # <tt>postcode</tt>:: Postal code
21
+ # <tt>country_code</tt>:: ISO 3166-1 two letter code (example: +GB+)
22
+ # <tt>vat_registration_number</tt>:: Valid EU VAT Number or +nil+
23
+ # <tt>telephone_number</tt>:: Valid International telephone number in E.164 format prefixed with ’+’
24
+ #
25
+ # === Returns:
26
+ #
27
+ # <tt>Hash</tt>:: The JSON response parsed to a Hash
28
+ # <tt>nil</tt>:: If no options were passed to update
29
+ #
30
+ # === Notes:
31
+ #
32
+ # This also supports a deprecated form where if an identifier is not
33
+ # passed then the scoping account is updated instead. This should not
34
+ # be used in new code. Use #update_scoped_account instead.
35
+ #
36
+ # === Reference:
37
+ #
38
+ # https://api.gb1.brightbox.com/1.0/#account_update_account
39
+ #
40
+ def update_account(*args)
41
+ if args.size == 2
42
+ identifier = args[0]
43
+ options = args[1]
44
+ elsif args.size == 1
45
+ options = args[0]
46
+ else
47
+ raise ArgumentError, "wrong number of arguments (0 for 2)"
48
+ end
49
+
7
50
  return nil if options.empty? || options.nil?
8
- request("put", "/1.0/account", [200], options)
51
+ if identifier.nil? || identifier.empty?
52
+ Fog::Logger.deprecation("update_account() without a parameter is deprecated, use update_scoped_account instead [light_black](#{caller.first})[/]")
53
+ update_scoped_account(options)
54
+ else
55
+ request("put", "/1.0/accounts/#{identifier}", [200], options)
56
+ end
9
57
  end
10
58
 
11
59
  end
12
60
  end
13
61
  end
14
- end
62
+ end
@@ -0,0 +1,15 @@
1
+ module Fog
2
+ module Compute
3
+ class Brightbox
4
+ class Real
5
+
6
+ def update_application(identifier, options)
7
+ return nil if identifier.nil? || identifier == ""
8
+ return nil if options.empty? || options.nil?
9
+ request("put", "/1.0/applications/#{identifier}", [200], options)
10
+ end
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -3,8 +3,10 @@ module Fog
3
3
  class Brightbox
4
4
  class Real
5
5
 
6
- def update_firewall_rule(id, options)
7
- request("put", "/1.0/firewall_rules/#{id}", [202], options)
6
+ def update_firewall_rule(identifier, options)
7
+ return nil if identifier.nil? || identifier == ""
8
+ return nil if options.empty? || options.nil?
9
+ request("put", "/1.0/firewall_rules/#{identifier}", [202], options)
8
10
  end
9
11
 
10
12
  end
@@ -0,0 +1,37 @@
1
+ module Fog
2
+ module Compute
3
+ class Brightbox
4
+ class Real
5
+
6
+ # Requests an update to the currently scoped account
7
+ #
8
+ # === Parameters:
9
+ #
10
+ # <tt>options</tt>:: Hash of options for update
11
+ #
12
+ # === Options:
13
+ #
14
+ # <tt>name</tt>:: Account name
15
+ # <tt>address_1</tt>:: First line of address
16
+ # <tt>address_2</tt>:: Second line of address
17
+ # <tt>city</tt>:: City part of address
18
+ # <tt>county</tt>:: County part of address
19
+ # <tt>postcode</tt>:: Postal code
20
+ # <tt>country_code</tt>:: ISO 3166-1 two letter code (example: +GB+)
21
+ # <tt>vat_registration_number</tt>:: Valid EU VAT Number or +nil+
22
+ # <tt>telephone_number</tt>:: Valid International telephone number in E.164 format prefixed with ’+’
23
+ #
24
+ # === Returns:
25
+ #
26
+ # <tt>Hash</tt>:: The JSON response parsed to a Hash
27
+ # <tt>nil</tt>:: If no options were passed to update
28
+ #
29
+ def update_scoped_account(options)
30
+ return nil if options.empty? || options.nil?
31
+ request("put", "/1.0/account", [200], options)
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,19 +1,19 @@
1
- require 'fog/core/model'
1
+ require 'fog/compute/models/server'
2
2
 
3
3
  module Fog
4
4
  module Compute
5
5
  class Clodo
6
6
 
7
- class Server < Fog::Model
7
+ class Server < Fog::Compute::Server
8
8
 
9
9
  identity :id
10
10
 
11
11
  attribute :addresses
12
12
  attribute :name
13
13
  attribute :image_id, :aliases => 'imageId'
14
- attribute :type
14
+ attribute :type
15
15
  attribute :state, :aliases => 'status'
16
- attribute :type
16
+ attribute :type
17
17
  attribute :vps_memory
18
18
  attribute :vps_memory_max
19
19
  attribute :vps_os_title
@@ -40,8 +40,6 @@ module Fog
40
40
  attribute :vps_user_pass
41
41
  attribute :vps_vnc_pass
42
42
 
43
- attr_writer :private_key, :private_key_path, :public_key, :public_key_path, :username
44
-
45
43
  def initialize(attributes={})
46
44
  self.image_id ||= attributes[:vps_os] ? attributes[:vps_os] : 666
47
45
  super attributes
@@ -62,15 +60,6 @@ module Fog
62
60
  nil
63
61
  end
64
62
 
65
- def private_key_path
66
- @private_key_path ||= Fog.credentials[:private_key_path]
67
- @private_key_path &&= File.expand_path(@private_key_path)
68
- end
69
-
70
- def private_key
71
- @private_key ||= private_key_path && File.read(private_key_path)
72
- end
73
-
74
63
  def public_ip_address
75
64
  pubaddrs = addresses && addresses['public'] ? addresses['public'].select {|ip| ip['primary_ip']} : nil
76
65
  pubaddrs && !pubaddrs.empty? ? pubaddrs.first['ip'] : nil
@@ -88,15 +77,6 @@ module Fog
88
77
  connection.delete_ip_address(id, ip_address)
89
78
  end
90
79
 
91
- def public_key_path
92
- @public_key_path ||= Fog.credentials[:public_key_path]
93
- @public_key_path &&= File.expand_path(@public_key_path)
94
- end
95
-
96
- def public_key
97
- @public_key ||= public_key_path && File.read(public_key_path)
98
- end
99
-
100
80
  def ready?
101
81
  self.state == 'is_running'
102
82
  end
@@ -129,28 +109,11 @@ module Fog
129
109
  end
130
110
 
131
111
  def ssh(commands)
132
- requires :public_ip_address, :identity, :username
133
-
134
- options = {}
135
- options[:key_data] = [private_key] if private_key
136
- options[:password] = password if password
137
- Fog::SSH.new(public_ip_address, username, options).run(commands)
138
- end
139
-
140
- def scp(local_path, remote_path, upload_options = {})
141
- requires :public_ip_address, :username
142
-
143
- scp_options = {}
144
- scp_options[:key_data] = [private_key] if private_key
145
- Fog::SCP.new(public_ip_address, username, scp_options).upload(local_path, remote_path, upload_options)
146
- end
147
-
148
- def username
149
- @username ||= 'root'
112
+ super(commands, password ? {:password => password} : {})
150
113
  end
151
114
 
152
- def password
153
- vps_root_pass
115
+ def password
116
+ vps_root_pass
154
117
  end
155
118
 
156
119
  private
@@ -4,10 +4,31 @@ module Fog
4
4
  module Compute
5
5
  class Server < Fog::Model
6
6
 
7
- def private_key=(key_data)
8
- @private_key = key_data
7
+ attr_writer :username, :private_key, :private_key_path, :public_key, :public_key_path
8
+
9
+ def username
10
+ @username ||= 'root'
11
+ end
12
+
13
+ def private_key_path
14
+ @private_key_path ||= Fog.credentials[:private_key_path]
15
+ @private_key_path &&= File.expand_path(@private_key_path)
16
+ end
17
+
18
+ def private_key
19
+ @private_key ||= private_key_path && File.read(private_key_path)
9
20
  end
10
21
 
22
+ def public_key_path
23
+ @public_key_path ||= Fog.credentials[:public_key_path]
24
+ @public_key_path &&= File.expand_path(@public_key_path)
25
+ end
26
+
27
+ def public_key
28
+ @public_key ||= public_key_path && File.read(public_key_path)
29
+ end
30
+
31
+
11
32
  def scp(local_path, remote_path, upload_options = {})
12
33
  require 'net/scp'
13
34
  requires :public_ip_address, :username
@@ -1,3 +1,5 @@
1
+ require 'time'
2
+
1
3
  module Fog
2
4
  class Time < ::Time
3
5
 
@@ -1,5 +1,4 @@
1
1
  module Fog
2
-
3
2
  def self.wait_for(timeout=Fog.timeout, interval=1, &block)
4
3
  duration = 0
5
4
  start = Time.now
@@ -13,5 +12,4 @@ module Fog
13
12
  { :duration => duration }
14
13
  end
15
14
  end
16
-
17
15
  end
@@ -13,8 +13,10 @@ module Fog
13
13
  data = connection.get_servers(href).body
14
14
  if data.keys.include?(:VirtualMachines)
15
15
  data = data[:VirtualMachines][:VirtualMachine]
16
- else
16
+ elsif data[:VirtualMachine]
17
17
  data = data[:VirtualMachine]
18
+ else
19
+ data = []
18
20
  end
19
21
  load(data)
20
22
  end
@@ -3,7 +3,7 @@ module Fog
3
3
  class Ecloud
4
4
 
5
5
  class Real
6
- basic_request :get_tasks
6
+ basic_request :get_servers
7
7
  end
8
8
 
9
9
  end