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
@@ -3,7 +3,7 @@ module Fog
3
3
  class Ecloud
4
4
 
5
5
  class Real
6
- basic_request :get_servers
6
+ basic_request :get_tasks
7
7
  end
8
8
 
9
9
  end
@@ -84,10 +84,6 @@ module Fog
84
84
  retry
85
85
  end
86
86
 
87
- def username
88
- @username ||= 'root'
89
- end
90
-
91
87
  private
92
88
 
93
89
  def adminPass=(new_admin_pass)
@@ -243,7 +243,7 @@ DATA
243
243
  canonical_resource << "#{params[:path]}"
244
244
  canonical_resource << '?'
245
245
  for key in (params[:query] || {}).keys
246
- if ['acl', 'location', 'logging', 'requestPayment', 'torrent', 'versions', 'versioning'].include?(key)
246
+ if ['acl', 'cors', 'location', 'logging', 'requestPayment', 'torrent', 'versions', 'versioning'].include?(key)
247
247
  canonical_resource << "#{key}&"
248
248
  end
249
249
  end
@@ -31,7 +31,7 @@ module Fog
31
31
  attribute :public_ip_address
32
32
 
33
33
  attr_reader :password
34
- attr_writer :private_key, :private_key_path, :public_key, :public_key_path, :username, :image_id, :flavor_id
34
+ attr_writer :image_id, :flavor_id
35
35
 
36
36
  def initialize(attributes = {})
37
37
  # assign these attributes first to prevent race condition with new_record?
@@ -67,15 +67,6 @@ module Fog
67
67
  addr["addr"] if addr
68
68
  end
69
69
 
70
- def private_key_path
71
- @private_key_path ||= Fog.credentials[:private_key_path]
72
- @private_key_path &&= File.expand_path(@private_key_path)
73
- end
74
-
75
- def private_key
76
- @private_key ||= private_key_path && File.read(private_key_path)
77
- end
78
-
79
70
  def public_ip_address
80
71
  # FIX: Both the private and public ips are bundled under "private" network name
81
72
  # So hack to get to the public ip address
@@ -92,15 +83,6 @@ module Fog
92
83
  end
93
84
  end
94
85
 
95
- def public_key_path
96
- @public_key_path ||= Fog.credentials[:public_key_path]
97
- @public_key_path &&= File.expand_path(@public_key_path)
98
- end
99
-
100
- def public_key
101
- @public_key ||= public_key_path && File.read(public_key_path)
102
- end
103
-
104
86
  def image_id
105
87
  @image_id ||= (image.nil? ? nil : image["id"])
106
88
  end
@@ -211,10 +193,6 @@ module Fog
211
193
  retry
212
194
  end
213
195
 
214
- def username
215
- @username ||= 'root'
216
- end
217
-
218
196
  private
219
197
 
220
198
  def adminPass=(new_admin_pass)
@@ -108,7 +108,6 @@ module Fog
108
108
 
109
109
  def initialize(options={})
110
110
  require 'mime/types'
111
- puts "Called with #{options}"
112
111
  @hp_secret_key = options[:hp_secret_key]
113
112
  @hp_account_id = options[:hp_account_id]
114
113
  end
@@ -18,6 +18,10 @@ module Fog
18
18
  attribute :created, :type => :time
19
19
  attribute :updated, :type => :time
20
20
 
21
+ def public_ip_address
22
+ ips.empty? ? nil : ips.first
23
+ end
24
+
21
25
  def ready?
22
26
  self.state == 'running'
23
27
  end
@@ -15,12 +15,13 @@ module Fog
15
15
  def create(params = {})
16
16
  data = self.connection.create_machine(params).body
17
17
  server = new(data)
18
- server.wait_for { ready? }
19
18
  server
20
19
  end
21
20
 
22
- def bootstrap
23
- # XXX TOXO
21
+ def bootstrap(new_attributes = {})
22
+ server = create(new_attributes)
23
+ server.wait_for { ready? }
24
+ server
24
25
  end
25
26
 
26
27
  def get(machine_id)
@@ -38,7 +38,6 @@ module Fog
38
38
  attr_accessor :network_interface_type ,:network_nat_network, :network_bridge_name
39
39
  attr_accessor :volume_format_type, :volume_allocation,:volume_capacity, :volume_name, :volume_pool_name, :volume_template_name, :volume_path
40
40
  attr_accessor :password
41
- attr_writer :private_key, :private_key_path, :public_key, :public_key_path, :username
42
41
 
43
42
  # Can be created by passing in :xml => "<xml to create domain/server>"
44
43
  # or by providing :template_options => {
@@ -67,10 +66,6 @@ module Fog
67
66
  raise Fog::Errors::Error.new("Error saving the server: #{e}")
68
67
  end
69
68
 
70
- def username
71
- @username ||= 'root'
72
- end
73
-
74
69
  def start
75
70
  return true if active?
76
71
  connection.vm_action(uuid, :create)
@@ -139,35 +134,14 @@ module Fog
139
134
  ip_address(:public)
140
135
  end
141
136
 
142
- def private_key_path
143
- @private_key_path ||= Fog.credentials[:private_key_path]
144
- @private_key_path &&= File.expand_path(@private_key_path)
145
- end
146
-
147
- def private_key
148
- @private_key ||= private_key_path && File.read(private_key_path)
149
- end
150
-
151
- def public_key_path
152
- @public_key_path ||= Fog.credentials[:public_key_path]
153
- @public_key_path &&= File.expand_path(@public_key_path)
154
- end
155
-
156
- def public_key
157
- @public_key ||= public_key_path && File.read(public_key_path)
158
- end
159
-
160
137
  def ssh(commands)
161
138
  requires :public_ip_address, :username
162
139
 
163
- #requires :password, :private_key
164
140
  ssh_options={}
165
141
  ssh_options[:password] = password unless password.nil?
166
- ssh_options[:key_data] = [private_key] if private_key
167
142
  ssh_options[:proxy]= ssh_proxy unless ssh_proxy.nil?
168
143
 
169
- Fog::SSH.new(public_ip_address, @username, ssh_options).run(commands)
170
-
144
+ super(commands, ssh_options)
171
145
  end
172
146
 
173
147
  def ssh_proxy
@@ -5,7 +5,6 @@ module Fog
5
5
  class Linode
6
6
  class Server < Fog::Compute::Server
7
7
  attr_reader :stack_script
8
- attr_accessor :private_key, :username
9
8
  identity :id
10
9
  attribute :name
11
10
  attribute :status
@@ -40,7 +40,7 @@ module Fog
40
40
  def save
41
41
  requires :key
42
42
 
43
- Dir.mkdir(path)
43
+ FileUtils.mkpath(path)
44
44
  true
45
45
  end
46
46
 
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module Network
3
+
4
+ def self.[](provider)
5
+ self.new(:provider => provider)
6
+ end
7
+
8
+ def self.new(attributes)
9
+ attributes = attributes.dup # Prevent delete from having side effects
10
+ provider = attributes.delete(:provider).to_s.downcase.to_sym
11
+
12
+ case provider
13
+ when :openstack
14
+ require 'fog/openstack/network'
15
+ Fog::Network::OpenStack.new(attributes)
16
+ else
17
+ raise ArgumentError.new("#{provider} has no network service")
18
+ end
19
+ end
20
+
21
+ def self.providers
22
+ Fog.services[:network]
23
+ end
24
+
25
+ end
26
+ end
@@ -60,6 +60,14 @@ module Fog
60
60
  request :create_ip_forwarding_rule
61
61
  request :delete_ip_forwarding_rule
62
62
  request :list_ip_forwarding_rules
63
+ # Load Balancers
64
+ request :create_load_balancer_rule
65
+ request :delete_load_balancer_rule
66
+ request :remove_from_load_balancer_rule
67
+ request :assign_to_load_balancer_rule
68
+ request :list_load_balancer_rules
69
+ request :list_load_balancer_rule_instances
70
+ request :update_load_balancer_rule
63
71
 
64
72
  class Mock
65
73
 
@@ -0,0 +1,13 @@
1
+ module Fog
2
+ module Compute
3
+ class Ninefold
4
+ class Real
5
+ def assign_to_load_balancer_rule(options={})
6
+ request 'assignToLoadBalancerRule', options, :expects => [200], :response_prefix => 'assigntoloadbalancerruleresponse', :response_type => Hash
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+
13
+
@@ -0,0 +1,11 @@
1
+ module Fog
2
+ module Compute
3
+ class Ninefold
4
+ class Real
5
+ def create_load_balancer_rule(options={})
6
+ request 'createLoadBalancerRule', options, :expects => [200], :response_prefix => 'createloadbalancerruleresponse', :response_type => Hash
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Fog
2
+ module Compute
3
+ class Ninefold
4
+ class Real
5
+ def delete_load_balancer_rule(options={})
6
+ request 'deleteLoadBalancerRule', options, :expects => [200], :response_prefix => 'deleteloadbalancerruleresponse', :response_type => Hash
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module Fog
2
+ module Compute
3
+ class Ninefold
4
+ class Real
5
+ def list_load_balancer_rule_instances(options={})
6
+ request 'listLoadBalancerRuleInstances', options, :expects => [200], :response_prefix => 'listloadbalancerruleinstancesresponse', :response_type => Hash
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+
13
+
14
+
15
+
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Compute
3
+ class Ninefold
4
+ class Real
5
+ def list_load_balancer_rules(options={})
6
+ request 'listLoadBalancerRules', options, :expects => [200], :response_prefix => 'listloadbalancerrulesresponse', :response_type => Hash
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+
13
+
14
+
@@ -0,0 +1,12 @@
1
+ module Fog
2
+ module Compute
3
+ class Ninefold
4
+ class Real
5
+ def remove_from_load_balancer_rule(options={})
6
+ request 'removeFromLoadBalancerRule', options, :expects => [200], :response_prefix => 'removefromloadbalancerruleresponse', :response_type => Hash
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+
@@ -0,0 +1,15 @@
1
+ module Fog
2
+ module Compute
3
+ class Ninefold
4
+ class Real
5
+ def update_load_balancer_rule(options={})
6
+ request 'updateLoadBalancerRule', options, :expects => [200], :response_prefix => 'updateloadbalancerruleresponse', :response_type => Hash
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+
13
+
14
+
15
+
@@ -1,34 +1,28 @@
1
1
  require 'fog/ninefold'
2
2
  require 'fog/storage'
3
+ require 'fog/atmos'
3
4
 
4
5
  module Fog
5
6
  module Storage
6
- class Ninefold < Fog::Service
7
+ class Ninefold < Fog::Storage::Atmos
7
8
  STORAGE_HOST = "onlinestorage.ninefold.com" #"api.ninefold.com"
8
9
  STORAGE_PATH = "" #"/storage/v1.0"
9
10
  STORAGE_PORT = "80" # "443"
10
11
  STORAGE_SCHEME = "http" # "https"
11
12
 
12
13
  requires :ninefold_storage_token, :ninefold_storage_secret
14
+ recognizes :persistent
13
15
 
14
- model_path 'fog/ninefold/models/storage'
16
+ model_path 'fog/atmos/models/storage'
15
17
  model :directory
16
18
  collection :directories
17
19
  model :file
18
20
  collection :files
19
21
 
20
- request_path 'fog/ninefold/requests/storage'
21
- # request :delete_container
22
- request :get_namespace
23
- request :head_namespace
24
- request :post_namespace
25
- request :put_namespace
26
- request :delete_namespace
27
-
28
22
  module Utils
29
23
  end
30
24
 
31
- class Mock
25
+ class Mock < Fog::Storage::Atmos::Mock
32
26
  include Utils
33
27
 
34
28
  def initialize(options={})
@@ -43,111 +37,19 @@ module Fog
43
37
 
44
38
  end
45
39
 
46
- class Real
40
+ class Real < Fog::Storage::Atmos::Real
47
41
  include Utils
48
42
 
49
43
  def initialize(options={})
50
- require 'mime/types'
51
- @ninefold_storage_token = options[:ninefold_storage_token]
52
- @ninefold_storage_secret = options[:ninefold_storage_secret]
53
- @ninefold_storage_secret_decoded = Base64.decode64( @ninefold_storage_secret )
54
-
55
- @connection_options = options[:connection_options] || {}
56
- @hmac = Fog::HMAC.new('sha1', @ninefold_storage_secret_decoded)
57
- @persistent = options.fetch(:persistent, true)
58
-
59
- @connection = Fog::Connection.new("#{Fog::Storage::Ninefold::STORAGE_SCHEME}://#{Fog::Storage::Ninefold::STORAGE_HOST}:#{Fog::Storage::Ninefold::STORAGE_PORT}", @persistent, @connection_options)
60
- end
61
-
62
- def uid
63
- @ninefold_storage_token#.split('/')[-1]
64
- end
65
-
66
- def sign(string)
67
- value = @hmac.sign(string)
68
- Base64.encode64( value ).chomp()
69
- end
70
-
71
- def reload
72
- @connection.reset
44
+ endpoint = "#{STORAGE_SCHEME}://"\
45
+ "#{STORAGE_HOST}:"\
46
+ "#{STORAGE_PORT}"\
47
+ "#{STORAGE_PATH}"
48
+ options[:atmos_storage_endpoint] = endpoint
49
+ options[:atmos_storage_token] = options[:ninefold_storage_token]
50
+ options[:atmos_storage_secret] = options[:ninefold_storage_secret]
51
+ super(options)
73
52
  end
74
-
75
- def request(params, &block)
76
- req_path = params[:path]
77
- # Force set host and port
78
- params.merge!({
79
- :host => Fog::Storage::Ninefold::STORAGE_HOST,
80
- :path => "#{Fog::Storage::Ninefold::STORAGE_PATH}/rest/#{params[:path]}",
81
- })
82
- # Set default method and headers
83
- params = {:method => 'GET', :headers => {}}.merge params
84
-
85
- params[:headers]["Content-Type"] ||= "application/octet-stream"
86
-
87
- # Add request date
88
- params[:headers]["date"] = Time.now().httpdate()
89
- params[:headers]["x-emc-uid"] = @ninefold_storage_token
90
-
91
- # Build signature string
92
- signstring = ""
93
- signstring += params[:method]
94
- signstring += "\n"
95
- signstring += params[:headers]["Content-Type"]
96
- signstring += "\n"
97
- if( params[:headers]["range"] )
98
- signstring += params[:headers]["range"]
99
- end
100
- signstring += "\n"
101
- signstring += params[:headers]["date"]
102
- signstring += "\n"
103
-
104
- signstring += "/rest/" + URI.unescape( req_path ).downcase
105
- query_str = params[:query].map{|k,v| "#{k}=#{v}"}.join('&')
106
- signstring += '?' + query_str unless query_str.empty?
107
- signstring += "\n"
108
-
109
- customheaders = {}
110
- params[:headers].each { |key,value|
111
- case key
112
- when 'x-emc-date', 'x-emc-signature'
113
- #skip
114
- when /^x-emc-/
115
- customheaders[ key.downcase ] = value
116
- end
117
- }
118
- header_arr = customheaders.sort()
119
-
120
- header_arr.each { |key,value|
121
- # Values are lowercase and whitespace-normalized
122
- signstring += key + ":" + value.strip.chomp.squeeze( " " ) + "\n"
123
- }
124
-
125
- digest = @hmac.sign(signstring.chomp())
126
- signature = Base64.encode64( digest ).chomp()
127
- params[:headers]["x-emc-signature"] = signature
128
-
129
- begin
130
- response = @connection.request(params, &block)
131
- rescue Excon::Errors::HTTPStatusError => error
132
- raise case error
133
- when Excon::Errors::NotFound
134
- Fog::Storage::Ninefold::NotFound.slurp(error)
135
- else
136
- error
137
- end
138
- end
139
- unless response.body.empty?
140
- if params[:parse]
141
- document = Fog::ToHashDocument.new
142
- parser = Nokogiri::XML::SAX::PushParser.new(document)
143
- parser << response.body
144
- parser.finish
145
- response.body = document.body
146
- end
147
- end
148
- response
149
- end
150
-
151
53
  end
152
54
  end
153
55
  end