fog 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (683) hide show
  1. data/.gitignore +5 -0
  2. data/README.rdoc +1 -1
  3. data/Rakefile +3 -16
  4. data/changelog.txt +401 -2
  5. data/docs/_layouts/default.html +1 -1
  6. data/docs/index.markdown +2 -2
  7. data/docs/storage/index.markdown +4 -4
  8. data/fog.gemspec +7 -4
  9. data/lib/fog.rb +1 -1
  10. data/lib/fog/aws.rb +32 -6
  11. data/lib/fog/aws/auto_scaling.rb +1 -18
  12. data/lib/fog/aws/beanstalk.rb +140 -0
  13. data/lib/fog/aws/cloud_formation.rb +1 -18
  14. data/lib/fog/aws/cloud_watch.rb +2 -19
  15. data/lib/fog/aws/compute.rb +16 -21
  16. data/lib/fog/aws/dns.rb +2 -2
  17. data/lib/fog/aws/dynamodb.rb +162 -0
  18. data/lib/fog/aws/elasticache.rb +1 -14
  19. data/lib/fog/aws/elb.rb +34 -26
  20. data/lib/fog/aws/elb/policy_types.rb +35 -0
  21. data/lib/fog/aws/emr.rb +5 -4
  22. data/lib/fog/aws/iam.rb +16 -1
  23. data/lib/fog/aws/models/auto_scaling/activity.rb +1 -1
  24. data/lib/fog/aws/models/auto_scaling/group.rb +2 -2
  25. data/lib/fog/aws/models/beanstalk/application.rb +62 -0
  26. data/lib/fog/aws/models/beanstalk/applications.rb +25 -0
  27. data/lib/fog/aws/models/beanstalk/environment.rb +129 -0
  28. data/lib/fog/aws/models/beanstalk/environments.rb +29 -0
  29. data/lib/fog/aws/models/beanstalk/event.rb +20 -0
  30. data/lib/fog/aws/models/beanstalk/events.rb +19 -0
  31. data/lib/fog/aws/models/beanstalk/template.rb +62 -0
  32. data/lib/fog/aws/models/beanstalk/templates.rb +70 -0
  33. data/lib/fog/aws/models/beanstalk/version.rb +79 -0
  34. data/lib/fog/aws/models/beanstalk/versions.rb +31 -0
  35. data/lib/fog/aws/models/compute/address.rb +7 -4
  36. data/lib/fog/aws/models/compute/addresses.rb +2 -2
  37. data/lib/fog/aws/models/compute/flavors.rb +1 -1
  38. data/lib/fog/aws/models/compute/key_pairs.rb +2 -2
  39. data/lib/fog/aws/models/compute/security_group.rb +2 -2
  40. data/lib/fog/aws/models/compute/security_groups.rb +30 -5
  41. data/lib/fog/aws/models/compute/server.rb +2 -0
  42. data/lib/fog/aws/models/compute/servers.rb +2 -2
  43. data/lib/fog/aws/models/compute/subnet.rb +58 -0
  44. data/lib/fog/aws/models/compute/subnets.rb +99 -0
  45. data/lib/fog/aws/models/compute/volumes.rb +3 -3
  46. data/lib/fog/aws/models/compute/vpc.rb +63 -0
  47. data/lib/fog/aws/models/compute/vpcs.rb +93 -0
  48. data/lib/fog/aws/models/dns/record.rb +37 -23
  49. data/lib/fog/aws/models/elasticache/cluster.rb +1 -1
  50. data/lib/fog/aws/models/elb/listener.rb +9 -7
  51. data/lib/fog/aws/models/storage/directory.rb +22 -1
  52. data/lib/fog/aws/models/storage/file.rb +58 -7
  53. data/lib/fog/aws/models/storage/version.rb +36 -0
  54. data/lib/fog/aws/models/storage/versions.rb +38 -0
  55. data/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb +3 -3
  56. data/lib/fog/aws/parsers/beanstalk/check_dns_availability.rb +19 -0
  57. data/lib/fog/aws/parsers/beanstalk/create_application.rb +24 -0
  58. data/lib/fog/aws/parsers/beanstalk/create_application_version.rb +26 -0
  59. data/lib/fog/aws/parsers/beanstalk/create_configuration_template.rb +29 -0
  60. data/lib/fog/aws/parsers/beanstalk/create_environment.rb +37 -0
  61. data/lib/fog/aws/parsers/beanstalk/create_storage_location.rb +18 -0
  62. data/lib/fog/aws/parsers/beanstalk/describe_application_versions.rb +26 -0
  63. data/lib/fog/aws/parsers/beanstalk/describe_applications.rb +24 -0
  64. data/lib/fog/aws/parsers/beanstalk/describe_configuration_options.rb +32 -0
  65. data/lib/fog/aws/parsers/beanstalk/describe_configuration_settings.rb +30 -0
  66. data/lib/fog/aws/parsers/beanstalk/describe_environment_resources.rb +26 -0
  67. data/lib/fog/aws/parsers/beanstalk/describe_environments.rb +38 -0
  68. data/lib/fog/aws/parsers/beanstalk/describe_events.rb +27 -0
  69. data/lib/fog/aws/parsers/beanstalk/empty.rb +27 -0
  70. data/lib/fog/aws/parsers/beanstalk/list_available_solution_stacks.rb +21 -0
  71. data/lib/fog/aws/parsers/beanstalk/parser.rb +93 -0
  72. data/lib/fog/aws/parsers/beanstalk/retrieve_environment_info.rb +22 -0
  73. data/lib/fog/aws/parsers/beanstalk/terminate_environment.rb +37 -0
  74. data/lib/fog/aws/parsers/beanstalk/update_application.rb +24 -0
  75. data/lib/fog/aws/parsers/beanstalk/update_application_version.rb +26 -0
  76. data/lib/fog/aws/parsers/beanstalk/update_configuration_template.rb +29 -0
  77. data/lib/fog/aws/parsers/beanstalk/update_environment.rb +37 -0
  78. data/lib/fog/aws/parsers/beanstalk/validate_configuration_settings.rb +22 -0
  79. data/lib/fog/aws/parsers/compute/allocate_address.rb +1 -1
  80. data/lib/fog/aws/parsers/compute/associate_address.rb +25 -0
  81. data/lib/fog/aws/parsers/compute/create_subnet.rb +51 -0
  82. data/lib/fog/aws/parsers/compute/create_vpc.rb +51 -0
  83. data/lib/fog/aws/parsers/compute/delete_subnet.rb +24 -0
  84. data/lib/fog/aws/parsers/compute/delete_vpc.rb +24 -0
  85. data/lib/fog/aws/parsers/compute/describe_addresses.rb +1 -1
  86. data/lib/fog/aws/parsers/compute/describe_images.rb +20 -13
  87. data/lib/fog/aws/parsers/compute/describe_instance_status.rb +62 -29
  88. data/lib/fog/aws/parsers/compute/describe_instances.rb +2 -2
  89. data/lib/fog/aws/parsers/compute/describe_security_groups.rb +4 -4
  90. data/lib/fog/aws/parsers/compute/describe_subnets.rb +49 -0
  91. data/lib/fog/aws/parsers/compute/describe_volume_status.rb +70 -0
  92. data/lib/fog/aws/parsers/compute/describe_vpcs.rb +49 -0
  93. data/lib/fog/aws/parsers/dns/list_resource_record_sets.rb +15 -7
  94. data/lib/fog/aws/parsers/elb/describe_load_balancer_policies.rb +64 -0
  95. data/lib/fog/aws/parsers/elb/describe_load_balancer_policy_types.rb +70 -0
  96. data/lib/fog/aws/parsers/sns/confirm_subscription.rb +1 -1
  97. data/lib/fog/aws/parsers/sns/create_topic.rb +1 -1
  98. data/lib/fog/aws/parsers/sns/list_subscriptions.rb +2 -2
  99. data/lib/fog/aws/parsers/sns/list_topics.rb +1 -1
  100. data/lib/fog/aws/parsers/sns/subscribe.rb +1 -1
  101. data/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb +32 -0
  102. data/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb +1 -1
  103. data/lib/fog/aws/parsers/storage/get_bucket_versioning.rb +1 -1
  104. data/lib/fog/aws/parsers/sts/get_session_token.rb +1 -1
  105. data/lib/fog/aws/rds.rb +19 -21
  106. data/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb +10 -1
  107. data/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb +16 -7
  108. data/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb +5 -0
  109. data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +13 -3
  110. data/lib/fog/aws/requests/beanstalk/check_dns_availability.rb +27 -0
  111. data/lib/fog/aws/requests/beanstalk/create_application.rb +29 -0
  112. data/lib/fog/aws/requests/beanstalk/create_application_version.rb +41 -0
  113. data/lib/fog/aws/requests/beanstalk/create_configuration_template.rb +44 -0
  114. data/lib/fog/aws/requests/beanstalk/create_environment.rb +50 -0
  115. data/lib/fog/aws/requests/beanstalk/create_storage_location.rb +27 -0
  116. data/lib/fog/aws/requests/beanstalk/delete_application.rb +29 -0
  117. data/lib/fog/aws/requests/beanstalk/delete_application_version.rb +36 -0
  118. data/lib/fog/aws/requests/beanstalk/delete_configuration_template.rb +34 -0
  119. data/lib/fog/aws/requests/beanstalk/delete_environment_configuration.rb +34 -0
  120. data/lib/fog/aws/requests/beanstalk/describe_application_versions.rb +34 -0
  121. data/lib/fog/aws/requests/beanstalk/describe_applications.rb +30 -0
  122. data/lib/fog/aws/requests/beanstalk/describe_configuration_options.rb +40 -0
  123. data/lib/fog/aws/requests/beanstalk/describe_configuration_settings.rb +31 -0
  124. data/lib/fog/aws/requests/beanstalk/describe_environment_resources.rb +29 -0
  125. data/lib/fog/aws/requests/beanstalk/describe_environments.rb +40 -0
  126. data/lib/fog/aws/requests/beanstalk/describe_events.rb +29 -0
  127. data/lib/fog/aws/requests/beanstalk/list_available_solution_stacks.rb +27 -0
  128. data/lib/fog/aws/requests/beanstalk/rebuild_environment.rb +30 -0
  129. data/lib/fog/aws/requests/beanstalk/request_environment_info.rb +29 -0
  130. data/lib/fog/aws/requests/beanstalk/restart_app_server.rb +29 -0
  131. data/lib/fog/aws/requests/beanstalk/retrieve_environment_info.rb +29 -0
  132. data/lib/fog/aws/requests/beanstalk/swap_environment_cnames.rb +29 -0
  133. data/lib/fog/aws/requests/beanstalk/terminate_environment.rb +31 -0
  134. data/lib/fog/aws/requests/beanstalk/update_application.rb +30 -0
  135. data/lib/fog/aws/requests/beanstalk/update_application_version.rb +30 -0
  136. data/lib/fog/aws/requests/beanstalk/update_configuration_template.rb +36 -0
  137. data/lib/fog/aws/requests/beanstalk/update_environment.rb +42 -0
  138. data/lib/fog/aws/requests/beanstalk/validate_configuration_settings.rb +33 -0
  139. data/lib/fog/aws/requests/compute/allocate_address.rb +11 -4
  140. data/lib/fog/aws/requests/compute/associate_address.rb +44 -17
  141. data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +15 -17
  142. data/lib/fog/aws/requests/compute/create_security_group.rb +8 -4
  143. data/lib/fog/aws/requests/compute/create_subnet.rb +79 -0
  144. data/lib/fog/aws/requests/compute/create_tags.rb +3 -2
  145. data/lib/fog/aws/requests/compute/create_vpc.rb +71 -0
  146. data/lib/fog/aws/requests/compute/delete_security_group.rb +22 -4
  147. data/lib/fog/aws/requests/compute/delete_subnet.rb +49 -0
  148. data/lib/fog/aws/requests/compute/delete_vpc.rb +52 -0
  149. data/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -0
  150. data/lib/fog/aws/requests/compute/describe_subnets.rb +66 -0
  151. data/lib/fog/aws/requests/compute/describe_volume_status.rb +50 -0
  152. data/lib/fog/aws/requests/compute/describe_vpcs.rb +62 -0
  153. data/lib/fog/aws/requests/compute/detach_volume.rb +13 -8
  154. data/lib/fog/aws/requests/compute/disassociate_address.rb +7 -5
  155. data/lib/fog/aws/requests/compute/request_spot_instances.rb +5 -1
  156. data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +11 -13
  157. data/lib/fog/aws/requests/compute/run_instances.rb +5 -1
  158. data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +43 -28
  159. data/lib/fog/aws/requests/dns/create_hosted_zone.rb +9 -9
  160. data/lib/fog/aws/requests/dns/delete_hosted_zone.rb +7 -7
  161. data/lib/fog/aws/requests/dns/get_change.rb +5 -5
  162. data/lib/fog/aws/requests/dns/get_hosted_zone.rb +8 -8
  163. data/lib/fog/aws/requests/dns/list_hosted_zones.rb +15 -15
  164. data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +23 -20
  165. data/lib/fog/aws/requests/dynamodb/batch_get_item.rb +43 -0
  166. data/lib/fog/aws/requests/dynamodb/create_table.rb +55 -0
  167. data/lib/fog/aws/requests/dynamodb/delete_item.rb +45 -0
  168. data/lib/fog/aws/requests/dynamodb/delete_table.rb +42 -0
  169. data/lib/fog/aws/requests/dynamodb/describe_table.rb +44 -0
  170. data/lib/fog/aws/requests/dynamodb/get_item.rb +43 -0
  171. data/lib/fog/aws/requests/dynamodb/list_tables.rb +29 -0
  172. data/lib/fog/aws/requests/dynamodb/put_item.rb +41 -0
  173. data/lib/fog/aws/requests/dynamodb/query.rb +44 -0
  174. data/lib/fog/aws/requests/dynamodb/scan.rb +45 -0
  175. data/lib/fog/aws/requests/dynamodb/update_item.rb +49 -0
  176. data/lib/fog/aws/requests/dynamodb/update_table.rb +46 -0
  177. data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +2 -2
  178. data/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb +2 -2
  179. data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +2 -0
  180. data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +3 -1
  181. data/lib/fog/aws/requests/elb/create_load_balancer.rb +7 -2
  182. data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +10 -1
  183. data/lib/fog/aws/requests/elb/create_load_balancer_policy.rb +79 -0
  184. data/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb +1 -1
  185. data/lib/fog/aws/requests/elb/describe_load_balancer_policies.rb +71 -0
  186. data/lib/fog/aws/requests/elb/describe_load_balancer_policy_types.rb +68 -0
  187. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +5 -1
  188. data/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb +1 -1
  189. data/lib/fog/aws/requests/emr/run_job_flow.rb +9 -7
  190. data/lib/fog/aws/requests/iam/add_user_to_group.rb +24 -0
  191. data/lib/fog/aws/requests/iam/create_access_key.rb +24 -0
  192. data/lib/fog/aws/requests/iam/create_group.rb +21 -0
  193. data/lib/fog/aws/requests/iam/create_user.rb +21 -0
  194. data/lib/fog/aws/requests/iam/delete_access_key.rb +17 -0
  195. data/lib/fog/aws/requests/iam/delete_group.rb +19 -0
  196. data/lib/fog/aws/requests/iam/delete_user.rb +17 -0
  197. data/lib/fog/aws/requests/iam/delete_user_policy.rb +16 -0
  198. data/lib/fog/aws/requests/iam/list_access_keys.rb +21 -0
  199. data/lib/fog/aws/requests/iam/list_groups.rb +18 -0
  200. data/lib/fog/aws/requests/iam/list_groups_for_user.rb +24 -0
  201. data/lib/fog/aws/requests/iam/list_user_policies.rb +18 -0
  202. data/lib/fog/aws/requests/iam/list_users.rb +17 -0
  203. data/lib/fog/aws/requests/iam/put_user_policy.rb +18 -0
  204. data/lib/fog/aws/requests/iam/remove_user_from_group.rb +19 -0
  205. data/lib/fog/aws/requests/iam/upload_server_certificate.rb +4 -1
  206. data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +30 -1
  207. data/lib/fog/aws/requests/rds/create_db_instance.rb +18 -15
  208. data/lib/fog/aws/requests/rds/create_db_parameter_group.rb +19 -1
  209. data/lib/fog/aws/requests/rds/create_db_security_group.rb +19 -1
  210. data/lib/fog/aws/requests/rds/create_db_snapshot.rb +38 -2
  211. data/lib/fog/aws/requests/rds/delete_db_instance.rb +1 -2
  212. data/lib/fog/aws/requests/rds/delete_db_parameter_group.rb +11 -1
  213. data/lib/fog/aws/requests/rds/delete_db_security_group.rb +11 -1
  214. data/lib/fog/aws/requests/rds/delete_db_snapshot.rb +15 -4
  215. data/lib/fog/aws/requests/rds/describe_db_instances.rb +25 -9
  216. data/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb +19 -1
  217. data/lib/fog/aws/requests/rds/describe_db_parameters.rb +0 -1
  218. data/lib/fog/aws/requests/rds/describe_db_security_groups.rb +49 -3
  219. data/lib/fog/aws/requests/rds/describe_db_snapshots.rb +28 -1
  220. data/lib/fog/aws/requests/rds/modify_db_instance.rb +10 -8
  221. data/lib/fog/aws/requests/rds/reboot_db_instance.rb +6 -6
  222. data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +27 -1
  223. data/lib/fog/aws/requests/sns/confirm_subscription.rb +1 -1
  224. data/lib/fog/aws/requests/sns/delete_topic.rb +1 -1
  225. data/lib/fog/aws/requests/sns/get_topic_attributes.rb +1 -1
  226. data/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb +1 -1
  227. data/lib/fog/aws/requests/sns/publish.rb +1 -1
  228. data/lib/fog/aws/requests/sns/set_topic_attributes.rb +1 -1
  229. data/lib/fog/aws/requests/sns/subscribe.rb +1 -1
  230. data/lib/fog/aws/requests/sns/unsubscribe.rb +1 -1
  231. data/lib/fog/aws/requests/sqs/change_message_visibility.rb +1 -1
  232. data/lib/fog/aws/requests/sqs/delete_message.rb +1 -1
  233. data/lib/fog/aws/requests/sqs/receive_message.rb +13 -14
  234. data/lib/fog/aws/requests/storage/copy_object.rb +3 -5
  235. data/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb +30 -0
  236. data/lib/fog/aws/requests/storage/delete_object.rb +73 -2
  237. data/lib/fog/aws/requests/storage/get_bucket.rb +3 -2
  238. data/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb +41 -0
  239. data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +95 -2
  240. data/lib/fog/aws/requests/storage/get_bucket_versioning.rb +32 -0
  241. data/lib/fog/aws/requests/storage/get_object.rb +42 -12
  242. data/lib/fog/aws/requests/storage/get_object_http_url.rb +7 -2
  243. data/lib/fog/aws/requests/storage/get_object_https_url.rb +7 -2
  244. data/lib/fog/aws/requests/storage/head_object.rb +7 -6
  245. data/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb +48 -0
  246. data/lib/fog/aws/requests/storage/put_bucket_versioning.rb +41 -0
  247. data/lib/fog/aws/requests/storage/put_bucket_website.rb +17 -0
  248. data/lib/fog/aws/requests/storage/put_object.rb +26 -10
  249. data/lib/fog/aws/requests/storage/sync_clock.rb +1 -1
  250. data/lib/fog/aws/requests/sts/get_federation_token.rb +1 -0
  251. data/lib/fog/aws/requests/sts/get_session_token.rb +1 -0
  252. data/lib/fog/aws/ses.rb +2 -7
  253. data/lib/fog/aws/simpledb.rb +1 -18
  254. data/lib/fog/aws/sns.rb +1 -16
  255. data/lib/fog/aws/sqs.rb +2 -12
  256. data/lib/fog/aws/storage.rb +7 -29
  257. data/lib/fog/{new_servers.rb → bare_metal_cloud.rb} +2 -2
  258. data/lib/fog/{new_servers → bare_metal_cloud}/compute.rb +14 -14
  259. data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/add_server.rb +1 -1
  260. data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/cancel_server.rb +1 -1
  261. data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/get_server.rb +1 -1
  262. data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/list_images.rb +1 -1
  263. data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/list_plans.rb +1 -1
  264. data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/list_servers.rb +1 -1
  265. data/lib/fog/{new_servers → bare_metal_cloud}/requests/compute/reboot_server.rb +1 -1
  266. data/lib/fog/bin.rb +4 -1
  267. data/lib/fog/bin/aws.rb +9 -1
  268. data/lib/fog/bin/{new_servers.rb → bare_metal_cloud.rb} +5 -5
  269. data/lib/fog/bin/cloudstack.rb +30 -0
  270. data/lib/fog/bin/joyent.rb +31 -0
  271. data/lib/fog/bin/ovirt.rb +30 -0
  272. data/lib/fog/bin/voxel.rb +1 -1
  273. data/lib/fog/bluebox/compute.rb +4 -0
  274. data/lib/fog/bluebox/models/compute/location.rb +17 -0
  275. data/lib/fog/bluebox/models/compute/locations.rb +28 -0
  276. data/lib/fog/bluebox/models/compute/server.rb +12 -5
  277. data/lib/fog/bluebox/requests/compute/create_block.rb +2 -2
  278. data/lib/fog/bluebox/requests/compute/get_location.rb +26 -0
  279. data/lib/fog/bluebox/requests/compute/get_locations.rb +24 -0
  280. data/lib/fog/brightbox/compute.rb +1 -0
  281. data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +13 -0
  282. data/lib/fog/cloudstack.rb +28 -0
  283. data/lib/fog/cloudstack/compute.rb +254 -0
  284. data/lib/fog/cloudstack/requests/compute/acquire_ip_address.rb +21 -0
  285. data/lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb +25 -0
  286. data/lib/fog/cloudstack/requests/compute/attach_volume.rb +23 -0
  287. data/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb +22 -0
  288. data/lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb +20 -0
  289. data/lib/fog/cloudstack/requests/compute/create_account.rb +20 -0
  290. data/lib/fog/cloudstack/requests/compute/create_domain.rb +20 -0
  291. data/lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb +20 -0
  292. data/lib/fog/cloudstack/requests/compute/create_network.rb +20 -0
  293. data/lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb +20 -0
  294. data/lib/fog/cloudstack/requests/compute/create_security_group.rb +20 -0
  295. data/lib/fog/cloudstack/requests/compute/create_snapshot.rb +20 -0
  296. data/lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb +20 -0
  297. data/lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb +22 -0
  298. data/lib/fog/cloudstack/requests/compute/create_user.rb +20 -0
  299. data/lib/fog/cloudstack/requests/compute/create_volume.rb +20 -0
  300. data/lib/fog/cloudstack/requests/compute/delete_account.rb +20 -0
  301. data/lib/fog/cloudstack/requests/compute/delete_domain.rb +20 -0
  302. data/lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb +20 -0
  303. data/lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb +20 -0
  304. data/lib/fog/cloudstack/requests/compute/delete_security_group.rb +20 -0
  305. data/lib/fog/cloudstack/requests/compute/delete_snapshot.rb +20 -0
  306. data/lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb +20 -0
  307. data/lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb +21 -0
  308. data/lib/fog/cloudstack/requests/compute/delete_user.rb +20 -0
  309. data/lib/fog/cloudstack/requests/compute/delete_volume.rb +20 -0
  310. data/lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb +33 -0
  311. data/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb +20 -0
  312. data/lib/fog/cloudstack/requests/compute/detach_volume.rb +21 -0
  313. data/lib/fog/cloudstack/requests/compute/disable_account.rb +20 -0
  314. data/lib/fog/cloudstack/requests/compute/disable_user.rb +20 -0
  315. data/lib/fog/cloudstack/requests/compute/enable_account.rb +20 -0
  316. data/lib/fog/cloudstack/requests/compute/enable_user.rb +20 -0
  317. data/lib/fog/cloudstack/requests/compute/generate_usage_records.rb +28 -0
  318. data/lib/fog/cloudstack/requests/compute/get_vm_password.rb +21 -0
  319. data/lib/fog/cloudstack/requests/compute/list_accounts.rb +20 -0
  320. data/lib/fog/cloudstack/requests/compute/list_alerts.rb +20 -0
  321. data/lib/fog/cloudstack/requests/compute/list_async_jobs.rb +20 -0
  322. data/lib/fog/cloudstack/requests/compute/list_capabilities.rb +20 -0
  323. data/lib/fog/cloudstack/requests/compute/list_capacity.rb +20 -0
  324. data/lib/fog/cloudstack/requests/compute/list_clusters.rb +20 -0
  325. data/lib/fog/cloudstack/requests/compute/list_configurations.rb +20 -0
  326. data/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb +20 -0
  327. data/lib/fog/cloudstack/requests/compute/list_domain_children.rb +20 -0
  328. data/lib/fog/cloudstack/requests/compute/list_domains.rb +20 -0
  329. data/lib/fog/cloudstack/requests/compute/list_events.rb +20 -0
  330. data/lib/fog/cloudstack/requests/compute/list_external_firewalls.rb +20 -0
  331. data/lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb +20 -0
  332. data/lib/fog/cloudstack/requests/compute/list_hosts.rb +20 -0
  333. data/lib/fog/cloudstack/requests/compute/list_hypervisors.rb +20 -0
  334. data/lib/fog/cloudstack/requests/compute/list_instance_groups.rb +20 -0
  335. data/lib/fog/cloudstack/requests/compute/list_isos.rb +20 -0
  336. data/lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb +23 -0
  337. data/lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb +22 -0
  338. data/lib/fog/cloudstack/requests/compute/list_network_offerings.rb +20 -0
  339. data/lib/fog/cloudstack/requests/compute/list_networks.rb +20 -0
  340. data/lib/fog/cloudstack/requests/compute/list_os_categories.rb +22 -0
  341. data/lib/fog/cloudstack/requests/compute/list_os_types.rb +22 -0
  342. data/lib/fog/cloudstack/requests/compute/list_pods.rb +20 -0
  343. data/lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb +22 -0
  344. data/lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb +22 -0
  345. data/lib/fog/cloudstack/requests/compute/list_resource_limits.rb +20 -0
  346. data/lib/fog/cloudstack/requests/compute/list_security_groups.rb +20 -0
  347. data/lib/fog/cloudstack/requests/compute/list_service_offerings.rb +20 -0
  348. data/lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb +20 -0
  349. data/lib/fog/cloudstack/requests/compute/list_snapshots.rb +20 -0
  350. data/lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb +20 -0
  351. data/lib/fog/cloudstack/requests/compute/list_storage_pools.rb +20 -0
  352. data/lib/fog/cloudstack/requests/compute/list_templates.rb +20 -0
  353. data/lib/fog/cloudstack/requests/compute/list_usage_records.rb +28 -0
  354. data/lib/fog/cloudstack/requests/compute/list_users.rb +20 -0
  355. data/lib/fog/cloudstack/requests/compute/list_virtual_machines.rb +20 -0
  356. data/lib/fog/cloudstack/requests/compute/list_volumes.rb +20 -0
  357. data/lib/fog/cloudstack/requests/compute/list_zones.rb +20 -0
  358. data/lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb +20 -0
  359. data/lib/fog/cloudstack/requests/compute/query_async_job_result.rb +20 -0
  360. data/lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb +20 -0
  361. data/lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb +20 -0
  362. data/lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb +20 -0
  363. data/lib/fog/cloudstack/requests/compute/register_user_keys.rb +20 -0
  364. data/lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb +25 -0
  365. data/lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb +21 -0
  366. data/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb +21 -0
  367. data/lib/fog/cloudstack/requests/compute/start_virtual_machine.rb +20 -0
  368. data/lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb +20 -0
  369. data/lib/fog/cloudstack/requests/compute/update_account.rb +20 -0
  370. data/lib/fog/cloudstack/requests/compute/update_domain.rb +20 -0
  371. data/lib/fog/cloudstack/requests/compute/update_resource_count.rb +20 -0
  372. data/lib/fog/cloudstack/requests/compute/update_user.rb +20 -0
  373. data/lib/fog/cloudstack/requests/compute/update_virtual_machine.rb +20 -0
  374. data/lib/fog/compute.rb +17 -3
  375. data/lib/fog/compute/models/server.rb +11 -0
  376. data/lib/fog/core.rb +1 -3
  377. data/lib/fog/core/connection.rb +2 -2
  378. data/lib/fog/core/errors.rb +8 -2
  379. data/lib/fog/core/model.rb +8 -0
  380. data/lib/fog/core/scp.rb +18 -2
  381. data/lib/fog/dns.rb +1 -0
  382. data/lib/fog/dnsimple/dns.rb +1 -1
  383. data/lib/fog/dynect/models/dns/records.rb +2 -2
  384. data/lib/fog/dynect/requests/dns/get_node_list.rb +2 -1
  385. data/lib/fog/ecloud/compute.rb +1 -1
  386. data/lib/fog/ecloud/requests/compute/add_backup_internet_service.rb +1 -1
  387. data/lib/fog/ecloud/requests/compute/add_internet_service.rb +2 -2
  388. data/lib/fog/ecloud/requests/compute/add_node.rb +1 -1
  389. data/lib/fog/ecloud/requests/compute/clone_vapp.rb +1 -1
  390. data/lib/fog/ecloud/requests/compute/configure_internet_service.rb +1 -1
  391. data/lib/fog/ecloud/requests/compute/configure_network.rb +1 -1
  392. data/lib/fog/ecloud/requests/compute/configure_network_ip.rb +1 -1
  393. data/lib/fog/ecloud/requests/compute/configure_vapp.rb +1 -1
  394. data/lib/fog/ecloud/requests/compute/instantiate_vapp_template.rb +1 -1
  395. data/lib/fog/glesys/compute.rb +4 -2
  396. data/lib/fog/glesys/models/compute/server.rb +14 -14
  397. data/lib/fog/google/requests/storage/get_object.rb +22 -14
  398. data/lib/fog/joyent.rb +8 -0
  399. data/lib/fog/joyent/compute.rb +228 -0
  400. data/lib/fog/joyent/errors.rb +90 -0
  401. data/lib/fog/joyent/models/compute/flavor.rb +17 -0
  402. data/lib/fog/joyent/models/compute/flavors.rb +25 -0
  403. data/lib/fog/joyent/models/compute/image.rb +18 -0
  404. data/lib/fog/joyent/models/compute/images.rb +25 -0
  405. data/lib/fog/joyent/models/compute/key.rb +19 -0
  406. data/lib/fog/joyent/models/compute/keys.rb +34 -0
  407. data/lib/fog/joyent/models/compute/server.rb +117 -0
  408. data/lib/fog/joyent/models/compute/servers.rb +35 -0
  409. data/lib/fog/joyent/models/compute/snapshot.rb +45 -0
  410. data/lib/fog/joyent/models/compute/snapshots.rb +37 -0
  411. data/lib/fog/joyent/requests/compute/add_machine_tags.rb +20 -0
  412. data/lib/fog/joyent/requests/compute/create_key.rb +56 -0
  413. data/lib/fog/joyent/requests/compute/create_machine.rb +16 -0
  414. data/lib/fog/joyent/requests/compute/create_machine_snapshot.rb +18 -0
  415. data/lib/fog/joyent/requests/compute/delete_all_machine_metadata.rb +16 -0
  416. data/lib/fog/joyent/requests/compute/delete_all_machine_tags.rb +15 -0
  417. data/lib/fog/joyent/requests/compute/delete_key.rb +29 -0
  418. data/lib/fog/joyent/requests/compute/delete_machine.rb +15 -0
  419. data/lib/fog/joyent/requests/compute/delete_machine_metadata.rb +18 -0
  420. data/lib/fog/joyent/requests/compute/delete_machine_snapshot.rb +21 -0
  421. data/lib/fog/joyent/requests/compute/delete_machine_tag.rb +15 -0
  422. data/lib/fog/joyent/requests/compute/get_dataset.rb +28 -0
  423. data/lib/fog/joyent/requests/compute/get_key.rb +29 -0
  424. data/lib/fog/joyent/requests/compute/get_machine.rb +29 -0
  425. data/lib/fog/joyent/requests/compute/get_machine_metadata.rb +25 -0
  426. data/lib/fog/joyent/requests/compute/get_machine_snapshot.rb +14 -0
  427. data/lib/fog/joyent/requests/compute/get_machine_tag.rb +19 -0
  428. data/lib/fog/joyent/requests/compute/get_package.rb +33 -0
  429. data/lib/fog/joyent/requests/compute/list_datasets.rb +24 -0
  430. data/lib/fog/joyent/requests/compute/list_keys.rb +25 -0
  431. data/lib/fog/joyent/requests/compute/list_machine_snapshots.rb +14 -0
  432. data/lib/fog/joyent/requests/compute/list_machine_tags.rb +20 -0
  433. data/lib/fog/joyent/requests/compute/list_machines.rb +25 -0
  434. data/lib/fog/joyent/requests/compute/list_packages.rb +36 -0
  435. data/lib/fog/joyent/requests/compute/reboot_machine.rb +15 -0
  436. data/lib/fog/joyent/requests/compute/resize_machine.rb +13 -0
  437. data/lib/fog/joyent/requests/compute/start_machine.rb +16 -0
  438. data/lib/fog/joyent/requests/compute/start_machine_from_snapshot.rb +15 -0
  439. data/lib/fog/joyent/requests/compute/stop_machine.rb +16 -0
  440. data/lib/fog/joyent/requests/compute/update_machine_metadata.rb +15 -0
  441. data/lib/fog/libvirt/compute.rb +5 -3
  442. data/lib/fog/libvirt/models/compute/server.rb +89 -102
  443. data/lib/fog/libvirt/models/compute/servers.rb +2 -1
  444. data/lib/fog/libvirt/models/compute/util.rb +1 -2
  445. data/lib/fog/local/models/storage/file.rb +8 -1
  446. data/lib/fog/local/storage.rb +8 -0
  447. data/lib/fog/ninefold/models/storage/file.rb +8 -0
  448. data/lib/fog/openstack.rb +9 -7
  449. data/lib/fog/openstack/compute.rb +0 -2
  450. data/lib/fog/ovirt.rb +17 -0
  451. data/lib/fog/ovirt/compute.rb +106 -0
  452. data/lib/fog/ovirt/models/compute/cluster.rb +24 -0
  453. data/lib/fog/ovirt/models/compute/clusters.rb +23 -0
  454. data/lib/fog/ovirt/models/compute/interface.rb +22 -0
  455. data/lib/fog/ovirt/models/compute/interfaces.rb +32 -0
  456. data/lib/fog/ovirt/models/compute/server.rb +112 -0
  457. data/lib/fog/ovirt/models/compute/servers.rb +30 -0
  458. data/lib/fog/ovirt/models/compute/template.rb +53 -0
  459. data/lib/fog/ovirt/models/compute/templates.rb +23 -0
  460. data/lib/fog/ovirt/requests/compute/add_interface.rb +23 -0
  461. data/lib/fog/ovirt/requests/compute/create_vm.rb +20 -0
  462. data/lib/fog/ovirt/requests/compute/datacenters.rb +22 -0
  463. data/lib/fog/ovirt/requests/compute/destroy_interface.rb +25 -0
  464. data/lib/fog/ovirt/requests/compute/destroy_vm.rb +22 -0
  465. data/lib/fog/ovirt/requests/compute/get_cluster.rb +18 -0
  466. data/lib/fog/ovirt/requests/compute/get_template.rb +18 -0
  467. data/lib/fog/ovirt/requests/compute/get_virtual_machine.rb +18 -0
  468. data/lib/fog/ovirt/requests/compute/list_clusters.rb +20 -0
  469. data/lib/fog/ovirt/requests/compute/list_networks.rb +17 -0
  470. data/lib/fog/ovirt/requests/compute/list_template_interfaces.rb +20 -0
  471. data/lib/fog/ovirt/requests/compute/list_templates.rb +20 -0
  472. data/lib/fog/ovirt/requests/compute/list_virtual_machines.rb +20 -0
  473. data/lib/fog/ovirt/requests/compute/list_vm_interfaces.rb +20 -0
  474. data/lib/fog/ovirt/requests/compute/mock_files/cluster.xml +20 -0
  475. data/lib/fog/ovirt/requests/compute/mock_files/clusters.xml +39 -0
  476. data/lib/fog/ovirt/requests/compute/mock_files/data_centers.xml +17 -0
  477. data/lib/fog/ovirt/requests/compute/mock_files/nics.xml +10 -0
  478. data/lib/fog/ovirt/requests/compute/mock_files/storage_domains.xml +36 -0
  479. data/lib/fog/ovirt/requests/compute/mock_files/template.xml +39 -0
  480. data/lib/fog/ovirt/requests/compute/mock_files/templates.xml +110 -0
  481. data/lib/fog/ovirt/requests/compute/mock_files/vm.xml +54 -0
  482. data/lib/fog/ovirt/requests/compute/mock_files/vms.xml +152 -0
  483. data/lib/fog/ovirt/requests/compute/storage_domains.rb +22 -0
  484. data/lib/fog/ovirt/requests/compute/update_interface.rb +25 -0
  485. data/lib/fog/ovirt/requests/compute/update_vm.rb +20 -0
  486. data/lib/fog/ovirt/requests/compute/vm_action.rb +26 -0
  487. data/lib/fog/providers.rb +4 -1
  488. data/lib/fog/rackspace/models/compute/flavor.rb +2 -0
  489. data/lib/fog/rackspace/models/storage/directory.rb +5 -1
  490. data/lib/fog/rackspace/models/storage/file.rb +7 -0
  491. data/lib/fog/rackspace/requests/compute/create_image.rb +1 -3
  492. data/lib/fog/rackspace/requests/storage/copy_object.rb +27 -0
  493. data/lib/fog/rackspace/requests/storage/get_object.rb +8 -2
  494. data/lib/fog/rackspace/requests/storage/put_object.rb +6 -5
  495. data/lib/fog/rackspace/storage.rb +1 -0
  496. data/lib/fog/storm_on_demand/compute.rb +1 -1
  497. data/lib/fog/vcloud/compute.rb +85 -30
  498. data/lib/fog/vcloud/models/compute/catalog.rb +1 -1
  499. data/lib/fog/vcloud/models/compute/catalog_item.rb +1 -1
  500. data/lib/fog/vcloud/models/compute/catalogs.rb +2 -4
  501. data/lib/fog/vcloud/models/compute/ip.rb +2 -2
  502. data/lib/fog/vcloud/models/compute/network.rb +3 -9
  503. data/lib/fog/vcloud/models/compute/networks.rb +13 -8
  504. data/lib/fog/vcloud/models/compute/organization.rb +3 -4
  505. data/lib/fog/vcloud/models/compute/organizations.rb +7 -4
  506. data/lib/fog/vcloud/models/compute/server.rb +5 -4
  507. data/lib/fog/vcloud/models/compute/servers.rb +1 -5
  508. data/lib/fog/vcloud/models/compute/task.rb +1 -1
  509. data/lib/fog/vcloud/models/compute/tasks.rb +1 -3
  510. data/lib/fog/vcloud/models/compute/vapp.rb +6 -4
  511. data/lib/fog/vcloud/models/compute/vapps.rb +2 -6
  512. data/lib/fog/vcloud/models/compute/vdc.rb +5 -5
  513. data/lib/fog/vcloud/models/compute/vdcs.rb +2 -5
  514. data/lib/fog/vcloud/requests/compute/clone_vapp.rb +1 -1
  515. data/lib/fog/vcloud/requests/compute/configure_network.rb +1 -1
  516. data/lib/fog/vcloud/requests/compute/configure_network_ip.rb +1 -1
  517. data/lib/fog/vcloud/requests/compute/configure_vapp.rb +1 -1
  518. data/lib/fog/vcloud/requests/compute/configure_vm.rb +1 -1
  519. data/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb +1 -1
  520. data/lib/fog/vcloud/requests/compute/login.rb +8 -4
  521. data/lib/fog/virtual_box/compute.rb +4 -0
  522. data/lib/fog/vmfusion/models/compute/server.rb +120 -52
  523. data/lib/fog/vmfusion/models/compute/servers.rb +11 -7
  524. data/lib/fog/voxel/compute.rb +1 -1
  525. data/lib/fog/vsphere/compute.rb +5 -0
  526. data/lib/fog/vsphere/models/compute/server.rb +25 -0
  527. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +1 -1
  528. data/lib/fog/vsphere/requests/compute/vm_clone.rb +43 -8
  529. data/lib/fog/vsphere/requests/compute/vm_create.rb +97 -0
  530. data/lib/fog/vsphere/requests/compute/vm_migrate.rb +37 -0
  531. data/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb +23 -0
  532. data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +25 -0
  533. data/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb +23 -0
  534. data/lib/fog/zerigo/models/dns/record.rb +7 -5
  535. data/lib/fog/zerigo/parsers/dns/create_host.rb +3 -1
  536. data/lib/fog/zerigo/parsers/dns/find_hosts.rb +3 -1
  537. data/lib/fog/zerigo/parsers/dns/get_host.rb +3 -1
  538. data/lib/fog/zerigo/parsers/dns/get_zone.rb +3 -1
  539. data/lib/fog/zerigo/parsers/dns/list_hosts.rb +3 -1
  540. data/lib/fog/zerigo/requests/dns/update_host.rb +2 -2
  541. data/spec/ecloud/spec_helper.rb +1 -1
  542. data/tests/aws/models/beanstalk/application_tests.rb +70 -0
  543. data/tests/aws/models/beanstalk/applications_tests.rb +7 -0
  544. data/tests/aws/models/beanstalk/environment_tests.rb +132 -0
  545. data/tests/aws/models/beanstalk/environments_tests.rb +34 -0
  546. data/tests/aws/models/beanstalk/template_tests.rb +47 -0
  547. data/tests/aws/models/beanstalk/templates_tests.rb +62 -0
  548. data/tests/aws/models/beanstalk/version_tests.rb +66 -0
  549. data/tests/aws/models/beanstalk/versions_tests.rb +61 -0
  550. data/tests/aws/models/compute/subnet_tests.rb +5 -0
  551. data/tests/aws/models/compute/subnets_tests.rb +6 -0
  552. data/tests/aws/models/compute/vpc_tests.rb +4 -0
  553. data/tests/aws/models/compute/vpcs_tests.rb +6 -0
  554. data/tests/aws/models/dns/record_tests.rb +23 -0
  555. data/tests/aws/models/dns/records_tests.rb +23 -0
  556. data/tests/aws/models/dns/zone_tests.rb +4 -0
  557. data/tests/aws/models/dns/zones_tests.rb +4 -0
  558. data/tests/aws/models/elb/model_tests.rb +11 -7
  559. data/tests/aws/models/rds/security_group_tests.rb +6 -3
  560. data/tests/aws/models/rds/security_groups_tests.rb +1 -2
  561. data/tests/aws/models/rds/server_tests.rb +5 -3
  562. data/tests/aws/models/rds/servers_tests.rb +1 -3
  563. data/tests/aws/models/rds/snapshot_tests.rb +1 -3
  564. data/tests/aws/models/rds/snapshots_tests.rb +1 -3
  565. data/tests/aws/models/storage/directory_tests.rb +51 -0
  566. data/tests/aws/models/storage/file_tests.rb +80 -0
  567. data/tests/aws/models/storage/files_tests.rb +56 -0
  568. data/tests/aws/models/storage/version_tests.rb +52 -0
  569. data/tests/aws/models/storage/versions_tests.rb +56 -0
  570. data/tests/aws/requests/auto_scaling/helper.rb +2 -2
  571. data/tests/aws/requests/beanstalk/application_tests.rb +140 -0
  572. data/tests/aws/requests/beanstalk/solution_stack_tests.rb +22 -0
  573. data/tests/aws/requests/compute/address_tests.rb +7 -5
  574. data/tests/aws/requests/compute/instance_tests.rb +16 -2
  575. data/tests/aws/requests/compute/security_group_tests.rb +77 -4
  576. data/tests/aws/requests/compute/subnet_tests.rb +36 -0
  577. data/tests/aws/requests/compute/volume_tests.rb +4 -0
  578. data/tests/aws/requests/compute/vpc_tests.rb +34 -0
  579. data/tests/aws/requests/dns/dns_tests.rb +106 -99
  580. data/tests/aws/requests/dns/helper.rb +21 -0
  581. data/tests/aws/requests/dynamodb/item_tests.rb +117 -0
  582. data/tests/aws/requests/dynamodb/table_tests.rb +99 -0
  583. data/tests/aws/requests/elb/helper.rb +33 -0
  584. data/tests/aws/requests/elb/listener_tests.rb +18 -4
  585. data/tests/aws/requests/elb/policy_tests.rb +13 -0
  586. data/tests/aws/requests/iam/access_key_tests.rb +2 -7
  587. data/tests/aws/requests/iam/group_tests.rb +1 -4
  588. data/tests/aws/requests/iam/helper.rb +19 -0
  589. data/tests/aws/requests/iam/server_certificate_tests.rb +5 -0
  590. data/tests/aws/requests/iam/user_policy_tests.rb +4 -11
  591. data/tests/aws/requests/iam/user_tests.rb +19 -12
  592. data/tests/aws/requests/rds/helper.rb +45 -11
  593. data/tests/aws/requests/rds/instance_tests.rb +2 -3
  594. data/tests/aws/requests/rds/parameter_group_tests.rb +1 -7
  595. data/tests/aws/requests/rds/security_group_tests.rb +101 -0
  596. data/tests/aws/requests/storage/bucket_tests.rb +66 -1
  597. data/tests/aws/requests/storage/versioning_tests.rb +188 -0
  598. data/tests/bluebox/requests/compute/block_tests.rb +9 -8
  599. data/tests/bluebox/requests/compute/helper.rb +5 -0
  600. data/tests/bluebox/requests/compute/location_tests.rb +32 -0
  601. data/tests/bluebox/requests/compute/product_tests.rb +10 -4
  602. data/tests/bluebox/requests/compute/template_tests.rb +4 -2
  603. data/tests/brightbox/requests/compute/account_tests.rb +3 -3
  604. data/tests/brightbox/requests/compute/api_client_tests.rb +6 -6
  605. data/tests/brightbox/requests/compute/cloud_ip_tests.rb +7 -7
  606. data/tests/brightbox/requests/compute/helper.rb +33 -8
  607. data/tests/brightbox/requests/compute/image_tests.rb +2 -2
  608. data/tests/brightbox/requests/compute/interface_tests.rb +1 -1
  609. data/tests/brightbox/requests/compute/load_balancer_tests.rb +9 -9
  610. data/tests/brightbox/requests/compute/server_group_tests.rb +8 -8
  611. data/tests/brightbox/requests/compute/server_tests.rb +13 -11
  612. data/tests/brightbox/requests/compute/server_type_tests.rb +2 -2
  613. data/tests/brightbox/requests/compute/user_tests.rb +3 -3
  614. data/tests/brightbox/requests/compute/zone_tests.rb +2 -2
  615. data/tests/cloudstack/requests/disk_offering_tests.rb +29 -0
  616. data/tests/cloudstack/requests/os_type_tests.rb +38 -0
  617. data/tests/cloudstack/requests/security_group_tests.rb +29 -0
  618. data/tests/cloudstack/requests/service_offering_tests.rb +38 -0
  619. data/tests/cloudstack/requests/snapshot_tests.rb +32 -0
  620. data/tests/cloudstack/requests/ssh_key_pair_tests.rb +23 -0
  621. data/tests/cloudstack/requests/template_tests.rb +53 -0
  622. data/tests/cloudstack/requests/virtual_machine_tests.rb +71 -0
  623. data/tests/cloudstack/requests/volume_tests.rb +48 -0
  624. data/tests/cloudstack/requests/zone_tests.rb +33 -0
  625. data/tests/cloudstack/signed_params_tests.rb +12 -0
  626. data/tests/compute/helper.rb +7 -2
  627. data/tests/glesys/requests/compute/helper.rb +146 -123
  628. data/tests/glesys/requests/compute/ip_tests.rb +3 -3
  629. data/tests/glesys/requests/compute/server_tests.rb +50 -12
  630. data/tests/helper.rb +1 -1
  631. data/tests/helpers/formats_helper.rb +1 -1
  632. data/tests/helpers/mock_helper.rb +7 -2
  633. data/tests/joyent/requests/compute/datasets_tests.rb +49 -0
  634. data/tests/joyent/requests/compute/keys_tests.rb +47 -0
  635. data/tests/joyent/requests/compute/machines_tests.rb +67 -0
  636. data/tests/joyent/requests/compute/packages_tests.rb +68 -0
  637. data/tests/ovirt/compute_tests.rb +24 -0
  638. data/tests/ovirt/models/compute/cluster_tests.rb +31 -0
  639. data/tests/ovirt/models/compute/clusters_tests.rb +9 -0
  640. data/tests/ovirt/models/compute/interface_tests.rb +27 -0
  641. data/tests/ovirt/models/compute/interfaces_tests.rb +9 -0
  642. data/tests/ovirt/models/compute/server_tests.rb +51 -0
  643. data/tests/ovirt/models/compute/servers_tests.rb +14 -0
  644. data/tests/ovirt/models/compute/template_tests.rb +28 -0
  645. data/tests/ovirt/models/compute/templates_tests.rb +9 -0
  646. data/tests/ovirt/requests/compute/create_vm_tests.rb +26 -0
  647. data/tests/ovirt/requests/compute/destroy_vm_tests.rb +18 -0
  648. data/tests/ovirt/requests/compute/list_datacenters_tests.rb +13 -0
  649. data/tests/ovirt/requests/compute/list_storage_domains_tests.rb +13 -0
  650. data/tests/ovirt/requests/compute/update_vm_tests.rb +18 -0
  651. data/tests/vcloud/data/api_+_admin_+_network_+_2 +110 -0
  652. data/tests/vcloud/data/api_+_network_+_1 +44 -0
  653. data/tests/vcloud/data/api_+_org_+_ +5 -0
  654. data/tests/vcloud/data/api_+_org_+_1 +17 -0
  655. data/tests/vcloud/data/api_+_sessions +8 -0
  656. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vapp-1 +1 -1
  657. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-1 +1 -1
  658. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-2 +1 -1
  659. data/tests/vcloud/data/api_+_vApp_+_vapp-1 +369 -0
  660. data/tests/vcloud/data/api_+_vApp_+_vm-2 +155 -0
  661. data/tests/vcloud/data/api_+_vdc_+_1 +61 -0
  662. data/tests/vcloud/models/compute/conn_helper.rb +2 -2
  663. data/tests/vcloud/models/compute/network_tests.rb +54 -52
  664. data/tests/vcloud/models/compute/networks_tests.rb +54 -35
  665. data/tests/vcloud/models/compute/organization_tests.rb +17 -10
  666. data/tests/vcloud/models/compute/organizations_tests.rb +10 -8
  667. data/tests/vcloud/models/compute/server_tests.rb +45 -39
  668. data/tests/vcloud/models/compute/servers_tests.rb +17 -10
  669. data/tests/vcloud/models/compute/vapp_tests.rb +26 -21
  670. data/tests/vcloud/models/compute/vapps_tests.rb +13 -11
  671. data/tests/vcloud/models/compute/vdc_tests.rb +40 -34
  672. data/tests/vcloud/models/compute/vdcs_tests.rb +17 -10
  673. data/tests/vsphere/requests/compute/vm_clone_tests.rb +16 -4
  674. data/tests/vsphere/requests/compute/vm_create_tests.rb +20 -0
  675. data/tests/vsphere/requests/compute/vm_migrate_tests.rb +16 -0
  676. data/tests/vsphere/requests/compute/vm_power_on_tests.rb +1 -1
  677. data/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb +19 -0
  678. data/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb +19 -0
  679. data/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb +19 -0
  680. metadata +519 -50
  681. data/examples/compute_tests.rb +0 -71
  682. data/examples/dns_tests.rb +0 -78
  683. data/examples/storage_tests.rb +0 -105
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Compute
3
+ class Ovirt
4
+ class Real
5
+
6
+ def update_interface(id, options)
7
+ raise ArgumentError, "instance id is a required parameter" unless id
8
+ raise ArgumentError, "interface id is a required parameter for update-interface" unless options.has_key? :id
9
+
10
+ client.update_interface(id, options)
11
+ end
12
+
13
+ end
14
+
15
+ class Mock
16
+ def update_interface(id, options)
17
+ raise ArgumentError, "instance id is a required parameter" unless id
18
+ raise ArgumentError, "interface id is a required parameter for update-interface" unless options.has_key? :id
19
+ true
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Compute
3
+ class Ovirt
4
+
5
+ class Real
6
+ def update_vm(attrs)
7
+ client.update_vm(attrs)
8
+ end
9
+ end
10
+
11
+ class Mock
12
+ def update_vm(attrs)
13
+ xml = read_xml('vm.xml')
14
+ OVIRT::VM::new(self, Nokogiri::XML(xml).root)
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module Compute
3
+ class Ovirt
4
+ class Real
5
+
6
+ def vm_action(options = {})
7
+ raise ArgumentError, "instance id is a required parameter" unless options.has_key? :id
8
+ raise ArgumentError, "action is a required parameter" unless options.has_key? :action
9
+
10
+ client.vm_action options[:id], options[:action]
11
+ end
12
+
13
+ end
14
+
15
+ class Mock
16
+
17
+ def vm_action(options = {})
18
+ raise ArgumentError, "id is a required parameter" unless options.has_key? :id
19
+ raise ArgumentError, "action is a required parameter" unless options.has_key? :action
20
+ true
21
+ end
22
+
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,6 +1,7 @@
1
1
  require 'fog/aws'
2
2
  require 'fog/bluebox'
3
3
  require 'fog/brightbox'
4
+ require 'fog/cloudstack'
4
5
  require 'fog/clodo'
5
6
  require 'fog/dnsimple'
6
7
  require 'fog/dnsmadeeasy'
@@ -9,13 +10,15 @@ require 'fog/ecloud'
9
10
  require 'fog/glesys'
10
11
  require 'fog/go_grid'
11
12
  require 'fog/google'
13
+ require 'fog/joyent'
12
14
  require 'fog/libvirt'
13
15
  require 'fog/linode'
14
16
  require 'fog/local'
15
- require 'fog/new_servers'
17
+ require 'fog/bare_metal_cloud'
16
18
  require 'fog/ninefold'
17
19
  require 'fog/rackspace'
18
20
  require 'fog/openstack'
21
+ require 'fog/ovirt'
19
22
  require 'fog/slicehost'
20
23
  require 'fog/storm_on_demand'
21
24
  require 'fog/vcloud'
@@ -34,6 +34,8 @@ module Fog
34
34
  1/2.0
35
35
  when 15872
36
36
  1
37
+ when 30720
38
+ 2
37
39
  end
38
40
  end
39
41
 
@@ -58,7 +58,11 @@ module Fog
58
58
 
59
59
  if @connection.cdn && @public
60
60
  # if public and CDN connection then update cdn to public
61
- @public_url = connection.cdn.put_container(key, 'X-CDN-Enabled' => 'True').headers['X-CDN-URI']
61
+ uri_header = 'X-CDN-URI'
62
+ if connection.rackspace_cdn_ssl == true
63
+ uri_header = 'X-CDN-SSL-URI'
64
+ end
65
+ @public_url = connection.cdn.put_container(key, 'X-CDN-Enabled' => 'True').headers[uri_header]
62
66
  elsif @connection.cdn && !@public
63
67
  connection.cdn.put_container(key, 'X-CDN-Enabled' => 'False')
64
68
  @public_url = nil
@@ -29,6 +29,13 @@ module Fog
29
29
  @directory
30
30
  end
31
31
 
32
+ def copy(target_directory_key, target_file_key, options={})
33
+ requires :directory, :key
34
+ connection.copy_object(directory.key, key, target_directory_key, target_file_key)
35
+ target_directory = connection.directories.new(:key => target_directory_key)
36
+ target_directory.files.get(target_file_key)
37
+ end
38
+
32
39
  def destroy
33
40
  requires :directory, :key
34
41
  connection.delete_object(directory.key, key)
@@ -21,9 +21,7 @@ module Fog
21
21
  'serverId' => server_id
22
22
  }
23
23
  }
24
- if options['name']
25
- data['image']['name'] = options['name']
26
- end
24
+ data['image'].merge!(options)
27
25
  request(
28
26
  :body => MultiJson.encode(data),
29
27
  :expects => 202,
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Storage
3
+ class Rackspace
4
+ class Real
5
+
6
+ # Copy object
7
+ #
8
+ # ==== Parameters
9
+ # * source_container_name<~String> - Name of source bucket
10
+ # * source_object_name<~String> - Name of source object
11
+ # * target_container_name<~String> - Name of bucket to create copy in
12
+ # * target_object_name<~String> - Name for new copy of object
13
+ # * options<~Hash> - Additional headers
14
+ def copy_object(source_container_name, source_object_name, target_container_name, target_object_name, options={})
15
+ headers = { 'X-Copy-From' => "/#{source_container_name}/#{source_object_name}" }.merge(options)
16
+ request({
17
+ :expects => 201,
18
+ :headers => headers,
19
+ :method => 'PUT',
20
+ :path => "#{Fog::Rackspace.escape(target_container_name)}/#{Fog::Rackspace.escape(target_object_name)}"
21
+ })
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -10,12 +10,18 @@ module Fog
10
10
  # * object<~String> - Name of object to look for
11
11
  #
12
12
  def get_object(container, object, &block)
13
- request({
13
+ params = {}
14
+
15
+ if block_given?
16
+ params[:response_block] = Proc.new
17
+ end
18
+
19
+ request(params.merge!({
14
20
  :block => block,
15
21
  :expects => 200,
16
22
  :method => 'GET',
17
23
  :path => "#{Fog::Rackspace.escape(container)}/#{Fog::Rackspace.escape(object)}"
18
- }, false, &block)
24
+ }), false)
19
25
  end
20
26
 
21
27
  end
@@ -15,11 +15,12 @@ module Fog
15
15
  data = Fog::Storage.parse_data(data)
16
16
  headers = data[:headers].merge!(options)
17
17
  request(
18
- :body => data[:body],
19
- :expects => 201,
20
- :headers => headers,
21
- :method => 'PUT',
22
- :path => "#{Fog::Rackspace.escape(container)}/#{Fog::Rackspace.escape(object)}"
18
+ :body => data[:body],
19
+ :expects => 201,
20
+ :idempotent => true,
21
+ :headers => headers,
22
+ :method => 'PUT',
23
+ :path => "#{Fog::Rackspace.escape(container)}/#{Fog::Rackspace.escape(object)}"
23
24
  )
24
25
  end
25
26
 
@@ -15,6 +15,7 @@ module Fog
15
15
  collection :files
16
16
 
17
17
  request_path 'fog/rackspace/requests/storage'
18
+ request :copy_object
18
19
  request :delete_container
19
20
  request :delete_object
20
21
  request :get_container
@@ -125,7 +125,7 @@ module Fog
125
125
  unless response.body.empty?
126
126
  response.body = MultiJson.decode(response.body)
127
127
  end
128
- if response.body.keys.include?('full_error')
128
+ if response.body.has_key?('full_error')
129
129
  raise(Fog::Compute::StormOnDemand::Error, response.body.inspect)
130
130
  end
131
131
  response
@@ -52,6 +52,20 @@ module Fog
52
52
  end
53
53
  end
54
54
 
55
+ def link_up
56
+ load_unless_loaded!
57
+ self.links.find{|l| l[:rel] == 'up' }
58
+ end
59
+
60
+ def self.has_up(item)
61
+ class_eval <<-EOS, __FILE__,__LINE__
62
+ def #{item}
63
+ load_unless_loaded!
64
+ connection.get_#{item}(link_up[:href])
65
+ end
66
+ EOS
67
+ end
68
+
55
69
  end
56
70
  end
57
71
  end
@@ -60,14 +74,16 @@ module Fog
60
74
  module Vcloud
61
75
  class Compute < Fog::Service
62
76
 
63
- PATH = '/api/v1.0'
77
+ BASE_PATH = '/api'
78
+ DEFAULT_VERSION = '1.5'
79
+ SUPPORTED_VERSIONS = [ '1.5', '1.0' ]
64
80
  PORT = 443
65
81
  SCHEME = 'https'
66
82
 
67
83
  attr_writer :default_organization_uri
68
84
 
69
85
  requires :vcloud_username, :vcloud_password, :vcloud_host
70
- recognizes :vcloud_port, :vcloud_scheme, :vcloud_path, :vcloud_default_vdc
86
+ recognizes :vcloud_port, :vcloud_scheme, :vcloud_path, :vcloud_default_vdc, :vcloud_version, :vcloud_base_path
71
87
  recognizes :provider # remove post deprecation
72
88
 
73
89
  model_path 'fog/vcloud/models/compute'
@@ -99,22 +115,15 @@ module Fog
99
115
  request :configure_vm_name_description
100
116
  request :configure_vm_disks
101
117
  request :delete_vapp
102
- request :get_catalog
103
118
  request :get_catalog_item
104
119
  request :get_customization_options
105
- request :get_network
106
120
  request :get_network_ip
107
121
  request :get_network_ips
108
122
  request :get_network_extensions
109
- request :get_organization
110
- request :get_server
111
- request :get_task
112
123
  request :get_task_list
113
- request :get_vapp
114
124
  request :get_vapp_template
115
125
  request :get_vm_disks
116
126
  request :get_vm_memory
117
- request :get_vdc
118
127
  request :instantiate_vapp_template
119
128
  request :login
120
129
  request :power_off
@@ -138,13 +147,16 @@ module Fog
138
147
  def basic_request(*args)
139
148
  self.class_eval <<-EOS, __FILE__,__LINE__
140
149
  def #{args[0]}(uri)
141
- request({
142
- :expects => #{args[1] || 200},
143
- :method => '#{args[2] || 'GET'}',
144
- :headers => #{args[3] ? args[3].inspect : '{}'},
145
- :body => '#{args[4] ? args[4] : ''}',
146
- :parse => true,
147
- :uri => uri })
150
+ request(
151
+ {
152
+ :expects => #{args[1] || 200},
153
+ :method => '#{args[2] || 'GET'}',
154
+ :headers => #{args[3] ? args[3].inspect : '{}'},
155
+ :body => '#{args[4] ? args[4] : ''}',
156
+ :parse => true,
157
+ :uri => uri
158
+ }
159
+ )
148
160
  end
149
161
  EOS
150
162
  end
@@ -161,9 +173,10 @@ module Fog
161
173
  end
162
174
  EOS
163
175
  end
164
-
165
176
  end
166
177
 
178
+ attr_reader :version
179
+
167
180
  def initialize(options = {})
168
181
  require 'builder'
169
182
  require 'fog/core/parser'
@@ -172,13 +185,15 @@ module Fog
172
185
  @connection_options = options[:connection_options] || {}
173
186
  @persistent = options[:persistent]
174
187
 
175
- @username = options[:vcloud_username]
176
- @password = options[:vcloud_password]
177
- @host = options[:vcloud_host]
178
- @vdc_href = options[:vcloud_default_vdc]
179
- @path = options[:vcloud_path] || Fog::Vcloud::Compute::PATH
180
- @port = options[:vcloud_port] || Fog::Vcloud::Compute::PORT
181
- @scheme = options[:vcloud_scheme] || Fog::Vcloud::Compute::SCHEME
188
+ @username = options[:vcloud_username]
189
+ @password = options[:vcloud_password]
190
+ @host = options[:vcloud_host]
191
+ @vdc_href = options[:vcloud_default_vdc]
192
+ @base_path = options[:vcloud_base_path] || Fog::Vcloud::Compute::BASE_PATH
193
+ @version = options[:vcloud_version] || Fog::Vcloud::Compute::DEFAULT_VERSION
194
+ @path = options[:vcloud_path] || "#{@base_path}/v#{@version}"
195
+ @port = options[:vcloud_port] || Fog::Vcloud::Compute::PORT
196
+ @scheme = options[:vcloud_scheme] || Fog::Vcloud::Compute::SCHEME
182
197
  end
183
198
 
184
199
  def reload
@@ -221,10 +236,17 @@ module Fog
221
236
  end
222
237
 
223
238
  def xmlns
224
- { "xmlns" => "http://www.vmware.com/vcloud/v1",
225
- "xmlns:ovf" => "http://schemas.dmtf.org/ovf/envelope/1",
226
- "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
227
- "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema" }
239
+ if version == '1.0'
240
+ { "xmlns" => "http://www.vmware.com/vcloud/v1",
241
+ "xmlns:ovf" => "http://schemas.dmtf.org/ovf/envelope/1",
242
+ "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
243
+ "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema" }
244
+ else
245
+ { 'xmlns' => "http://www.vmware.com/vcloud/v1.5",
246
+ "xmlns:ovf" => "http://schemas.dmtf.org/ovf/envelope/1",
247
+ "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
248
+ "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema" }
249
+ end
228
250
  end
229
251
 
230
252
  # If the cookie isn't set, do a get_organizations call to set it
@@ -242,8 +264,23 @@ module Fog
242
264
  end
243
265
  end
244
266
 
245
- private
246
267
 
268
+ def basic_request_params(uri,*args)
269
+ {
270
+ :expects => args[0] || 200,
271
+ :method => args[1] || 'GET',
272
+ :headers => args[2] ? args[2].inspect : {},
273
+ :body => args[3] ? args[3] : '',
274
+ :parse => true,
275
+ :uri => uri
276
+ }
277
+ end
278
+
279
+ def base_path_url
280
+ "#{@scheme}://#{@host}:#{@port}#{@base_path}"
281
+ end
282
+
283
+ private
247
284
  def ensure_parsed(uri)
248
285
  if uri.is_a?(String)
249
286
  URI.parse(uri)
@@ -280,6 +317,7 @@ module Fog
280
317
 
281
318
  # Set headers to an empty hash if none are set.
282
319
  headers = params[:headers] || {}
320
+ headers['Accept'] = 'application/*+xml;version=1.5' if version == '1.5'
283
321
 
284
322
  # Add our auth cookie to the headers
285
323
  if @cookie
@@ -296,7 +334,6 @@ module Fog
296
334
  })
297
335
 
298
336
  # Parse the response body into a hash
299
- #puts response.body
300
337
  unless response.body.empty?
301
338
  if params[:parse]
302
339
  document = Fog::ToHashDocument.new
@@ -311,7 +348,25 @@ module Fog
311
348
  end
312
349
 
313
350
  end
351
+ def self.item_requests(*types)
352
+ types.each{|t| item_request(t) }
353
+ end
354
+ def self.item_request(type)
355
+ Fog::Vcloud::Compute::Real.class_eval <<-EOS, __FILE__,__LINE__
356
+ def get_#{type}(uri)
357
+ Fog::Vcloud::Compute::#{type.to_s.capitalize}.new(
358
+ self.request(basic_request_params(uri)).body.merge(
359
+ :connection => self,
360
+ :collection => Fog::Vcloud::Compute::#{type.to_s.capitalize}s.new(
361
+ :connection => self
362
+ )
363
+ )
364
+ )
365
+ end
366
+ EOS
367
+ end
314
368
 
369
+ item_requests :organization, :vdc, :network, :vapp, :server, :catalog, :task
315
370
  end
316
371
  end
317
372
  end
@@ -4,7 +4,7 @@ module Fog
4
4
  class Catalog < Fog::Vcloud::Model
5
5
 
6
6
  identity :href, :aliases => :Href
7
-
7
+ attribute :links, :aliases => :Link, :type => :array
8
8
  ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
9
9
 
10
10
  attribute :type