fog 1.1.2 → 1.2.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 (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
@@ -9,18 +9,22 @@ module Fog
9
9
 
10
10
  model Fog::Compute::Vmfusion::Server
11
11
 
12
- def all(filter=nil)
12
+ def all(filter = nil)
13
13
 
14
- data=[]
14
+ data = []
15
15
 
16
- filter={} if filter.nil?
16
+ states = ::Fission::VM.all_with_status.data
17
+
18
+ filter = {} if filter.nil?
17
19
  unless filter.has_key?(:name)
18
- vms=::Fission::VM.all
20
+ vms=::Fission::VM.all.data
19
21
  vms.each do |vm|
20
- data << { :raw => vm}
22
+ data << { :raw => { :fission => vm,
23
+ :state => states[vm.name] } }
21
24
  end
22
25
  else
23
- data << { :raw => ::Fission::VM.new(filter[:name])}
26
+ data << { :raw => { :fission => ::Fission::VM.new(filter[:name]),
27
+ :state => states[filter[:name]] } }
24
28
  end
25
29
 
26
30
  load(data)
@@ -28,7 +32,7 @@ module Fog
28
32
  end
29
33
 
30
34
  def get(name)
31
- self.all(:name =>name).first
35
+ self.all(:name => name).first
32
36
  end
33
37
 
34
38
  end
@@ -85,7 +85,7 @@ module Fog
85
85
  @scheme = options[:scheme] || 'https'
86
86
  @persistent = options[:persistent] || false
87
87
 
88
- Excon.ssl_verify_peer = false
88
+ @connection_options[:ssl_verify_peer] = false
89
89
 
90
90
  @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
91
91
  end
@@ -20,8 +20,13 @@ module Fog
20
20
  request :vm_power_on
21
21
  request :vm_reboot
22
22
  request :vm_clone
23
+ request :vm_create
23
24
  request :vm_destroy
25
+ request :vm_migrate
24
26
  request :datacenters
27
+ request :vm_reconfig_hardware
28
+ request :vm_reconfig_memory
29
+ request :vm_reconfig_cpus
25
30
 
26
31
  module Shared
27
32
 
@@ -35,6 +35,18 @@ module Fog
35
35
  attribute :mo_ref
36
36
  attribute :path
37
37
 
38
+ def vm_reconfig_memory(options = {})
39
+ requires :instance_uuid, :memory
40
+ connection.vm_reconfig_memory('instance_uuid' => instance_uuid, 'memory' => memory)
41
+ end
42
+ def vm_reconfig_cpus(options = {})
43
+ requires :instance_uuid, :cpus
44
+ connection.vm_reconfig_cpus('instance_uuid' => instance_uuid, 'cpus' => cpus)
45
+ end
46
+ def vm_reconfig_hardware(options = {})
47
+ requires :instance_uuid, :hardware_spec
48
+ connection.vm_reconfig_hardware('instance_uuid' => instance_uuid, 'hardware_spec' => hardware_spec)
49
+ end
38
50
  def start(options = {})
39
51
  requires :instance_uuid
40
52
  connection.vm_power_on('instance_uuid' => instance_uuid)
@@ -57,6 +69,19 @@ module Fog
57
69
  connection.vm_destroy('instance_uuid' => instance_uuid)
58
70
  end
59
71
 
72
+ def migrate(options = {})
73
+ options = { :priority => 'defaultPriority' }.merge(options)
74
+ requires :instance_uuid
75
+ connection.vm_migrate('instance_uuid' => instance_uuid, 'priority' => options[:priority])
76
+ end
77
+
78
+ def create(options ={})
79
+ requires :name, :path
80
+ new_vm = self.class.new(create_results['vm_attributes'])
81
+ new_vm.collection = self.collection
82
+ new_vm.connection = self.connection
83
+ new_vm
84
+ end
60
85
  def clone(options = {})
61
86
  requires :name, :path
62
87
  # Convert symbols to strings
@@ -26,7 +26,7 @@ module Fog
26
26
  # If the first path element contains "vm" this denotes the vmFolder
27
27
  # and needs to be shifted out since each DC contains only one
28
28
  # vmFolder
29
- path_elements.shift if path_elements[0] = 'vm'
29
+ path_elements.shift if path_elements[0] == 'vm'
30
30
  # Make sure @datacenters is populated (the keys are DataCenter instances)
31
31
  self.datacenters.include? dc_name or raise ArgumentError, "Could not find a Datacenter named #{dc_name}"
32
32
  # Get the datacenter managed object
@@ -5,7 +5,11 @@ module Fog
5
5
  module Shared
6
6
  private
7
7
  def vm_clone_check_options(options)
8
- options = { 'force' => false }.merge(options)
8
+ default_options = {
9
+ 'force' => false,
10
+ 'linked_clone' => false,
11
+ }
12
+ options = default_options.merge(options)
9
13
  required_options = %w{ path name }
10
14
  required_options.each do |param|
11
15
  raise ArgumentError, "#{required_options.join(', ')} are required" unless options.has_key? param
@@ -41,7 +45,7 @@ module Fog
41
45
  template_dc = path_elements.shift
42
46
  # If the first path element contains "vm" this denotes the vmFolder
43
47
  # and needs to be shifted out
44
- path_elements.shift if path_elements[0] = 'vm'
48
+ path_elements.shift if path_elements[0] == 'vm'
45
49
  # The template name. The remaining elements are the folders in the
46
50
  # datacenter.
47
51
  template_name = path_elements.pop
@@ -70,16 +74,47 @@ module Fog
70
74
  esx_host = vm_mob_ref.collect!('runtime.host')['runtime.host']
71
75
  # The parent of the ESX host itself is a ComputeResource which has a resourcePool
72
76
  resource_pool = esx_host.parent.resourcePool
73
-
74
- # Next, create a Relocation Spec instance
75
- relocation_spec = RbVmomi::VIM.VirtualMachineRelocateSpec(:pool => resource_pool,
76
- :transform => options['transform'] || 'sparse')
77
+ relocation_spec=nil
78
+ if ( options['linked_clone'] )
79
+ # cribbed heavily from the rbvmomi clone_vm.rb
80
+ # this chunk of code reconfigures the disk of the clone source to be read only,
81
+ # and then creates a delta disk on top of that, this is required by the API in order to create
82
+ # linked clondes
83
+ disks = vm_mob_ref.config.hardware.device.select do |vm_device|
84
+ vm_device.class == RbVmomi::VIM::VirtualDisk
85
+ end
86
+ disks.select{|vm_device| vm_device.backing.parent == nil}.each do |disk|
87
+ disk_spec = {
88
+ :deviceChange => [
89
+ {
90
+ :operation => :remove,
91
+ :device => disk
92
+ },
93
+ {
94
+ :operation => :add,
95
+ :fileOperation => :create,
96
+ :device => disk.dup.tap{|disk_backing|
97
+ disk_backing.backing = disk_backing.backing.dup;
98
+ disk_backing.backing.fileName = "[#{disk.backing.datastore.name}]";
99
+ disk_backing.backing.parent = disk.backing
100
+ }
101
+ },
102
+ ]
103
+ }
104
+ vm_mob_ref.ReconfigVM_Task(:spec => disk_spec).wait_for_completion
105
+ end
106
+ # Next, create a Relocation Spec instance
107
+ relocation_spec = RbVmomi::VIM.VirtualMachineRelocateSpec(:pool => resource_pool,
108
+ :diskMoveType => :moveChildMostDiskBacking)
109
+ else
110
+ relocation_spec = RbVmomi::VIM.VirtualMachineRelocateSpec(:pool => resource_pool,
111
+ :transform => options['transform'] || 'sparse')
112
+ end
77
113
  # And the clone specification
78
114
  clone_spec = RbVmomi::VIM.VirtualMachineCloneSpec(:location => relocation_spec,
79
115
  :powerOn => options['power_on'] || true,
80
116
  :template => false)
81
117
  task = vm_mob_ref.CloneVM_Task(:folder => vm_mob_ref.parent, :name => options['name'], :spec => clone_spec)
82
-
83
118
  # Waiting for the VM to complete allows us to get the VirtulMachine
84
119
  # object of the new machine when it's done. It is HIGHLY recommended
85
120
  # to set 'wait' => true if your app wants to wait. Otherwise, you're
@@ -126,7 +161,7 @@ module Fog
126
161
  end
127
162
  {
128
163
  'vm_ref' => 'vm-123',
129
- 'task_ref' => 'task-1234'
164
+ 'task_ref' => 'task-1234',
130
165
  }
131
166
  end
132
167
 
@@ -0,0 +1,97 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+
5
+ module Shared
6
+ private
7
+ def vm_create_check_options(options)
8
+ options = { 'force' => false }.merge(options)
9
+ required_options = %w{ path name cluster }
10
+ required_options.each do |param|
11
+ raise ArgumentError, "#{required_options.join(', ')} are required" unless options.has_key? param
12
+ end
13
+ # The tap removes the leading empty string
14
+ path_elements = options['path'].split('/').tap { |o| o.shift }
15
+ first_folder = path_elements.shift
16
+ if first_folder != 'Datacenters' then
17
+ raise ArgumentError, "vm_create path option must start with /Datacenters. Got: #{options['path']}"
18
+ end
19
+ dc_name = path_elements.shift
20
+ if not self.datacenters.include? dc_name then
21
+ raise ArgumentError, "Datacenter #{dc_name} does not exist, only datacenters #{self.datacenters.join(",")} are accessible."
22
+ end
23
+ options
24
+ end
25
+ end
26
+
27
+ class Real
28
+ include Shared
29
+ def vm_create(options = {})
30
+ # Option handling
31
+ options = vm_create_check_options(options)
32
+ path_elements = options['path'].split('/').tap { |ary| ary.shift 2 }
33
+ dc_name = path_elements.shift
34
+ vm_cfg = {
35
+ :name => options['name'],
36
+ :guestId => options['guest_id'] ? options['guest_id'] : 'otherGuest',
37
+ :files => { :vmPathName => "[#{options['datastore']}]" },
38
+ :numCPUs => options['num_cpus'] ? options['num_cpus'] : 1 ,
39
+ :memoryMB => options['memory'] ? options['memory'] : 512,
40
+ :memoryHotAddEnabled => options['memory_hot_add_enabled'] ? options['memory_hot_add_enabled'] : 0,
41
+ :cpuHotAddEnabled => options['cpu_hot_add_enabled'] ? options['cpu_hot_add_enabled'] : 0,
42
+ :deviceChange => options['device_array'].class == Array ? options['device_array'] : nil,
43
+ :extraConfig => options['extra_config'].class == Array ? options['extra_config'] : nil,
44
+ }
45
+ self.datacenters
46
+ dc = @datacenters[dc_name]
47
+ vm_folder = dc.vmFolder
48
+ folder = path_elements.inject(vm_folder) do |current_folder, sub_folder_name|
49
+ sub_folder = current_folder.find(sub_folder_name, RbVmomi::VIM::Folder)
50
+ raise ArgumentError, "Could not descend into #{sub_folder_name}. Please check your path." unless sub_folder
51
+ sub_folder
52
+ end
53
+ clusters = dc.hostFolder.children
54
+ build_cluster=''
55
+ clusters.each { |my_cluster|
56
+ if "#{my_cluster.name}" == "#{options['cluster']}"
57
+ build_cluster=my_cluster
58
+ end
59
+ }
60
+ resource_pool = build_cluster.resourcePool
61
+ task=folder.CreateVM_Task(:config => vm_cfg, :pool => resource_pool)
62
+ if options['wait'] then
63
+ new_vm = task.wait_for_completion
64
+ else
65
+ tries = 0
66
+ new_vm = begin
67
+ folder.find(options['name'], RbVmomi::VIM::VirtualMachine) or raise Fog::Vsphere::Errors::NotFound
68
+ rescue Fog::Vsphere::Errors::NotFound
69
+ tries += 1
70
+ if tries <= 10 then
71
+ sleep 15
72
+ retry
73
+ end
74
+ nil
75
+ end
76
+ end
77
+ {
78
+ 'vm_ref' => new_vm ? new_vm._ref : nil,
79
+ 'vm_attributes' => new_vm ? convert_vm_mob_ref_to_attr_hash(new_vm) : {},
80
+ 'task_ref' => task._ref
81
+ }
82
+ end
83
+ end
84
+ class Mock
85
+ include Shared
86
+ def vm_create(options = {})
87
+ # Option handling
88
+ options = vm_create_check_options(options)
89
+ {
90
+ 'vm_ref' => 'vm-123',
91
+ 'task_ref' => 'task-1234'
92
+ }
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,37 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+ class Real
5
+
6
+ def vm_migrate(options = {})
7
+ #priority is the only required option, and it has a sane default option.
8
+ priority = options['priority'].nil? ? 'defaultPriority' : options["priority"]
9
+ raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
10
+
11
+ # Find the VM Object
12
+ search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
13
+ vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
14
+
15
+ unless vm_mob_ref.kind_of? RbVmomi::VIM::VirtualMachine
16
+ raise Fog::Vsphere::Errors::NotFound,
17
+ "Could not find VirtualMachine with instance uuid #{options['instance_uuid']}"
18
+ end
19
+ task = vm_mob_ref.MigrateVM_Task(:pool => options['pool'], :host => options['host'], :priority => "#{priority}", :state => options['state'] )
20
+ task.wait_for_completion
21
+ { 'task_state' => task.info.state }
22
+ end
23
+
24
+ end
25
+
26
+ class Mock
27
+
28
+ def vm_migrate(options = {})
29
+ priority = options['priority'].nil? ? 'defaultPriority' : options["priority"]
30
+ raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
31
+ { 'task_state' => 'success' }
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+ class Real
5
+ def vm_reconfig_cpus(options = {})
6
+ raise ArgumentError, "cpus is a required parameter" unless options.has_key? 'cpus'
7
+ raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
8
+ hardware_spec={'numCPUs' => options['cpus']}
9
+ vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
10
+ end
11
+ end
12
+
13
+ class Mock
14
+ def vm_reconfig_cpus(options = {})
15
+ raise ArgumentError, "cpus is a required parameter" unless options.has_key? 'cpus'
16
+ raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
17
+ hardware_spec={'numCPUs' => options['cpus']}
18
+ vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+ class Real
5
+ def vm_reconfig_hardware(options = {})
6
+ raise ArgumentError, "hardware_spec is a required parameter" unless options.has_key? 'hardware_spec'
7
+ raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
8
+ search_filter = { :uuid => options['instance_uuid'], 'vmSearch' => true, 'instanceUuid' => true }
9
+ vm_mob_ref = @connection.searchIndex.FindAllByUuid(search_filter).first
10
+ task = vm_mob_ref.ReconfigVM_Task(:spec => RbVmomi::VIM.VirtualMachineConfigSpec(options['hardware_spec']))
11
+ task.wait_for_completion
12
+ { 'task_state' => task.info.state }
13
+ end
14
+ end
15
+
16
+ class Mock
17
+ def vm_reconfig_hardware(options = {})
18
+ raise ArgumentError, "hardware_spec is a required parameter" unless options.has_key? 'hardware_spec'
19
+ raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
20
+ { 'task_state' => 'success' }
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class Vsphere
4
+ class Real
5
+ def vm_reconfig_memory(options = {})
6
+ raise ArgumentError, "memory is a required parameter" unless options.has_key? 'memory'
7
+ raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
8
+ hardware_spec={'memoryMB' => options['memory']}
9
+ vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
10
+ end
11
+ end
12
+
13
+ class Mock
14
+ def vm_reconfig_memory(options = {})
15
+ raise ArgumentError, "memory is a required parameter" unless options.has_key? 'memory'
16
+ raise ArgumentError, "instance_uuid is a required parameter" unless options.has_key? 'instance_uuid'
17
+ hardware_spec={'memoryMB' => options['memory']}
18
+ vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -44,19 +44,21 @@ module Fog
44
44
  options[:notes] = description if description
45
45
  options[:priority] = priority if priority
46
46
  options[:ttl] = ttl if ttl
47
- data = unless identity
48
- connection.create_host(@zone.id, type, value, options)
49
- else
47
+
48
+ if identity
50
49
  options[:host_type] = type
51
50
  options[:data] = value
52
51
  connection.update_host(identity, options)
52
+ else
53
+ data = connection.create_host(@zone.id, type, value, options)
54
+ merge_attributes(data.body)
53
55
  end
54
- merge_attributes(data.body)
56
+
55
57
  true
56
58
  end
57
59
 
58
60
  private
59
-
61
+
60
62
  def zone=(new_zone)
61
63
  @zone = new_zone
62
64
  end
@@ -11,8 +11,10 @@ module Fog
11
11
 
12
12
  def end_element(name)
13
13
  case name
14
- when 'id', 'priority', 'ttl', 'zone-id'
14
+ when 'id', 'zone-id'
15
15
  @response[name] = value.to_i
16
+ when 'priority', 'ttl'
17
+ @response[name] = value.to_i if value
16
18
  when 'data', 'fqdn', 'host-type', 'hostname', 'notes', 'zone-id', 'created-at', 'updated-at'
17
19
  @response[name] = value
18
20
  end
@@ -12,8 +12,10 @@ module Fog
12
12
 
13
13
  def end_element(name)
14
14
  case name
15
- when 'id', 'priority', 'ttl', 'zone-id'
15
+ when 'id', 'zone-id'
16
16
  @host[name] = value.to_i
17
+ when 'priority', 'ttl'
18
+ @host[name] = value.to_i if value
17
19
  when 'data', 'fqdn', 'host-type', 'hostname', 'notes', 'zone-id', 'created-at', 'updated-at'
18
20
  @host[name] = value
19
21
  when 'host'