fog 1.0.0 → 1.5.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 (2134) hide show
  1. data/.document +1 -1
  2. data/.gitignore +7 -0
  3. data/.irbrc +82 -0
  4. data/README.md +152 -0
  5. data/Rakefile +15 -26
  6. data/bin/fog +1 -3
  7. data/changelog.txt +1441 -2
  8. data/docs/_layouts/default.html +15 -15
  9. data/docs/about/contributing.markdown +1 -1
  10. data/docs/about/getting_started.markdown +28 -3
  11. data/docs/about/users.markdown +1 -0
  12. data/docs/cdn/index.markdown +2 -2
  13. data/docs/compute/index.markdown +17 -3
  14. data/docs/dns/index.markdown +6 -6
  15. data/docs/index.markdown +4 -12
  16. data/docs/public/css/fog.css +14 -1
  17. data/docs/public/js/libs/dd_belatedpng.js +289 -13
  18. data/docs/public/js/libs/dd_belatedpng.min.js +13 -0
  19. data/docs/public/js/libs/modernizr-1.6.js +892 -0
  20. data/docs/public/js/profiling/yahoo-profiling.js +1028 -0
  21. data/docs/storage/index.markdown +6 -6
  22. data/fog.gemspec +17 -7
  23. data/lib/fog/aws/auto_scaling.rb +31 -26
  24. data/lib/fog/aws/beanstalk.rb +152 -0
  25. data/lib/fog/aws/cdn.rb +25 -9
  26. data/lib/fog/aws/cloud_formation.rb +20 -21
  27. data/lib/fog/aws/cloud_watch.rb +62 -23
  28. data/lib/fog/aws/compute.rb +127 -45
  29. data/lib/fog/aws/credential_fetcher.rb +64 -0
  30. data/lib/fog/aws/dns.rb +32 -12
  31. data/lib/fog/aws/dynamodb.rb +176 -0
  32. data/lib/fog/aws/elasticache.rb +83 -18
  33. data/lib/fog/aws/elb/policy_types.rb +466 -0
  34. data/lib/fog/aws/elb.rb +65 -33
  35. data/lib/fog/aws/emr.rb +134 -0
  36. data/lib/fog/aws/iam.rb +41 -3
  37. data/lib/fog/aws/models/auto_scaling/activity.rb +1 -1
  38. data/lib/fog/aws/models/auto_scaling/configuration.rb +3 -1
  39. data/lib/fog/aws/models/auto_scaling/group.rb +12 -11
  40. data/lib/fog/aws/models/auto_scaling/policies.rb +33 -0
  41. data/lib/fog/aws/models/auto_scaling/policy.rb +46 -0
  42. data/lib/fog/aws/models/beanstalk/application.rb +62 -0
  43. data/lib/fog/aws/models/beanstalk/applications.rb +25 -0
  44. data/lib/fog/aws/models/beanstalk/environment.rb +145 -0
  45. data/lib/fog/aws/models/beanstalk/environments.rb +29 -0
  46. data/lib/fog/aws/models/beanstalk/event.rb +20 -0
  47. data/lib/fog/aws/models/beanstalk/events.rb +19 -0
  48. data/lib/fog/aws/models/beanstalk/template.rb +78 -0
  49. data/lib/fog/aws/models/beanstalk/templates.rb +70 -0
  50. data/lib/fog/aws/models/beanstalk/version.rb +79 -0
  51. data/lib/fog/aws/models/beanstalk/versions.rb +31 -0
  52. data/lib/fog/aws/models/cloud_watch/alarm.rb +60 -0
  53. data/lib/fog/aws/models/cloud_watch/alarm_data.rb +39 -0
  54. data/lib/fog/aws/models/cloud_watch/alarm_datum.rb +66 -0
  55. data/lib/fog/aws/models/cloud_watch/alarm_histories.rb +18 -0
  56. data/lib/fog/aws/models/cloud_watch/alarm_history.rb +16 -0
  57. data/lib/fog/aws/models/cloud_watch/alarms.rb +47 -0
  58. data/lib/fog/aws/models/cloud_watch/metric_statistic.rb +1 -2
  59. data/lib/fog/aws/models/compute/address.rb +12 -5
  60. data/lib/fog/aws/models/compute/addresses.rb +3 -3
  61. data/lib/fog/aws/models/compute/dhcp_option.rb +68 -0
  62. data/lib/fog/aws/models/compute/dhcp_options.rb +91 -0
  63. data/lib/fog/aws/models/compute/flavors.rb +11 -2
  64. data/lib/fog/aws/models/compute/internet_gateway.rb +81 -0
  65. data/lib/fog/aws/models/compute/internet_gateways.rb +91 -0
  66. data/lib/fog/aws/models/compute/key_pairs.rb +3 -3
  67. data/lib/fog/aws/models/compute/network_interface.rb +70 -0
  68. data/lib/fog/aws/models/compute/network_interfaces.rb +136 -0
  69. data/lib/fog/aws/models/compute/security_group.rb +85 -21
  70. data/lib/fog/aws/models/compute/security_groups.rb +31 -6
  71. data/lib/fog/aws/models/compute/server.rb +25 -21
  72. data/lib/fog/aws/models/compute/servers.rb +4 -4
  73. data/lib/fog/aws/models/compute/snapshots.rb +1 -1
  74. data/lib/fog/aws/models/compute/spot_request.rb +41 -4
  75. data/lib/fog/aws/models/compute/spot_requests.rb +45 -1
  76. data/lib/fog/aws/models/compute/subnet.rb +57 -0
  77. data/lib/fog/aws/models/compute/subnets.rb +99 -0
  78. data/lib/fog/aws/models/compute/volume.rb +13 -0
  79. data/lib/fog/aws/models/compute/volumes.rb +4 -4
  80. data/lib/fog/aws/models/compute/vpc.rb +63 -0
  81. data/lib/fog/aws/models/compute/vpcs.rb +93 -0
  82. data/lib/fog/aws/models/dns/record.rb +62 -23
  83. data/lib/fog/aws/models/dns/records.rb +89 -12
  84. data/lib/fog/aws/models/dns/zones.rb +1 -1
  85. data/lib/fog/aws/models/elb/listener.rb +9 -7
  86. data/lib/fog/aws/models/elb/load_balancer.rb +44 -4
  87. data/lib/fog/aws/models/elb/load_balancers.rb +14 -4
  88. data/lib/fog/aws/models/iam/access_key.rb +38 -0
  89. data/lib/fog/aws/models/iam/access_keys.rb +36 -0
  90. data/lib/fog/aws/models/iam/policies.rb +44 -0
  91. data/lib/fog/aws/models/iam/policy.rb +39 -0
  92. data/lib/fog/aws/models/iam/user.rb +40 -0
  93. data/lib/fog/aws/models/iam/users.rb +49 -0
  94. data/lib/fog/aws/models/storage/directory.rb +50 -22
  95. data/lib/fog/aws/models/storage/file.rb +62 -10
  96. data/lib/fog/aws/models/storage/files.rb +9 -4
  97. data/lib/fog/aws/models/storage/version.rb +36 -0
  98. data/lib/fog/aws/models/storage/versions.rb +38 -0
  99. data/lib/fog/aws/parsers/auto_scaling/describe_policies.rb +7 -5
  100. data/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb +3 -3
  101. data/lib/fog/aws/parsers/auto_scaling/put_notification_configuration.rb +27 -0
  102. data/lib/fog/aws/parsers/beanstalk/check_dns_availability.rb +19 -0
  103. data/lib/fog/aws/parsers/beanstalk/create_application.rb +24 -0
  104. data/lib/fog/aws/parsers/beanstalk/create_application_version.rb +26 -0
  105. data/lib/fog/aws/parsers/beanstalk/create_configuration_template.rb +29 -0
  106. data/lib/fog/aws/parsers/beanstalk/create_environment.rb +37 -0
  107. data/lib/fog/aws/parsers/beanstalk/create_storage_location.rb +18 -0
  108. data/lib/fog/aws/parsers/beanstalk/describe_application_versions.rb +26 -0
  109. data/lib/fog/aws/parsers/beanstalk/describe_applications.rb +24 -0
  110. data/lib/fog/aws/parsers/beanstalk/describe_configuration_options.rb +32 -0
  111. data/lib/fog/aws/parsers/beanstalk/describe_configuration_settings.rb +30 -0
  112. data/lib/fog/aws/parsers/beanstalk/describe_environment_resources.rb +26 -0
  113. data/lib/fog/aws/parsers/beanstalk/describe_environments.rb +38 -0
  114. data/lib/fog/aws/parsers/beanstalk/describe_events.rb +27 -0
  115. data/lib/fog/aws/parsers/beanstalk/empty.rb +27 -0
  116. data/lib/fog/aws/parsers/beanstalk/list_available_solution_stacks.rb +21 -0
  117. data/lib/fog/aws/parsers/beanstalk/parser.rb +93 -0
  118. data/lib/fog/aws/parsers/beanstalk/retrieve_environment_info.rb +22 -0
  119. data/lib/fog/aws/parsers/beanstalk/terminate_environment.rb +37 -0
  120. data/lib/fog/aws/parsers/beanstalk/update_application.rb +24 -0
  121. data/lib/fog/aws/parsers/beanstalk/update_application_version.rb +26 -0
  122. data/lib/fog/aws/parsers/beanstalk/update_configuration_template.rb +29 -0
  123. data/lib/fog/aws/parsers/beanstalk/update_environment.rb +37 -0
  124. data/lib/fog/aws/parsers/beanstalk/validate_configuration_settings.rb +22 -0
  125. data/lib/fog/aws/parsers/cdn/get_invalidation_list.rb +0 -1
  126. data/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb +12 -3
  127. data/lib/fog/aws/parsers/cloud_formation/update_stack.rb +19 -0
  128. data/lib/fog/aws/parsers/cloud_watch/delete_alarms.rb +26 -0
  129. data/lib/fog/aws/parsers/cloud_watch/describe_alarm_history.rb +40 -0
  130. data/lib/fog/aws/parsers/cloud_watch/describe_alarms.rb +73 -0
  131. data/lib/fog/aws/parsers/cloud_watch/describe_alarms_for_metric.rb +71 -0
  132. data/lib/fog/aws/parsers/cloud_watch/disable_alarm_actions.rb +26 -0
  133. data/lib/fog/aws/parsers/cloud_watch/enable_alarm_actions.rb +26 -0
  134. data/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb +1 -0
  135. data/lib/fog/aws/parsers/cloud_watch/put_metric_alarm.rb +26 -0
  136. data/lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb +26 -0
  137. data/lib/fog/aws/parsers/compute/allocate_address.rb +1 -1
  138. data/lib/fog/aws/parsers/compute/associate_address.rb +25 -0
  139. data/lib/fog/aws/parsers/compute/associate_dhcp_options.rb +24 -0
  140. data/lib/fog/aws/parsers/compute/attach_internet_gateway.rb +24 -0
  141. data/lib/fog/aws/parsers/compute/attach_network_interface.rb +18 -0
  142. data/lib/fog/aws/parsers/compute/create_dhcp_options.rb +75 -0
  143. data/lib/fog/aws/parsers/compute/create_internet_gateway.rb +65 -0
  144. data/lib/fog/aws/parsers/compute/create_network_interface.rb +28 -0
  145. data/lib/fog/aws/parsers/compute/create_security_group.rb +24 -0
  146. data/lib/fog/aws/parsers/compute/create_subnet.rb +51 -0
  147. data/lib/fog/aws/parsers/compute/create_vpc.rb +51 -0
  148. data/lib/fog/aws/parsers/compute/delete_dhcp_options.rb +24 -0
  149. data/lib/fog/aws/parsers/compute/delete_internet_gateway.rb +24 -0
  150. data/lib/fog/aws/parsers/compute/delete_network_interface.rb +24 -0
  151. data/lib/fog/aws/parsers/compute/delete_subnet.rb +24 -0
  152. data/lib/fog/aws/parsers/compute/delete_vpc.rb +24 -0
  153. data/lib/fog/aws/parsers/compute/describe_addresses.rb +1 -1
  154. data/lib/fog/aws/parsers/compute/describe_dhcp_options.rb +75 -0
  155. data/lib/fog/aws/parsers/compute/describe_images.rb +20 -13
  156. data/lib/fog/aws/parsers/compute/describe_instance_status.rb +67 -0
  157. data/lib/fog/aws/parsers/compute/describe_instances.rb +25 -7
  158. data/lib/fog/aws/parsers/compute/describe_internet_gateways.rb +65 -0
  159. data/lib/fog/aws/parsers/compute/describe_network_interface_attribute.rb +79 -0
  160. data/lib/fog/aws/parsers/compute/describe_network_interfaces.rb +43 -0
  161. data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +2 -2
  162. data/lib/fog/aws/parsers/compute/describe_security_groups.rb +4 -4
  163. data/lib/fog/aws/parsers/compute/describe_subnets.rb +49 -0
  164. data/lib/fog/aws/parsers/compute/describe_volume_status.rb +87 -0
  165. data/lib/fog/aws/parsers/compute/describe_volumes.rb +0 -2
  166. data/lib/fog/aws/parsers/compute/describe_vpcs.rb +49 -0
  167. data/lib/fog/aws/parsers/compute/detach_internet_gateway.rb +24 -0
  168. data/lib/fog/aws/parsers/compute/detach_network_interface.rb +24 -0
  169. data/lib/fog/aws/parsers/compute/network_interface_parser.rb +89 -0
  170. data/lib/fog/aws/parsers/compute/spot_instance_requests.rb +2 -2
  171. data/lib/fog/aws/parsers/dns/list_resource_record_sets.rb +16 -8
  172. data/lib/fog/aws/parsers/elb/apply_security_groups_to_load_balancer.rb +26 -0
  173. data/lib/fog/aws/parsers/elb/attach_load_balancer_to_subnets.rb +26 -0
  174. data/lib/fog/aws/parsers/elb/describe_load_balancer_policies.rb +64 -0
  175. data/lib/fog/aws/parsers/elb/describe_load_balancer_policy_types.rb +70 -0
  176. data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +19 -3
  177. data/lib/fog/aws/parsers/elb/detach_load_balancer_from_subnets.rb +26 -0
  178. data/lib/fog/aws/parsers/emr/add_instance_groups.rb +28 -0
  179. data/lib/fog/aws/parsers/emr/add_job_flow_steps.rb +17 -0
  180. data/lib/fog/aws/parsers/emr/describe_job_flows.rb +140 -0
  181. data/lib/fog/aws/parsers/emr/modify_instance_groups.rb +17 -0
  182. data/lib/fog/aws/parsers/emr/run_job_flow.rb +19 -0
  183. data/lib/fog/aws/parsers/emr/set_termination_protection.rb +17 -0
  184. data/lib/fog/aws/parsers/emr/terminate_job_flows.rb +17 -0
  185. data/lib/fog/aws/parsers/iam/base_instance_profile.rb +79 -0
  186. data/lib/fog/aws/parsers/iam/get_role_policy.rb +32 -0
  187. data/lib/fog/aws/parsers/iam/get_user_policy.rb +9 -3
  188. data/lib/fog/aws/parsers/iam/instance_profile.rb +34 -0
  189. data/lib/fog/aws/parsers/iam/list_instance_profiles.rb +34 -0
  190. data/lib/fog/aws/parsers/iam/list_roles.rb +31 -0
  191. data/lib/fog/aws/parsers/iam/role_parser.rb +53 -0
  192. data/lib/fog/aws/parsers/iam/single_role.rb +29 -0
  193. data/lib/fog/aws/parsers/sns/confirm_subscription.rb +1 -1
  194. data/lib/fog/aws/parsers/sns/create_topic.rb +1 -1
  195. data/lib/fog/aws/parsers/sns/list_subscriptions.rb +2 -2
  196. data/lib/fog/aws/parsers/sns/list_topics.rb +1 -1
  197. data/lib/fog/aws/parsers/sns/subscribe.rb +1 -1
  198. data/lib/fog/aws/parsers/sqs/receive_message.rb +1 -1
  199. data/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb +32 -0
  200. data/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb +1 -1
  201. data/lib/fog/aws/parsers/storage/get_bucket_versioning.rb +1 -1
  202. data/lib/fog/aws/parsers/sts/get_session_token.rb +31 -0
  203. data/lib/fog/aws/rds.rb +69 -22
  204. data/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb +8 -0
  205. data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +3 -3
  206. data/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb +10 -2
  207. data/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb +10 -1
  208. data/lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb +47 -0
  209. data/lib/fog/aws/requests/auto_scaling/delete_policy.rb +10 -1
  210. data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb +0 -1
  211. data/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb +16 -7
  212. data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +13 -1
  213. data/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb +5 -0
  214. data/lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb +51 -0
  215. data/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb +20 -1
  216. data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +13 -3
  217. data/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb +1 -1
  218. data/lib/fog/aws/requests/beanstalk/check_dns_availability.rb +27 -0
  219. data/lib/fog/aws/requests/beanstalk/create_application.rb +29 -0
  220. data/lib/fog/aws/requests/beanstalk/create_application_version.rb +41 -0
  221. data/lib/fog/aws/requests/beanstalk/create_configuration_template.rb +47 -0
  222. data/lib/fog/aws/requests/beanstalk/create_environment.rb +50 -0
  223. data/lib/fog/aws/requests/beanstalk/create_storage_location.rb +27 -0
  224. data/lib/fog/aws/requests/beanstalk/delete_application.rb +29 -0
  225. data/lib/fog/aws/requests/beanstalk/delete_application_version.rb +36 -0
  226. data/lib/fog/aws/requests/beanstalk/delete_configuration_template.rb +34 -0
  227. data/lib/fog/aws/requests/beanstalk/delete_environment_configuration.rb +34 -0
  228. data/lib/fog/aws/requests/beanstalk/describe_application_versions.rb +34 -0
  229. data/lib/fog/aws/requests/beanstalk/describe_applications.rb +30 -0
  230. data/lib/fog/aws/requests/beanstalk/describe_configuration_options.rb +40 -0
  231. data/lib/fog/aws/requests/beanstalk/describe_configuration_settings.rb +31 -0
  232. data/lib/fog/aws/requests/beanstalk/describe_environment_resources.rb +29 -0
  233. data/lib/fog/aws/requests/beanstalk/describe_environments.rb +40 -0
  234. data/lib/fog/aws/requests/beanstalk/describe_events.rb +29 -0
  235. data/lib/fog/aws/requests/beanstalk/list_available_solution_stacks.rb +27 -0
  236. data/lib/fog/aws/requests/beanstalk/rebuild_environment.rb +30 -0
  237. data/lib/fog/aws/requests/beanstalk/request_environment_info.rb +29 -0
  238. data/lib/fog/aws/requests/beanstalk/restart_app_server.rb +29 -0
  239. data/lib/fog/aws/requests/beanstalk/retrieve_environment_info.rb +29 -0
  240. data/lib/fog/aws/requests/beanstalk/swap_environment_cnames.rb +29 -0
  241. data/lib/fog/aws/requests/beanstalk/terminate_environment.rb +31 -0
  242. data/lib/fog/aws/requests/beanstalk/update_application.rb +30 -0
  243. data/lib/fog/aws/requests/beanstalk/update_application_version.rb +30 -0
  244. data/lib/fog/aws/requests/beanstalk/update_configuration_template.rb +36 -0
  245. data/lib/fog/aws/requests/beanstalk/update_environment.rb +42 -0
  246. data/lib/fog/aws/requests/beanstalk/validate_configuration_settings.rb +33 -0
  247. data/lib/fog/aws/requests/cloud_formation/create_stack.rb +6 -0
  248. data/lib/fog/aws/requests/cloud_formation/update_stack.rb +62 -0
  249. data/lib/fog/aws/requests/cloud_watch/delete_alarms.rb +48 -0
  250. data/lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb +33 -0
  251. data/lib/fog/aws/requests/cloud_watch/describe_alarms.rb +56 -0
  252. data/lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb +39 -0
  253. data/lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb +30 -0
  254. data/lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb +30 -0
  255. data/lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb +1 -1
  256. data/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb +93 -0
  257. data/lib/fog/aws/requests/cloud_watch/set_alarm_state.rb +31 -0
  258. data/lib/fog/aws/requests/compute/allocate_address.rb +14 -8
  259. data/lib/fog/aws/requests/compute/associate_address.rb +44 -17
  260. data/lib/fog/aws/requests/compute/associate_dhcp_options.rb +57 -0
  261. data/lib/fog/aws/requests/compute/attach_internet_gateway.rb +56 -0
  262. data/lib/fog/aws/requests/compute/attach_network_interface.rb +57 -0
  263. data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +152 -41
  264. data/lib/fog/aws/requests/compute/create_dhcp_options.rb +76 -0
  265. data/lib/fog/aws/requests/compute/create_internet_gateway.rb +52 -0
  266. data/lib/fog/aws/requests/compute/create_network_interface.rb +118 -0
  267. data/lib/fog/aws/requests/compute/create_security_group.rb +11 -5
  268. data/lib/fog/aws/requests/compute/create_snapshot.rb +2 -3
  269. data/lib/fog/aws/requests/compute/create_subnet.rb +80 -0
  270. data/lib/fog/aws/requests/compute/create_tags.rb +8 -5
  271. data/lib/fog/aws/requests/compute/create_volume.rb +0 -1
  272. data/lib/fog/aws/requests/compute/create_vpc.rb +72 -0
  273. data/lib/fog/aws/requests/compute/delete_dhcp_options.rb +51 -0
  274. data/lib/fog/aws/requests/compute/delete_internet_gateway.rb +49 -0
  275. data/lib/fog/aws/requests/compute/delete_network_interface.rb +52 -0
  276. data/lib/fog/aws/requests/compute/delete_security_group.rb +47 -4
  277. data/lib/fog/aws/requests/compute/delete_subnet.rb +50 -0
  278. data/lib/fog/aws/requests/compute/delete_tags.rb +3 -4
  279. data/lib/fog/aws/requests/compute/delete_vpc.rb +53 -0
  280. data/lib/fog/aws/requests/compute/describe_addresses.rb +2 -2
  281. data/lib/fog/aws/requests/compute/describe_availability_zones.rb +9 -2
  282. data/lib/fog/aws/requests/compute/describe_dhcp_options.rb +55 -0
  283. data/lib/fog/aws/requests/compute/describe_images.rb +6 -9
  284. data/lib/fog/aws/requests/compute/describe_instance_status.rb +46 -0
  285. data/lib/fog/aws/requests/compute/describe_instances.rb +23 -9
  286. data/lib/fog/aws/requests/compute/describe_internet_gateways.rb +54 -0
  287. data/lib/fog/aws/requests/compute/describe_key_pairs.rb +2 -2
  288. data/lib/fog/aws/requests/compute/describe_network_interface_attribute.rb +67 -0
  289. data/lib/fog/aws/requests/compute/describe_network_interfaces.rb +85 -0
  290. data/lib/fog/aws/requests/compute/describe_regions.rb +2 -2
  291. data/lib/fog/aws/requests/compute/describe_reserved_instances.rb +1 -1
  292. data/lib/fog/aws/requests/compute/describe_security_groups.rb +7 -3
  293. data/lib/fog/aws/requests/compute/describe_snapshots.rb +7 -5
  294. data/lib/fog/aws/requests/compute/describe_subnets.rb +58 -0
  295. data/lib/fog/aws/requests/compute/describe_volume_status.rb +45 -0
  296. data/lib/fog/aws/requests/compute/describe_volumes.rb +5 -4
  297. data/lib/fog/aws/requests/compute/describe_vpcs.rb +55 -0
  298. data/lib/fog/aws/requests/compute/detach_internet_gateway.rb +56 -0
  299. data/lib/fog/aws/requests/compute/detach_network_interface.rb +49 -0
  300. data/lib/fog/aws/requests/compute/detach_volume.rb +13 -8
  301. data/lib/fog/aws/requests/compute/disassociate_address.rb +7 -5
  302. data/lib/fog/aws/requests/compute/modify_image_attribute.rb +32 -0
  303. data/lib/fog/aws/requests/compute/modify_instance_attribute.rb +1 -1
  304. data/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb +90 -0
  305. data/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb +1 -1
  306. data/lib/fog/aws/requests/compute/register_image.rb +3 -4
  307. data/lib/fog/aws/requests/compute/release_address.rb +21 -5
  308. data/lib/fog/aws/requests/compute/request_spot_instances.rb +5 -1
  309. data/lib/fog/aws/requests/compute/reset_network_interface_attribute.rb +56 -0
  310. data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +43 -33
  311. data/lib/fog/aws/requests/compute/run_instances.rb +7 -4
  312. data/lib/fog/aws/requests/compute/start_instances.rb +28 -0
  313. data/lib/fog/aws/requests/compute/stop_instances.rb +28 -0
  314. data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +142 -33
  315. data/lib/fog/aws/requests/dns/create_hosted_zone.rb +54 -9
  316. data/lib/fog/aws/requests/dns/delete_hosted_zone.rb +7 -7
  317. data/lib/fog/aws/requests/dns/get_change.rb +5 -5
  318. data/lib/fog/aws/requests/dns/get_hosted_zone.rb +32 -9
  319. data/lib/fog/aws/requests/dns/list_hosted_zones.rb +60 -15
  320. data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +27 -22
  321. data/lib/fog/aws/requests/dynamodb/batch_get_item.rb +43 -0
  322. data/lib/fog/aws/requests/dynamodb/batch_write_item.rb +35 -0
  323. data/lib/fog/aws/requests/dynamodb/create_table.rb +55 -0
  324. data/lib/fog/aws/requests/dynamodb/delete_item.rb +45 -0
  325. data/lib/fog/aws/requests/dynamodb/delete_table.rb +42 -0
  326. data/lib/fog/aws/requests/dynamodb/describe_table.rb +44 -0
  327. data/lib/fog/aws/requests/dynamodb/get_item.rb +43 -0
  328. data/lib/fog/aws/requests/dynamodb/list_tables.rb +29 -0
  329. data/lib/fog/aws/requests/dynamodb/put_item.rb +41 -0
  330. data/lib/fog/aws/requests/dynamodb/query.rb +44 -0
  331. data/lib/fog/aws/requests/dynamodb/scan.rb +45 -0
  332. data/lib/fog/aws/requests/dynamodb/update_item.rb +49 -0
  333. data/lib/fog/aws/requests/dynamodb/update_table.rb +46 -0
  334. data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +26 -2
  335. data/lib/fog/aws/requests/elasticache/delete_cache_cluster.rb +10 -1
  336. data/lib/fog/aws/requests/elasticache/describe_cache_clusters.rb +16 -1
  337. data/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb +35 -3
  338. data/lib/fog/aws/requests/elasticache/reboot_cache_cluster.rb +10 -2
  339. data/lib/fog/aws/requests/elb/apply_security_groups_to_load_balancer.rb +61 -0
  340. data/lib/fog/aws/requests/elb/attach_load_balancer_to_subnets.rb +61 -0
  341. data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +2 -0
  342. data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +3 -1
  343. data/lib/fog/aws/requests/elb/create_load_balancer.rb +16 -6
  344. data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +11 -2
  345. data/lib/fog/aws/requests/elb/create_load_balancer_policy.rb +79 -0
  346. data/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb +1 -1
  347. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +1 -1
  348. data/lib/fog/aws/requests/elb/describe_instance_health.rb +2 -2
  349. data/lib/fog/aws/requests/elb/describe_load_balancer_policies.rb +71 -0
  350. data/lib/fog/aws/requests/elb/describe_load_balancer_policy_types.rb +68 -0
  351. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +42 -8
  352. data/lib/fog/aws/requests/elb/detach_load_balancer_from_subnets.rb +61 -0
  353. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +2 -2
  354. data/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb +27 -0
  355. data/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb +1 -1
  356. data/lib/fog/aws/requests/emr/add_instance_groups.rb +46 -0
  357. data/lib/fog/aws/requests/emr/add_job_flow_steps.rb +49 -0
  358. data/lib/fog/aws/requests/emr/describe_job_flows.rb +108 -0
  359. data/lib/fog/aws/requests/emr/modify_instance_groups.rb +40 -0
  360. data/lib/fog/aws/requests/emr/run_job_flow.rb +108 -0
  361. data/lib/fog/aws/requests/emr/set_termination_protection.rb +39 -0
  362. data/lib/fog/aws/requests/emr/terminate_job_flows.rb +37 -0
  363. data/lib/fog/aws/requests/iam/add_role_to_instance_profile.rb +35 -0
  364. data/lib/fog/aws/requests/iam/add_user_to_group.rb +24 -0
  365. data/lib/fog/aws/requests/iam/create_access_key.rb +24 -0
  366. data/lib/fog/aws/requests/iam/create_group.rb +21 -0
  367. data/lib/fog/aws/requests/iam/create_instance_profile.rb +46 -0
  368. data/lib/fog/aws/requests/iam/create_role.rb +56 -0
  369. data/lib/fog/aws/requests/iam/create_user.rb +21 -0
  370. data/lib/fog/aws/requests/iam/delete_access_key.rb +17 -0
  371. data/lib/fog/aws/requests/iam/delete_group.rb +19 -0
  372. data/lib/fog/aws/requests/iam/delete_instance_profile.rb +32 -0
  373. data/lib/fog/aws/requests/iam/delete_role.rb +32 -0
  374. data/lib/fog/aws/requests/iam/delete_role_policy.rb +35 -0
  375. data/lib/fog/aws/requests/iam/delete_user.rb +17 -0
  376. data/lib/fog/aws/requests/iam/delete_user_policy.rb +16 -0
  377. data/lib/fog/aws/requests/iam/get_group.rb +18 -0
  378. data/lib/fog/aws/requests/iam/get_instance_profile.rb +42 -0
  379. data/lib/fog/aws/requests/iam/get_role.rb +38 -0
  380. data/lib/fog/aws/requests/iam/get_role_policy.rb +36 -0
  381. data/lib/fog/aws/requests/iam/get_server_certificate.rb +5 -7
  382. data/lib/fog/aws/requests/iam/get_user.rb +23 -3
  383. data/lib/fog/aws/requests/iam/get_user_policy.rb +17 -0
  384. data/lib/fog/aws/requests/iam/list_access_keys.rb +21 -0
  385. data/lib/fog/aws/requests/iam/list_groups.rb +18 -0
  386. data/lib/fog/aws/requests/iam/list_groups_for_user.rb +24 -0
  387. data/lib/fog/aws/requests/iam/list_instance_profiles.rb +50 -0
  388. data/lib/fog/aws/requests/iam/list_instance_profiles_for_role.rb +51 -0
  389. data/lib/fog/aws/requests/iam/list_role_policies.rb +39 -0
  390. data/lib/fog/aws/requests/iam/list_roles.rb +43 -0
  391. data/lib/fog/aws/requests/iam/list_user_policies.rb +18 -0
  392. data/lib/fog/aws/requests/iam/list_users.rb +17 -0
  393. data/lib/fog/aws/requests/iam/put_group_policy.rb +1 -1
  394. data/lib/fog/aws/requests/iam/put_role_policy.rb +36 -0
  395. data/lib/fog/aws/requests/iam/put_user_policy.rb +19 -1
  396. data/lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb +36 -0
  397. data/lib/fog/aws/requests/iam/remove_user_from_group.rb +19 -0
  398. data/lib/fog/aws/requests/iam/upload_server_certificate.rb +5 -1
  399. data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +30 -1
  400. data/lib/fog/aws/requests/rds/create_db_instance.rb +73 -7
  401. data/lib/fog/aws/requests/rds/create_db_parameter_group.rb +19 -1
  402. data/lib/fog/aws/requests/rds/create_db_security_group.rb +19 -1
  403. data/lib/fog/aws/requests/rds/create_db_snapshot.rb +38 -2
  404. data/lib/fog/aws/requests/rds/delete_db_instance.rb +18 -3
  405. data/lib/fog/aws/requests/rds/delete_db_parameter_group.rb +11 -1
  406. data/lib/fog/aws/requests/rds/delete_db_security_group.rb +11 -1
  407. data/lib/fog/aws/requests/rds/delete_db_snapshot.rb +15 -4
  408. data/lib/fog/aws/requests/rds/describe_db_instances.rb +57 -2
  409. data/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb +19 -1
  410. data/lib/fog/aws/requests/rds/describe_db_parameters.rb +0 -1
  411. data/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb +1 -1
  412. data/lib/fog/aws/requests/rds/describe_db_security_groups.rb +49 -3
  413. data/lib/fog/aws/requests/rds/describe_db_snapshots.rb +28 -1
  414. data/lib/fog/aws/requests/rds/modify_db_instance.rb +26 -1
  415. data/lib/fog/aws/requests/rds/reboot_db_instance.rb +17 -1
  416. data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +27 -1
  417. data/lib/fog/aws/requests/simpledb/get_attributes.rb +2 -2
  418. data/lib/fog/aws/requests/simpledb/select.rb +1 -1
  419. data/lib/fog/aws/requests/sns/confirm_subscription.rb +1 -1
  420. data/lib/fog/aws/requests/sns/delete_topic.rb +1 -1
  421. data/lib/fog/aws/requests/sns/get_topic_attributes.rb +1 -1
  422. data/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb +1 -1
  423. data/lib/fog/aws/requests/sns/publish.rb +1 -1
  424. data/lib/fog/aws/requests/sns/set_topic_attributes.rb +1 -1
  425. data/lib/fog/aws/requests/sns/subscribe.rb +1 -1
  426. data/lib/fog/aws/requests/sns/unsubscribe.rb +1 -1
  427. data/lib/fog/aws/requests/sqs/change_message_visibility.rb +1 -1
  428. data/lib/fog/aws/requests/sqs/delete_message.rb +1 -1
  429. data/lib/fog/aws/requests/sqs/receive_message.rb +13 -14
  430. data/lib/fog/aws/requests/storage/acl_utils.rb +62 -0
  431. data/lib/fog/aws/requests/storage/copy_object.rb +11 -5
  432. data/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb +30 -0
  433. data/lib/fog/aws/requests/storage/delete_object.rb +73 -2
  434. data/lib/fog/aws/requests/storage/get_bucket.rb +3 -2
  435. data/lib/fog/aws/requests/storage/get_bucket_acl.rb +7 -1
  436. data/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb +41 -0
  437. data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +95 -2
  438. data/lib/fog/aws/requests/storage/get_bucket_policy.rb +1 -1
  439. data/lib/fog/aws/requests/storage/get_bucket_versioning.rb +32 -0
  440. data/lib/fog/aws/requests/storage/get_object.rb +42 -12
  441. data/lib/fog/aws/requests/storage/get_object_acl.rb +7 -1
  442. data/lib/fog/aws/requests/storage/get_object_http_url.rb +11 -4
  443. data/lib/fog/aws/requests/storage/get_object_https_url.rb +3 -14
  444. data/lib/fog/aws/requests/storage/get_object_url.rb +29 -8
  445. data/lib/fog/aws/requests/storage/head_object.rb +7 -6
  446. data/lib/fog/aws/requests/storage/post_object_hidden_fields.rb +1 -1
  447. data/lib/fog/aws/requests/storage/put_bucket_acl.rb +2 -2
  448. data/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb +48 -0
  449. data/lib/fog/aws/requests/storage/put_bucket_policy.rb +1 -1
  450. data/lib/fog/aws/requests/storage/put_bucket_versioning.rb +41 -0
  451. data/lib/fog/aws/requests/storage/put_bucket_website.rb +17 -0
  452. data/lib/fog/aws/requests/storage/put_object.rb +23 -7
  453. data/lib/fog/aws/requests/storage/put_object_acl.rb +1 -1
  454. data/lib/fog/aws/requests/storage/put_object_url.rb +22 -28
  455. data/lib/fog/aws/requests/storage/sync_clock.rb +1 -1
  456. data/lib/fog/aws/requests/sts/get_federation_token.rb +21 -0
  457. data/lib/fog/aws/requests/sts/get_session_token.rb +19 -0
  458. data/lib/fog/aws/ses.rb +23 -15
  459. data/lib/fog/aws/simpledb.rb +24 -17
  460. data/lib/fog/aws/sns.rb +19 -19
  461. data/lib/fog/aws/sqs.rb +24 -19
  462. data/lib/fog/aws/storage.rb +65 -39
  463. data/lib/fog/aws/sts.rb +136 -0
  464. data/lib/fog/aws.rb +112 -7
  465. data/lib/fog/bare_metal_cloud/compute.rb +98 -0
  466. data/lib/fog/bare_metal_cloud/requests/compute/add_server.rb +33 -0
  467. data/lib/fog/bare_metal_cloud/requests/compute/cancel_server.rb +30 -0
  468. data/lib/fog/bare_metal_cloud/requests/compute/get_server.rb +36 -0
  469. data/lib/fog/bare_metal_cloud/requests/compute/list_images.rb +27 -0
  470. data/lib/fog/bare_metal_cloud/requests/compute/list_plans.rb +30 -0
  471. data/lib/fog/bare_metal_cloud/requests/compute/list_servers.rb +36 -0
  472. data/lib/fog/bare_metal_cloud/requests/compute/reboot_server.rb +24 -0
  473. data/lib/fog/bare_metal_cloud.rb +11 -0
  474. data/lib/fog/bin/aws.rb +20 -4
  475. data/lib/fog/bin/bare_metal_cloud.rb +31 -0
  476. data/lib/fog/bin/bluebox.rb +2 -2
  477. data/lib/fog/bin/brightbox.rb +1 -1
  478. data/lib/fog/bin/clodo.rb +31 -0
  479. data/lib/fog/bin/cloudstack.rb +30 -0
  480. data/lib/fog/bin/dnsimple.rb +1 -1
  481. data/lib/fog/bin/dnsmadeeasy.rb +1 -1
  482. data/lib/fog/bin/ecloud.rb +1 -1
  483. data/lib/fog/bin/glesys.rb +1 -1
  484. data/lib/fog/bin/go_grid.rb +1 -1
  485. data/lib/fog/bin/google.rb +1 -1
  486. data/lib/fog/bin/hp.rb +38 -0
  487. data/lib/fog/bin/ibm.rb +34 -0
  488. data/lib/fog/bin/joyent.rb +31 -0
  489. data/lib/fog/bin/libvirt.rb +1 -1
  490. data/lib/fog/bin/linode.rb +2 -2
  491. data/lib/fog/bin/local.rb +1 -1
  492. data/lib/fog/bin/ninefold.rb +2 -2
  493. data/lib/fog/bin/openstack.rb +6 -1
  494. data/lib/fog/bin/ovirt.rb +30 -0
  495. data/lib/fog/bin/rackspace.rb +7 -3
  496. data/lib/fog/bin/stormondemand.rb +1 -1
  497. data/lib/fog/bin/virtual_box.rb +1 -1
  498. data/lib/fog/bin/vmfusion.rb +1 -1
  499. data/lib/fog/bin/voxel.rb +1 -1
  500. data/lib/fog/bin/xenserver.rb +31 -0
  501. data/lib/fog/bin/zerigo.rb +1 -1
  502. data/lib/fog/bin.rb +9 -3
  503. data/lib/fog/bluebox/compute.rb +6 -3
  504. data/lib/fog/bluebox/dns.rb +2 -2
  505. data/lib/fog/bluebox/models/compute/location.rb +17 -0
  506. data/lib/fog/bluebox/models/compute/locations.rb +28 -0
  507. data/lib/fog/bluebox/models/compute/server.rb +13 -6
  508. data/lib/fog/bluebox/requests/compute/create_block.rb +2 -2
  509. data/lib/fog/bluebox/requests/compute/get_location.rb +26 -0
  510. data/lib/fog/bluebox/requests/compute/get_locations.rb +24 -0
  511. data/lib/fog/bluebox.rb +1 -1
  512. data/lib/fog/brightbox/compute.rb +14 -8
  513. data/lib/fog/brightbox/models/compute/account.rb +1 -1
  514. data/lib/fog/brightbox/models/compute/cloud_ip.rb +10 -2
  515. data/lib/fog/brightbox/models/compute/firewall_policies.rb +29 -0
  516. data/lib/fog/brightbox/models/compute/firewall_policy.rb +65 -0
  517. data/lib/fog/brightbox/models/compute/firewall_rule.rb +54 -0
  518. data/lib/fog/brightbox/models/compute/firewall_rules.rb +24 -0
  519. data/lib/fog/brightbox/models/compute/image.rb +2 -0
  520. data/lib/fog/brightbox/models/compute/server.rb +42 -6
  521. data/lib/fog/brightbox/models/compute/server_group.rb +56 -17
  522. data/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +14 -0
  523. data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +13 -0
  524. data/lib/fog/brightbox.rb +1 -1
  525. data/lib/fog/cdn.rb +3 -0
  526. data/lib/fog/clodo/compute.rb +150 -0
  527. data/lib/fog/clodo/models/compute/image.rb +31 -0
  528. data/lib/fog/clodo/models/compute/images.rb +28 -0
  529. data/lib/fog/clodo/models/compute/server.rb +163 -0
  530. data/lib/fog/clodo/models/compute/servers.rb +36 -0
  531. data/lib/fog/clodo/requests/compute/add_ip_address.rb +49 -0
  532. data/lib/fog/clodo/requests/compute/create_server.rb +112 -0
  533. data/lib/fog/clodo/requests/compute/delete_ip_address.rb +47 -0
  534. data/lib/fog/clodo/requests/compute/delete_server.rb +44 -0
  535. data/lib/fog/clodo/requests/compute/get_image_details.rb +20 -0
  536. data/lib/fog/clodo/requests/compute/get_server_details.rb +49 -0
  537. data/lib/fog/clodo/requests/compute/list_images.rb +48 -0
  538. data/lib/fog/clodo/requests/compute/list_images_detail.rb +61 -0
  539. data/lib/fog/clodo/requests/compute/list_servers.rb +50 -0
  540. data/lib/fog/clodo/requests/compute/list_servers_detail.rb +51 -0
  541. data/lib/fog/clodo/requests/compute/move_ip_address.rb +34 -0
  542. data/lib/fog/clodo/requests/compute/reboot_server.rb +19 -0
  543. data/lib/fog/clodo/requests/compute/rebuild_server.rb +21 -0
  544. data/lib/fog/clodo/requests/compute/server_action.rb +25 -0
  545. data/lib/fog/clodo/requests/compute/start_server.rb +19 -0
  546. data/lib/fog/clodo/requests/compute/stop_server.rb +19 -0
  547. data/lib/fog/clodo.rb +34 -0
  548. data/lib/fog/cloudstack/compute.rb +438 -0
  549. data/lib/fog/cloudstack/models/compute/address.rb +17 -0
  550. data/lib/fog/cloudstack/models/compute/flavor.rb +33 -0
  551. data/lib/fog/cloudstack/models/compute/flavors.rb +28 -0
  552. data/lib/fog/cloudstack/models/compute/image.rb +72 -0
  553. data/lib/fog/cloudstack/models/compute/images.rb +32 -0
  554. data/lib/fog/cloudstack/models/compute/job.rb +42 -0
  555. data/lib/fog/cloudstack/models/compute/jobs.rb +28 -0
  556. data/lib/fog/cloudstack/models/compute/security_group.rb +50 -0
  557. data/lib/fog/cloudstack/models/compute/security_group_rule.rb +62 -0
  558. data/lib/fog/cloudstack/models/compute/security_group_rules.rb +37 -0
  559. data/lib/fog/cloudstack/models/compute/security_groups.rb +27 -0
  560. data/lib/fog/cloudstack/models/compute/server.rb +116 -0
  561. data/lib/fog/cloudstack/models/compute/servers.rb +34 -0
  562. data/lib/fog/cloudstack/models/compute/volume.rb +115 -0
  563. data/lib/fog/cloudstack/models/compute/volumes.rb +28 -0
  564. data/lib/fog/cloudstack/models/compute/zone.rb +38 -0
  565. data/lib/fog/cloudstack/models/compute/zones.rb +33 -0
  566. data/lib/fog/cloudstack/requests/compute/acquire_ip_address.rb +21 -0
  567. data/lib/fog/cloudstack/requests/compute/assign_to_load_balancer_rule.rb +25 -0
  568. data/lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb +18 -0
  569. data/lib/fog/cloudstack/requests/compute/attach_volume.rb +70 -0
  570. data/lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb +68 -0
  571. data/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb +73 -0
  572. data/lib/fog/cloudstack/requests/compute/change_service_for_virtual_machine.rb +20 -0
  573. data/lib/fog/cloudstack/requests/compute/create_account.rb +20 -0
  574. data/lib/fog/cloudstack/requests/compute/create_domain.rb +20 -0
  575. data/lib/fog/cloudstack/requests/compute/create_load_balancer_rule.rb +20 -0
  576. data/lib/fog/cloudstack/requests/compute/create_network.rb +20 -0
  577. data/lib/fog/cloudstack/requests/compute/create_port_forwarding_rule.rb +20 -0
  578. data/lib/fog/cloudstack/requests/compute/create_security_group.rb +28 -0
  579. data/lib/fog/cloudstack/requests/compute/create_snapshot.rb +20 -0
  580. data/lib/fog/cloudstack/requests/compute/create_snapshot_policy.rb +20 -0
  581. data/lib/fog/cloudstack/requests/compute/create_ssh_key_pair.rb +22 -0
  582. data/lib/fog/cloudstack/requests/compute/create_user.rb +20 -0
  583. data/lib/fog/cloudstack/requests/compute/create_volume.rb +63 -0
  584. data/lib/fog/cloudstack/requests/compute/create_zone.rb +20 -0
  585. data/lib/fog/cloudstack/requests/compute/delete_account.rb +20 -0
  586. data/lib/fog/cloudstack/requests/compute/delete_domain.rb +20 -0
  587. data/lib/fog/cloudstack/requests/compute/delete_load_balancer_rule.rb +20 -0
  588. data/lib/fog/cloudstack/requests/compute/delete_port_forwarding_rule.rb +20 -0
  589. data/lib/fog/cloudstack/requests/compute/delete_security_group.rb +37 -0
  590. data/lib/fog/cloudstack/requests/compute/delete_snapshot.rb +20 -0
  591. data/lib/fog/cloudstack/requests/compute/delete_snapshot_policies.rb +20 -0
  592. data/lib/fog/cloudstack/requests/compute/delete_ssh_key_pair.rb +21 -0
  593. data/lib/fog/cloudstack/requests/compute/delete_template.rb +20 -0
  594. data/lib/fog/cloudstack/requests/compute/delete_user.rb +20 -0
  595. data/lib/fog/cloudstack/requests/compute/delete_volume.rb +40 -0
  596. data/lib/fog/cloudstack/requests/compute/deploy_virtual_machine.rb +129 -0
  597. data/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb +51 -0
  598. data/lib/fog/cloudstack/requests/compute/detach_volume.rb +62 -0
  599. data/lib/fog/cloudstack/requests/compute/disable_account.rb +20 -0
  600. data/lib/fog/cloudstack/requests/compute/disable_user.rb +20 -0
  601. data/lib/fog/cloudstack/requests/compute/enable_account.rb +20 -0
  602. data/lib/fog/cloudstack/requests/compute/enable_user.rb +20 -0
  603. data/lib/fog/cloudstack/requests/compute/generate_usage_records.rb +28 -0
  604. data/lib/fog/cloudstack/requests/compute/get_vm_password.rb +21 -0
  605. data/lib/fog/cloudstack/requests/compute/list_accounts.rb +20 -0
  606. data/lib/fog/cloudstack/requests/compute/list_alerts.rb +20 -0
  607. data/lib/fog/cloudstack/requests/compute/list_async_jobs.rb +32 -0
  608. data/lib/fog/cloudstack/requests/compute/list_capabilities.rb +20 -0
  609. data/lib/fog/cloudstack/requests/compute/list_capacity.rb +20 -0
  610. data/lib/fog/cloudstack/requests/compute/list_clusters.rb +20 -0
  611. data/lib/fog/cloudstack/requests/compute/list_configurations.rb +20 -0
  612. data/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb +20 -0
  613. data/lib/fog/cloudstack/requests/compute/list_domain_children.rb +20 -0
  614. data/lib/fog/cloudstack/requests/compute/list_domains.rb +20 -0
  615. data/lib/fog/cloudstack/requests/compute/list_events.rb +20 -0
  616. data/lib/fog/cloudstack/requests/compute/list_external_firewalls.rb +20 -0
  617. data/lib/fog/cloudstack/requests/compute/list_external_load_balancers.rb +20 -0
  618. data/lib/fog/cloudstack/requests/compute/list_firewall_rules.rb +15 -0
  619. data/lib/fog/cloudstack/requests/compute/list_hosts.rb +20 -0
  620. data/lib/fog/cloudstack/requests/compute/list_hypervisors.rb +20 -0
  621. data/lib/fog/cloudstack/requests/compute/list_instance_groups.rb +20 -0
  622. data/lib/fog/cloudstack/requests/compute/list_isos.rb +20 -0
  623. data/lib/fog/cloudstack/requests/compute/list_load_balancer_rule_instances.rb +23 -0
  624. data/lib/fog/cloudstack/requests/compute/list_load_balancer_rules.rb +22 -0
  625. data/lib/fog/cloudstack/requests/compute/list_network_offerings.rb +20 -0
  626. data/lib/fog/cloudstack/requests/compute/list_networks.rb +20 -0
  627. data/lib/fog/cloudstack/requests/compute/list_os_categories.rb +22 -0
  628. data/lib/fog/cloudstack/requests/compute/list_os_types.rb +22 -0
  629. data/lib/fog/cloudstack/requests/compute/list_pods.rb +20 -0
  630. data/lib/fog/cloudstack/requests/compute/list_port_forwarding_rules.rb +22 -0
  631. data/lib/fog/cloudstack/requests/compute/list_public_ip_addresses.rb +22 -0
  632. data/lib/fog/cloudstack/requests/compute/list_resource_limits.rb +20 -0
  633. data/lib/fog/cloudstack/requests/compute/list_security_groups.rb +38 -0
  634. data/lib/fog/cloudstack/requests/compute/list_service_offerings.rb +42 -0
  635. data/lib/fog/cloudstack/requests/compute/list_snapshot_policies.rb +20 -0
  636. data/lib/fog/cloudstack/requests/compute/list_snapshots.rb +20 -0
  637. data/lib/fog/cloudstack/requests/compute/list_ssh_key_pairs.rb +20 -0
  638. data/lib/fog/cloudstack/requests/compute/list_storage_pools.rb +20 -0
  639. data/lib/fog/cloudstack/requests/compute/list_templates.rb +35 -0
  640. data/lib/fog/cloudstack/requests/compute/list_usage_records.rb +28 -0
  641. data/lib/fog/cloudstack/requests/compute/list_users.rb +20 -0
  642. data/lib/fog/cloudstack/requests/compute/list_virtual_machines.rb +26 -0
  643. data/lib/fog/cloudstack/requests/compute/list_volumes.rb +38 -0
  644. data/lib/fog/cloudstack/requests/compute/list_zones.rb +34 -0
  645. data/lib/fog/cloudstack/requests/compute/migrate_virtual_machine.rb +20 -0
  646. data/lib/fog/cloudstack/requests/compute/query_async_job_result.rb +32 -0
  647. data/lib/fog/cloudstack/requests/compute/reboot_virtual_machine.rb +31 -0
  648. data/lib/fog/cloudstack/requests/compute/recover_virtual_machine.rb +20 -0
  649. data/lib/fog/cloudstack/requests/compute/register_ssh_key_pair.rb +20 -0
  650. data/lib/fog/cloudstack/requests/compute/register_user_keys.rb +20 -0
  651. data/lib/fog/cloudstack/requests/compute/remove_from_load_balancer_rule.rb +25 -0
  652. data/lib/fog/cloudstack/requests/compute/reset_password_for_virtual_machine.rb +21 -0
  653. data/lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb +42 -0
  654. data/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb +47 -0
  655. data/lib/fog/cloudstack/requests/compute/start_virtual_machine.rb +20 -0
  656. data/lib/fog/cloudstack/requests/compute/stop_virtual_machine.rb +20 -0
  657. data/lib/fog/cloudstack/requests/compute/update_account.rb +20 -0
  658. data/lib/fog/cloudstack/requests/compute/update_domain.rb +20 -0
  659. data/lib/fog/cloudstack/requests/compute/update_resource_count.rb +20 -0
  660. data/lib/fog/cloudstack/requests/compute/update_user.rb +20 -0
  661. data/lib/fog/cloudstack/requests/compute/update_virtual_machine.rb +20 -0
  662. data/lib/fog/cloudstack.rb +40 -0
  663. data/lib/fog/compute/models/server.rb +29 -4
  664. data/lib/fog/compute.rb +28 -6
  665. data/lib/fog/core/attributes.rb +6 -6
  666. data/lib/fog/core/collection.rb +4 -5
  667. data/lib/fog/core/connection.rb +1 -1
  668. data/lib/fog/core/credentials.rb +8 -6
  669. data/lib/fog/core/current_machine.rb +3 -7
  670. data/lib/fog/core/deprecation.rb +2 -2
  671. data/lib/fog/core/errors.rb +18 -5
  672. data/lib/fog/core/json.rb +27 -1
  673. data/lib/fog/core/logger.rb +8 -3
  674. data/lib/fog/core/mock.rb +4 -0
  675. data/lib/fog/core/model.rb +9 -2
  676. data/lib/fog/core/provider.rb +7 -2
  677. data/lib/fog/core/scp.rb +36 -4
  678. data/lib/fog/core/service.rb +37 -10
  679. data/lib/fog/core/ssh.rb +26 -5
  680. data/lib/fog/core/wait_for.rb +1 -1
  681. data/lib/fog/core.rb +2 -3
  682. data/lib/fog/dns.rb +0 -3
  683. data/lib/fog/dnsimple/dns.rb +3 -5
  684. data/lib/fog/dnsimple/requests/dns/create_domain.rb +1 -1
  685. data/lib/fog/dnsimple/requests/dns/create_record.rb +1 -1
  686. data/lib/fog/dnsimple/requests/dns/update_record.rb +1 -1
  687. data/lib/fog/dnsimple.rb +1 -1
  688. data/lib/fog/dnsmadeeasy/dns.rb +5 -6
  689. data/lib/fog/dnsmadeeasy/models/dns/record.rb +3 -2
  690. data/lib/fog/dnsmadeeasy/requests/dns/create_record.rb +1 -1
  691. data/lib/fog/dnsmadeeasy/requests/dns/create_secondary.rb +1 -1
  692. data/lib/fog/dnsmadeeasy/requests/dns/update_record.rb +1 -1
  693. data/lib/fog/dnsmadeeasy/requests/dns/update_secondary.rb +1 -1
  694. data/lib/fog/dnsmadeeasy.rb +1 -1
  695. data/lib/fog/dynect/dns.rb +39 -10
  696. data/lib/fog/dynect/models/dns/records.rb +2 -2
  697. data/lib/fog/dynect/requests/dns/delete_record.rb +1 -0
  698. data/lib/fog/dynect/requests/dns/get_node_list.rb +3 -1
  699. data/lib/fog/dynect/requests/dns/get_record.rb +1 -0
  700. data/lib/fog/dynect/requests/dns/get_zone.rb +1 -0
  701. data/lib/fog/dynect/requests/dns/post_record.rb +1 -1
  702. data/lib/fog/dynect/requests/dns/post_session.rb +2 -1
  703. data/lib/fog/dynect/requests/dns/post_zone.rb +1 -1
  704. data/lib/fog/dynect/requests/dns/put_zone.rb +1 -1
  705. data/lib/fog/dynect.rb +1 -1
  706. data/lib/fog/ecloud/collection.rb +26 -0
  707. data/lib/fog/ecloud/compute.rb +341 -1139
  708. data/lib/fog/ecloud/generate_collection.rb +130 -0
  709. data/lib/fog/ecloud/ipaddr.rb +5 -0
  710. data/lib/fog/ecloud/mock_data_classes.rb +768 -0
  711. data/lib/fog/ecloud/model.rb +22 -0
  712. data/lib/fog/ecloud/models/compute/admin_organization.rb +39 -0
  713. data/lib/fog/ecloud/models/compute/admin_organizations.rb +27 -0
  714. data/lib/fog/ecloud/models/compute/api_key.rb +21 -0
  715. data/lib/fog/ecloud/models/compute/api_keys.rb +27 -0
  716. data/lib/fog/ecloud/models/compute/association.rb +23 -0
  717. data/lib/fog/ecloud/models/compute/associations.rb +35 -0
  718. data/lib/fog/ecloud/models/compute/authentication_level.rb +22 -0
  719. data/lib/fog/ecloud/models/compute/authentication_levels.rb +27 -0
  720. data/lib/fog/ecloud/models/compute/backup_internet_service.rb +22 -33
  721. data/lib/fog/ecloud/models/compute/backup_internet_services.rb +20 -11
  722. data/lib/fog/ecloud/models/compute/catalog.rb +17 -5
  723. data/lib/fog/ecloud/models/compute/catalog_configuration.rb +23 -0
  724. data/lib/fog/ecloud/models/compute/catalog_configurations.rb +27 -0
  725. data/lib/fog/ecloud/models/compute/catalog_item.rb +12 -17
  726. data/lib/fog/ecloud/models/compute/compute_pool.rb +59 -0
  727. data/lib/fog/ecloud/models/compute/compute_pools.rb +34 -0
  728. data/lib/fog/ecloud/models/compute/cpu_usage_detail.rb +17 -0
  729. data/lib/fog/ecloud/models/compute/cpu_usage_detail_summary.rb +27 -0
  730. data/lib/fog/ecloud/models/compute/environment.rb +105 -0
  731. data/lib/fog/ecloud/models/compute/environments.rb +40 -0
  732. data/lib/fog/ecloud/models/compute/firewall_acl.rb +14 -11
  733. data/lib/fog/ecloud/models/compute/firewall_acls.rb +7 -10
  734. data/lib/fog/ecloud/models/compute/group.rb +39 -0
  735. data/lib/fog/ecloud/models/compute/groups.rb +28 -0
  736. data/lib/fog/ecloud/models/compute/guest_process.rb +15 -0
  737. data/lib/fog/ecloud/models/compute/guest_processes.rb +27 -0
  738. data/lib/fog/ecloud/models/compute/hardware_configuration.rb +18 -0
  739. data/lib/fog/ecloud/models/compute/hardware_configurations.rb +27 -0
  740. data/lib/fog/ecloud/models/compute/internet_service.rb +47 -73
  741. data/lib/fog/ecloud/models/compute/internet_services.rb +23 -10
  742. data/lib/fog/ecloud/models/compute/ip_address.rb +25 -0
  743. data/lib/fog/ecloud/models/compute/ip_addresses.rb +27 -0
  744. data/lib/fog/ecloud/models/compute/layout.rb +20 -0
  745. data/lib/fog/ecloud/models/compute/layouts.rb +27 -0
  746. data/lib/fog/ecloud/models/compute/location.rb +23 -0
  747. data/lib/fog/ecloud/models/compute/locations.rb +31 -0
  748. data/lib/fog/ecloud/models/compute/login_banner.rb +16 -0
  749. data/lib/fog/ecloud/models/compute/login_banners.rb +27 -0
  750. data/lib/fog/ecloud/models/compute/memory_usage_detail.rb +16 -0
  751. data/lib/fog/ecloud/models/compute/memory_usage_detail_summary.rb +27 -0
  752. data/lib/fog/ecloud/models/compute/monitor.rb +46 -0
  753. data/lib/fog/ecloud/models/compute/monitors.rb +31 -0
  754. data/lib/fog/ecloud/models/compute/network.rb +16 -55
  755. data/lib/fog/ecloud/models/compute/networks.rb +5 -10
  756. data/lib/fog/ecloud/models/compute/node.rb +22 -26
  757. data/lib/fog/ecloud/models/compute/nodes.rb +19 -6
  758. data/lib/fog/ecloud/models/compute/operating_system.rb +17 -0
  759. data/lib/fog/ecloud/models/compute/operating_system_families.rb +27 -0
  760. data/lib/fog/ecloud/models/compute/operating_system_family.rb +21 -0
  761. data/lib/fog/ecloud/models/compute/operating_systems.rb +26 -0
  762. data/lib/fog/ecloud/models/compute/organization.rb +79 -0
  763. data/lib/fog/ecloud/models/compute/organizations.rb +39 -0
  764. data/lib/fog/ecloud/models/compute/password_complexity_rule.rb +49 -0
  765. data/lib/fog/ecloud/models/compute/password_complexity_rules.rb +27 -0
  766. data/lib/fog/ecloud/models/compute/physical_device.rb +22 -0
  767. data/lib/fog/ecloud/models/compute/physical_devices.rb +27 -0
  768. data/lib/fog/ecloud/models/compute/public_ip.rb +14 -10
  769. data/lib/fog/ecloud/models/compute/public_ips.rb +8 -11
  770. data/lib/fog/ecloud/models/compute/rnat.rb +27 -0
  771. data/lib/fog/ecloud/models/compute/rnats.rb +27 -0
  772. data/lib/fog/ecloud/models/compute/role.rb +24 -0
  773. data/lib/fog/ecloud/models/compute/roles.rb +37 -0
  774. data/lib/fog/ecloud/models/compute/row.rb +53 -0
  775. data/lib/fog/ecloud/models/compute/rows.rb +37 -0
  776. data/lib/fog/ecloud/models/compute/server.rb +170 -132
  777. data/lib/fog/ecloud/models/compute/server_configuration_option.rb +17 -0
  778. data/lib/fog/ecloud/models/compute/server_configuration_options.rb +27 -0
  779. data/lib/fog/ecloud/models/compute/servers.rb +38 -28
  780. data/lib/fog/ecloud/models/compute/ssh_key.rb +20 -0
  781. data/lib/fog/ecloud/models/compute/ssh_keys.rb +27 -0
  782. data/lib/fog/ecloud/models/compute/storage_usage_detail.rb +16 -0
  783. data/lib/fog/ecloud/models/compute/storage_usage_detail_summary.rb +27 -0
  784. data/lib/fog/ecloud/models/compute/support_ticket.rb +29 -0
  785. data/lib/fog/ecloud/models/compute/support_tickets.rb +27 -0
  786. data/lib/fog/ecloud/models/compute/tag.rb +13 -0
  787. data/lib/fog/ecloud/models/compute/tags.rb +27 -0
  788. data/lib/fog/ecloud/models/compute/task.rb +10 -11
  789. data/lib/fog/ecloud/models/compute/tasks.rb +8 -8
  790. data/lib/fog/ecloud/models/compute/template.rb +24 -0
  791. data/lib/fog/ecloud/models/compute/templates.rb +40 -0
  792. data/lib/fog/ecloud/models/compute/trusted_network_group.rb +33 -0
  793. data/lib/fog/ecloud/models/compute/trusted_network_groups.rb +28 -0
  794. data/lib/fog/ecloud/models/compute/user.rb +35 -0
  795. data/lib/fog/ecloud/models/compute/users.rb +27 -0
  796. data/lib/fog/ecloud/requests/compute/admin_disable_support_access.rb +9 -0
  797. data/lib/fog/ecloud/requests/compute/admin_edit_authentication_levels.rb +34 -0
  798. data/lib/fog/ecloud/requests/compute/admin_edit_login_banner.rb +32 -0
  799. data/lib/fog/ecloud/requests/compute/admin_edit_password_complexity_rules.rb +74 -0
  800. data/lib/fog/ecloud/requests/compute/admin_enable_support_access.rb +9 -0
  801. data/lib/fog/ecloud/requests/compute/backup_internet_service_create.rb +47 -0
  802. data/lib/fog/ecloud/requests/compute/backup_internet_service_delete.rb +11 -0
  803. data/lib/fog/ecloud/requests/compute/backup_internet_service_edit.rb +47 -0
  804. data/lib/fog/ecloud/requests/compute/compute_pool_edit.rb +37 -0
  805. data/lib/fog/ecloud/requests/compute/firewall_acls_create.rb +79 -0
  806. data/lib/fog/ecloud/requests/compute/firewall_acls_delete.rb +11 -0
  807. data/lib/fog/ecloud/requests/compute/get_admin_organization.rb +11 -0
  808. data/lib/fog/ecloud/requests/compute/get_admin_organizations.rb +11 -0
  809. data/lib/fog/ecloud/requests/compute/get_api_key.rb +11 -0
  810. data/lib/fog/ecloud/requests/compute/get_api_keys.rb +11 -0
  811. data/lib/fog/ecloud/requests/compute/get_association.rb +11 -0
  812. data/lib/fog/ecloud/requests/compute/get_associations.rb +11 -0
  813. data/lib/fog/ecloud/requests/compute/get_authentication_level.rb +11 -0
  814. data/lib/fog/ecloud/requests/compute/get_authentication_levels.rb +11 -0
  815. data/lib/fog/ecloud/requests/compute/get_backup_internet_service.rb +11 -0
  816. data/lib/fog/ecloud/requests/compute/get_backup_internet_services.rb +11 -0
  817. data/lib/fog/ecloud/requests/compute/get_catalog.rb +0 -33
  818. data/lib/fog/ecloud/requests/compute/get_catalog_configuration.rb +11 -0
  819. data/lib/fog/ecloud/requests/compute/get_catalog_configurations.rb +11 -0
  820. data/lib/fog/ecloud/requests/compute/get_catalog_item.rb +0 -36
  821. data/lib/fog/ecloud/requests/compute/get_compute_pool.rb +11 -0
  822. data/lib/fog/ecloud/requests/compute/get_compute_pools.rb +11 -0
  823. data/lib/fog/ecloud/requests/compute/get_cpu_usage_detail.rb +11 -0
  824. data/lib/fog/ecloud/requests/compute/get_cpu_usage_detail_summary.rb +11 -0
  825. data/lib/fog/ecloud/requests/compute/get_environment.rb +11 -0
  826. data/lib/fog/ecloud/requests/compute/get_environments.rb +0 -0
  827. data/lib/fog/ecloud/requests/compute/get_group.rb +11 -0
  828. data/lib/fog/ecloud/requests/compute/get_groups.rb +11 -0
  829. data/lib/fog/ecloud/requests/compute/get_guest_process.rb +11 -0
  830. data/lib/fog/ecloud/requests/compute/get_guest_processes.rb +11 -0
  831. data/lib/fog/ecloud/requests/compute/get_hardware_configuration.rb +11 -0
  832. data/lib/fog/ecloud/requests/compute/get_hardware_configurations.rb +11 -0
  833. data/lib/fog/ecloud/requests/compute/get_internet_service.rb +11 -0
  834. data/lib/fog/ecloud/requests/compute/get_internet_services.rb +0 -71
  835. data/lib/fog/ecloud/requests/compute/get_ip_address.rb +11 -0
  836. data/lib/fog/ecloud/requests/compute/get_ip_addresses.rb +11 -0
  837. data/lib/fog/ecloud/requests/compute/get_layout.rb +11 -0
  838. data/lib/fog/ecloud/requests/compute/get_layouts.rb +11 -0
  839. data/lib/fog/ecloud/requests/compute/get_location.rb +12 -0
  840. data/lib/fog/ecloud/requests/compute/get_locations.rb +12 -0
  841. data/lib/fog/ecloud/requests/compute/get_login_banner.rb +11 -0
  842. data/lib/fog/ecloud/requests/compute/get_login_banners.rb +11 -0
  843. data/lib/fog/ecloud/requests/compute/get_memory_usage_detail.rb +11 -0
  844. data/lib/fog/ecloud/requests/compute/get_memory_usage_detail_summary.rb +11 -0
  845. data/lib/fog/ecloud/requests/compute/get_monitor.rb +11 -0
  846. data/lib/fog/ecloud/requests/compute/get_monitors.rb +11 -0
  847. data/lib/fog/ecloud/requests/compute/get_network.rb +1 -34
  848. data/lib/fog/ecloud/requests/compute/get_network_summary.rb +11 -0
  849. data/lib/fog/ecloud/requests/compute/get_networks.rb +11 -0
  850. data/lib/fog/ecloud/requests/compute/get_node.rb +0 -29
  851. data/lib/fog/ecloud/requests/compute/get_nodes.rb +0 -30
  852. data/lib/fog/ecloud/requests/compute/get_operating_system.rb +11 -0
  853. data/lib/fog/ecloud/requests/compute/get_operating_system_families.rb +11 -0
  854. data/lib/fog/ecloud/requests/compute/get_operating_system_family.rb +11 -0
  855. data/lib/fog/ecloud/requests/compute/get_organization.rb +0 -38
  856. data/lib/fog/ecloud/requests/compute/get_organizations.rb +11 -0
  857. data/lib/fog/ecloud/requests/compute/get_password_complexity_rule.rb +11 -0
  858. data/lib/fog/ecloud/requests/compute/get_password_complexity_rules.rb +11 -0
  859. data/lib/fog/ecloud/requests/compute/get_physical_device.rb +11 -0
  860. data/lib/fog/ecloud/requests/compute/get_physical_devices.rb +11 -0
  861. data/lib/fog/ecloud/requests/compute/get_process.rb +11 -0
  862. data/lib/fog/ecloud/requests/compute/get_processes.rb +11 -0
  863. data/lib/fog/ecloud/requests/compute/get_public_ip.rb +0 -23
  864. data/lib/fog/ecloud/requests/compute/get_public_ips.rb +0 -27
  865. data/lib/fog/ecloud/requests/compute/get_rnat.rb +11 -0
  866. data/lib/fog/ecloud/requests/compute/get_rnats.rb +11 -0
  867. data/lib/fog/ecloud/requests/compute/get_role.rb +11 -0
  868. data/lib/fog/ecloud/requests/compute/get_roles.rb +11 -0
  869. data/lib/fog/ecloud/requests/compute/get_row.rb +11 -0
  870. data/lib/fog/ecloud/requests/compute/get_rows.rb +11 -0
  871. data/lib/fog/ecloud/requests/compute/get_server.rb +11 -0
  872. data/lib/fog/ecloud/requests/compute/get_server_configuration_option.rb +11 -0
  873. data/lib/fog/ecloud/requests/compute/get_server_configuration_options.rb +11 -0
  874. data/lib/fog/ecloud/requests/compute/get_servers.rb +11 -0
  875. data/lib/fog/ecloud/requests/compute/get_ssh_key.rb +11 -0
  876. data/lib/fog/ecloud/requests/compute/get_ssh_keys.rb +11 -0
  877. data/lib/fog/ecloud/requests/compute/get_storage_usage_detail.rb +11 -0
  878. data/lib/fog/ecloud/requests/compute/get_storage_usage_detail_summary.rb +11 -0
  879. data/lib/fog/ecloud/requests/compute/get_support_ticket.rb +11 -0
  880. data/lib/fog/ecloud/requests/compute/get_support_tickets.rb +11 -0
  881. data/lib/fog/ecloud/requests/compute/get_tag.rb +11 -0
  882. data/lib/fog/ecloud/requests/compute/get_tags.rb +11 -0
  883. data/lib/fog/ecloud/requests/compute/get_tasks.rb +11 -0
  884. data/lib/fog/ecloud/requests/compute/get_template.rb +11 -0
  885. data/lib/fog/ecloud/requests/compute/get_templates.rb +11 -0
  886. data/lib/fog/ecloud/requests/compute/get_trusted_network_group.rb +11 -0
  887. data/lib/fog/ecloud/requests/compute/get_trusted_network_groups.rb +11 -0
  888. data/lib/fog/ecloud/requests/compute/get_user.rb +11 -0
  889. data/lib/fog/ecloud/requests/compute/get_users.rb +11 -0
  890. data/lib/fog/ecloud/requests/compute/groups_create.rb +31 -0
  891. data/lib/fog/ecloud/requests/compute/groups_delete.rb +11 -0
  892. data/lib/fog/ecloud/requests/compute/groups_edit.rb +29 -0
  893. data/lib/fog/ecloud/requests/compute/groups_movedown.rb +11 -0
  894. data/lib/fog/ecloud/requests/compute/groups_moveup.rb +11 -0
  895. data/lib/fog/ecloud/requests/compute/internet_service_create.rb +67 -0
  896. data/lib/fog/ecloud/requests/compute/internet_service_delete.rb +11 -0
  897. data/lib/fog/ecloud/requests/compute/internet_service_edit.rb +60 -0
  898. data/lib/fog/ecloud/requests/compute/monitors_create_default.rb +11 -0
  899. data/lib/fog/ecloud/requests/compute/monitors_create_ecv.rb +40 -0
  900. data/lib/fog/ecloud/requests/compute/monitors_create_http.rb +44 -0
  901. data/lib/fog/ecloud/requests/compute/monitors_create_loopback.rb +11 -0
  902. data/lib/fog/ecloud/requests/compute/monitors_create_ping.rb +35 -0
  903. data/lib/fog/ecloud/requests/compute/monitors_disable.rb +11 -0
  904. data/lib/fog/ecloud/requests/compute/monitors_edit_ecv.rb +40 -0
  905. data/lib/fog/ecloud/requests/compute/monitors_edit_http.rb +44 -0
  906. data/lib/fog/ecloud/requests/compute/monitors_edit_ping.rb +35 -0
  907. data/lib/fog/ecloud/requests/compute/monitors_enable.rb +11 -0
  908. data/lib/fog/ecloud/requests/compute/node_service_create.rb +45 -0
  909. data/lib/fog/ecloud/requests/compute/node_service_delete.rb +11 -0
  910. data/lib/fog/ecloud/requests/compute/node_service_edit.rb +41 -0
  911. data/lib/fog/ecloud/requests/compute/power_off.rb +0 -12
  912. data/lib/fog/ecloud/requests/compute/power_on.rb +0 -12
  913. data/lib/fog/ecloud/requests/compute/power_shutdown.rb +1 -1
  914. data/lib/fog/ecloud/requests/compute/public_ip_activate.rb +11 -0
  915. data/lib/fog/ecloud/requests/compute/rnat_associations_create_device.rb +32 -0
  916. data/lib/fog/ecloud/requests/compute/rnat_associations_delete.rb +9 -0
  917. data/lib/fog/ecloud/requests/compute/rnat_associations_edit_network.rb +31 -0
  918. data/lib/fog/ecloud/requests/compute/rows_create.rb +29 -0
  919. data/lib/fog/ecloud/requests/compute/rows_delete.rb +11 -0
  920. data/lib/fog/ecloud/requests/compute/rows_edit.rb +29 -0
  921. data/lib/fog/ecloud/requests/compute/rows_movedown.rb +11 -0
  922. data/lib/fog/ecloud/requests/compute/rows_moveup.rb +11 -0
  923. data/lib/fog/ecloud/requests/compute/trusted_network_groups_create.rb +53 -0
  924. data/lib/fog/ecloud/requests/compute/trusted_network_groups_delete.rb +11 -0
  925. data/lib/fog/ecloud/requests/compute/trusted_network_groups_edit.rb +53 -0
  926. data/lib/fog/ecloud/requests/compute/virtual_machine_copy.rb +118 -0
  927. data/lib/fog/ecloud/requests/compute/virtual_machine_copy_identical.rb +45 -0
  928. data/lib/fog/ecloud/requests/compute/virtual_machine_create_from_template.rb +125 -0
  929. data/lib/fog/ecloud/requests/compute/virtual_machine_delete.rb +11 -0
  930. data/lib/fog/ecloud/requests/compute/virtual_machine_edit.rb +47 -0
  931. data/lib/fog/ecloud/requests/compute/virtual_machine_edit_hardware_configuration.rb +53 -0
  932. data/lib/fog/ecloud/requests/compute/virtual_machine_import.rb +67 -0
  933. data/lib/fog/glesys/compute.rb +6 -4
  934. data/lib/fog/glesys/models/compute/server.rb +19 -14
  935. data/lib/fog/glesys/models/compute/servers.rb +14 -8
  936. data/lib/fog/glesys/requests/compute/reboot.rb +14 -0
  937. data/lib/fog/go_grid/compute.rb +2 -3
  938. data/lib/fog/go_grid/models/compute/server.rb +2 -2
  939. data/lib/fog/go_grid/requests/compute/grid_server_power.rb +1 -1
  940. data/lib/fog/go_grid.rb +1 -1
  941. data/lib/fog/google/models/storage/file.rb +3 -2
  942. data/lib/fog/google/requests/storage/get_object.rb +22 -14
  943. data/lib/fog/google/requests/storage/get_object_url.rb +2 -2
  944. data/lib/fog/google/requests/storage/put_object_url.rb +6 -6
  945. data/lib/fog/google/storage.rb +4 -4
  946. data/lib/fog/google.rb +1 -1
  947. data/lib/fog/hp/README_HP.rdoc +60 -0
  948. data/lib/fog/hp/cdn.rb +131 -0
  949. data/lib/fog/hp/compute.rb +182 -0
  950. data/lib/fog/hp/models/compute/address.rb +71 -0
  951. data/lib/fog/hp/models/compute/addresses.rb +29 -0
  952. data/lib/fog/hp/models/compute/flavor.rb +24 -0
  953. data/lib/fog/hp/models/compute/flavors.rb +28 -0
  954. data/lib/fog/hp/models/compute/image.rb +37 -0
  955. data/lib/fog/hp/models/compute/images.rb +34 -0
  956. data/lib/fog/hp/models/compute/key_pair.rb +59 -0
  957. data/lib/fog/hp/models/compute/key_pairs.rb +31 -0
  958. data/lib/fog/hp/models/compute/security_group.rb +50 -0
  959. data/lib/fog/hp/models/compute/security_groups.rb +29 -0
  960. data/lib/fog/hp/models/compute/server.rb +225 -0
  961. data/lib/fog/hp/models/compute/servers.rb +36 -0
  962. data/lib/fog/hp/models/storage/directories.rb +50 -0
  963. data/lib/fog/hp/models/storage/directory.rb +160 -0
  964. data/lib/fog/hp/models/storage/file.rb +87 -0
  965. data/lib/fog/hp/models/storage/files.rb +103 -0
  966. data/lib/fog/hp/requests/cdn/delete_container.rb +38 -0
  967. data/lib/fog/hp/requests/cdn/get_containers.rb +44 -0
  968. data/lib/fog/hp/requests/cdn/head_container.rb +50 -0
  969. data/lib/fog/hp/requests/cdn/post_container.rb +52 -0
  970. data/lib/fog/hp/requests/cdn/put_container.rb +53 -0
  971. data/lib/fog/hp/requests/compute/allocate_address.rb +49 -0
  972. data/lib/fog/hp/requests/compute/associate_address.rb +42 -0
  973. data/lib/fog/hp/requests/compute/change_password_server.rb +33 -0
  974. data/lib/fog/hp/requests/compute/confirm_resized_server.rb +34 -0
  975. data/lib/fog/hp/requests/compute/create_image.rb +63 -0
  976. data/lib/fog/hp/requests/compute/create_key_pair.rb +81 -0
  977. data/lib/fog/hp/requests/compute/create_security_group.rb +83 -0
  978. data/lib/fog/hp/requests/compute/create_security_group_rule.rb +75 -0
  979. data/lib/fog/hp/requests/compute/create_server.rb +140 -0
  980. data/lib/fog/hp/requests/compute/delete_image.rb +45 -0
  981. data/lib/fog/hp/requests/compute/delete_key_pair.rb +39 -0
  982. data/lib/fog/hp/requests/compute/delete_security_group.rb +41 -0
  983. data/lib/fog/hp/requests/compute/delete_security_group_rule.rb +49 -0
  984. data/lib/fog/hp/requests/compute/delete_server.rb +43 -0
  985. data/lib/fog/hp/requests/compute/disassociate_address.rb +39 -0
  986. data/lib/fog/hp/requests/compute/get_address.rb +45 -0
  987. data/lib/fog/hp/requests/compute/get_flavor_details.rb +51 -0
  988. data/lib/fog/hp/requests/compute/get_image_details.rb +43 -0
  989. data/lib/fog/hp/requests/compute/get_security_group.rb +57 -0
  990. data/lib/fog/hp/requests/compute/get_server_details.rb +52 -0
  991. data/lib/fog/hp/requests/compute/list_addresses.rb +41 -0
  992. data/lib/fog/hp/requests/compute/list_flavors.rb +44 -0
  993. data/lib/fog/hp/requests/compute/list_flavors_detail.rb +46 -0
  994. data/lib/fog/hp/requests/compute/list_images.rb +40 -0
  995. data/lib/fog/hp/requests/compute/list_images_detail.rb +49 -0
  996. data/lib/fog/hp/requests/compute/list_key_pairs.rb +44 -0
  997. data/lib/fog/hp/requests/compute/list_security_groups.rb +54 -0
  998. data/lib/fog/hp/requests/compute/list_server_addresses.rb +42 -0
  999. data/lib/fog/hp/requests/compute/list_server_private_addresses.rb +58 -0
  1000. data/lib/fog/hp/requests/compute/list_server_public_addresses.rb +58 -0
  1001. data/lib/fog/hp/requests/compute/list_servers.rb +41 -0
  1002. data/lib/fog/hp/requests/compute/list_servers_detail.rb +56 -0
  1003. data/lib/fog/hp/requests/compute/reboot_server.rb +34 -0
  1004. data/lib/fog/hp/requests/compute/rebuild_server.rb +32 -0
  1005. data/lib/fog/hp/requests/compute/release_address.rb +39 -0
  1006. data/lib/fog/hp/requests/compute/resize_server.rb +39 -0
  1007. data/lib/fog/hp/requests/compute/revert_resized_server.rb +35 -0
  1008. data/lib/fog/hp/requests/compute/server_action.rb +25 -0
  1009. data/lib/fog/hp/requests/compute/update_server.rb +42 -0
  1010. data/lib/fog/hp/requests/storage/delete_container.rb +43 -0
  1011. data/lib/fog/hp/requests/storage/delete_object.rb +44 -0
  1012. data/lib/fog/hp/requests/storage/get_container.rb +92 -0
  1013. data/lib/fog/hp/requests/storage/get_containers.rb +71 -0
  1014. data/lib/fog/hp/requests/storage/get_object.rb +77 -0
  1015. data/lib/fog/hp/requests/storage/head_container.rb +40 -0
  1016. data/lib/fog/hp/requests/storage/head_containers.rb +37 -0
  1017. data/lib/fog/hp/requests/storage/head_object.rb +35 -0
  1018. data/lib/fog/hp/requests/storage/put_container.rb +48 -0
  1019. data/lib/fog/hp/requests/storage/put_object.rb +94 -0
  1020. data/lib/fog/hp/storage.rb +201 -0
  1021. data/lib/fog/hp.rb +234 -0
  1022. data/lib/fog/ibm/compute.rb +235 -0
  1023. data/lib/fog/ibm/models/compute/address.rb +62 -0
  1024. data/lib/fog/ibm/models/compute/addresses.rb +28 -0
  1025. data/lib/fog/ibm/models/compute/image.rb +70 -0
  1026. data/lib/fog/ibm/models/compute/images.rb +27 -0
  1027. data/lib/fog/ibm/models/compute/instance-type.rb +14 -0
  1028. data/lib/fog/ibm/models/compute/instance-types.rb +15 -0
  1029. data/lib/fog/ibm/models/compute/key.rb +35 -0
  1030. data/lib/fog/ibm/models/compute/keys.rb +35 -0
  1031. data/lib/fog/ibm/models/compute/location.rb +15 -0
  1032. data/lib/fog/ibm/models/compute/locations.rb +27 -0
  1033. data/lib/fog/ibm/models/compute/server.rb +193 -0
  1034. data/lib/fog/ibm/models/compute/servers.rb +27 -0
  1035. data/lib/fog/ibm/models/compute/vlan.rb +15 -0
  1036. data/lib/fog/ibm/models/compute/vlans.rb +28 -0
  1037. data/lib/fog/ibm/models/storage/offering.rb +18 -0
  1038. data/lib/fog/ibm/models/storage/offerings.rb +19 -0
  1039. data/lib/fog/ibm/models/storage/volume.rb +98 -0
  1040. data/lib/fog/ibm/models/storage/volumes.rb +27 -0
  1041. data/lib/fog/ibm/requests/compute/clone_image.rb +48 -0
  1042. data/lib/fog/ibm/requests/compute/create_address.rb +50 -0
  1043. data/lib/fog/ibm/requests/compute/create_image.rb +56 -0
  1044. data/lib/fog/ibm/requests/compute/create_instance.rb +80 -0
  1045. data/lib/fog/ibm/requests/compute/create_key.rb +61 -0
  1046. data/lib/fog/ibm/requests/compute/delete_address.rb +46 -0
  1047. data/lib/fog/ibm/requests/compute/delete_image.rb +43 -0
  1048. data/lib/fog/ibm/requests/compute/delete_instance.rb +52 -0
  1049. data/lib/fog/ibm/requests/compute/delete_key.rb +41 -0
  1050. data/lib/fog/ibm/requests/compute/get_image.rb +67 -0
  1051. data/lib/fog/ibm/requests/compute/get_image_agreement.rb +66 -0
  1052. data/lib/fog/ibm/requests/compute/get_image_manifest.rb +39 -0
  1053. data/lib/fog/ibm/requests/compute/get_instance.rb +76 -0
  1054. data/lib/fog/ibm/requests/compute/get_instance_logs.rb +25 -0
  1055. data/lib/fog/ibm/requests/compute/get_key.rb +49 -0
  1056. data/lib/fog/ibm/requests/compute/get_location.rb +55 -0
  1057. data/lib/fog/ibm/requests/compute/get_request.rb +78 -0
  1058. data/lib/fog/ibm/requests/compute/list_address_offerings.rb +58 -0
  1059. data/lib/fog/ibm/requests/compute/list_addresses.rb +53 -0
  1060. data/lib/fog/ibm/requests/compute/list_images.rb +58 -0
  1061. data/lib/fog/ibm/requests/compute/list_instances.rb +57 -0
  1062. data/lib/fog/ibm/requests/compute/list_keys.rb +57 -0
  1063. data/lib/fog/ibm/requests/compute/list_locations.rb +37 -0
  1064. data/lib/fog/ibm/requests/compute/list_vlans.rb +47 -0
  1065. data/lib/fog/ibm/requests/compute/modify_instance.rb +71 -0
  1066. data/lib/fog/ibm/requests/compute/modify_key.rb +52 -0
  1067. data/lib/fog/ibm/requests/storage/create_volume.rb +66 -0
  1068. data/lib/fog/ibm/requests/storage/delete_volume.rb +42 -0
  1069. data/lib/fog/ibm/requests/storage/get_volume.rb +72 -0
  1070. data/lib/fog/ibm/requests/storage/list_offerings.rb +76 -0
  1071. data/lib/fog/ibm/requests/storage/list_volumes.rb +47 -0
  1072. data/lib/fog/ibm/storage.rb +82 -0
  1073. data/lib/fog/ibm.rb +176 -0
  1074. data/lib/fog/identity.rb +24 -0
  1075. data/lib/fog/image.rb +24 -0
  1076. data/lib/fog/joyent/compute.rb +243 -0
  1077. data/lib/fog/joyent/errors.rb +90 -0
  1078. data/lib/fog/joyent/models/compute/flavor.rb +17 -0
  1079. data/lib/fog/joyent/models/compute/flavors.rb +25 -0
  1080. data/lib/fog/joyent/models/compute/image.rb +18 -0
  1081. data/lib/fog/joyent/models/compute/images.rb +25 -0
  1082. data/lib/fog/joyent/models/compute/key.rb +19 -0
  1083. data/lib/fog/joyent/models/compute/keys.rb +34 -0
  1084. data/lib/fog/joyent/models/compute/server.rb +116 -0
  1085. data/lib/fog/joyent/models/compute/servers.rb +35 -0
  1086. data/lib/fog/joyent/models/compute/snapshot.rb +45 -0
  1087. data/lib/fog/joyent/models/compute/snapshots.rb +37 -0
  1088. data/lib/fog/joyent/requests/compute/add_machine_tags.rb +20 -0
  1089. data/lib/fog/joyent/requests/compute/create_key.rb +56 -0
  1090. data/lib/fog/joyent/requests/compute/create_machine.rb +16 -0
  1091. data/lib/fog/joyent/requests/compute/create_machine_snapshot.rb +18 -0
  1092. data/lib/fog/joyent/requests/compute/delete_all_machine_metadata.rb +16 -0
  1093. data/lib/fog/joyent/requests/compute/delete_all_machine_tags.rb +15 -0
  1094. data/lib/fog/joyent/requests/compute/delete_key.rb +29 -0
  1095. data/lib/fog/joyent/requests/compute/delete_machine.rb +15 -0
  1096. data/lib/fog/joyent/requests/compute/delete_machine_metadata.rb +18 -0
  1097. data/lib/fog/joyent/requests/compute/delete_machine_snapshot.rb +21 -0
  1098. data/lib/fog/joyent/requests/compute/delete_machine_tag.rb +15 -0
  1099. data/lib/fog/joyent/requests/compute/get_dataset.rb +28 -0
  1100. data/lib/fog/joyent/requests/compute/get_key.rb +29 -0
  1101. data/lib/fog/joyent/requests/compute/get_machine.rb +29 -0
  1102. data/lib/fog/joyent/requests/compute/get_machine_metadata.rb +25 -0
  1103. data/lib/fog/joyent/requests/compute/get_machine_snapshot.rb +14 -0
  1104. data/lib/fog/joyent/requests/compute/get_machine_tag.rb +19 -0
  1105. data/lib/fog/joyent/requests/compute/get_package.rb +33 -0
  1106. data/lib/fog/joyent/requests/compute/list_datacenters.rb +17 -0
  1107. data/lib/fog/joyent/requests/compute/list_datasets.rb +24 -0
  1108. data/lib/fog/joyent/requests/compute/list_keys.rb +25 -0
  1109. data/lib/fog/joyent/requests/compute/list_machine_snapshots.rb +14 -0
  1110. data/lib/fog/joyent/requests/compute/list_machine_tags.rb +20 -0
  1111. data/lib/fog/joyent/requests/compute/list_machines.rb +25 -0
  1112. data/lib/fog/joyent/requests/compute/list_packages.rb +36 -0
  1113. data/lib/fog/joyent/requests/compute/reboot_machine.rb +15 -0
  1114. data/lib/fog/joyent/requests/compute/resize_machine.rb +13 -0
  1115. data/lib/fog/joyent/requests/compute/start_machine.rb +16 -0
  1116. data/lib/fog/joyent/requests/compute/start_machine_from_snapshot.rb +15 -0
  1117. data/lib/fog/joyent/requests/compute/stop_machine.rb +16 -0
  1118. data/lib/fog/joyent/requests/compute/update_machine_metadata.rb +15 -0
  1119. data/lib/fog/joyent.rb +8 -0
  1120. data/lib/fog/libvirt/compute.rb +60 -28
  1121. data/lib/fog/libvirt/models/compute/interface.rb +5 -25
  1122. data/lib/fog/libvirt/models/compute/interfaces.rb +7 -45
  1123. data/lib/fog/libvirt/models/compute/network.rb +3 -34
  1124. data/lib/fog/libvirt/models/compute/networks.rb +6 -43
  1125. data/lib/fog/libvirt/models/compute/nic.rb +54 -0
  1126. data/lib/fog/libvirt/models/compute/nics.rb +16 -0
  1127. data/lib/fog/libvirt/models/compute/node.rb +5 -16
  1128. data/lib/fog/libvirt/models/compute/nodes.rb +9 -26
  1129. data/lib/fog/libvirt/models/compute/pool.rb +26 -138
  1130. data/lib/fog/libvirt/models/compute/pools.rb +6 -42
  1131. data/lib/fog/libvirt/models/compute/server.rb +221 -329
  1132. data/lib/fog/libvirt/models/compute/servers.rb +8 -62
  1133. data/lib/fog/libvirt/models/compute/templates/server.xml.erb +17 -21
  1134. data/lib/fog/libvirt/models/compute/templates/volume.xml.erb +2 -2
  1135. data/lib/fog/libvirt/models/compute/util/uri.rb +145 -0
  1136. data/lib/fog/libvirt/models/compute/util/util.rb +33 -0
  1137. data/lib/fog/libvirt/models/compute/volume.rb +54 -122
  1138. data/lib/fog/libvirt/models/compute/volumes.rb +2 -65
  1139. data/lib/fog/libvirt/requests/compute/create_domain.rb +17 -0
  1140. data/lib/fog/libvirt/requests/compute/create_volume.rb +17 -0
  1141. data/lib/fog/libvirt/requests/compute/define_domain.rb +17 -0
  1142. data/lib/fog/libvirt/requests/compute/define_pool.rb +17 -0
  1143. data/lib/fog/libvirt/requests/compute/destroy_interface.rb +18 -0
  1144. data/lib/fog/libvirt/requests/compute/destroy_network.rb +17 -0
  1145. data/lib/fog/libvirt/requests/compute/get_node_info.rb +39 -0
  1146. data/lib/fog/libvirt/requests/compute/list_domains.rb +106 -0
  1147. data/lib/fog/libvirt/requests/compute/list_interfaces.rb +59 -0
  1148. data/lib/fog/libvirt/requests/compute/list_networks.rb +58 -0
  1149. data/lib/fog/libvirt/requests/compute/list_pool_volumes.rb +21 -0
  1150. data/lib/fog/libvirt/requests/compute/list_pools.rb +72 -0
  1151. data/lib/fog/libvirt/requests/compute/list_volumes.rb +89 -0
  1152. data/lib/fog/libvirt/requests/compute/mock_files/domain.xml +40 -0
  1153. data/lib/fog/libvirt/requests/compute/pool_action.rb +19 -0
  1154. data/lib/fog/libvirt/requests/compute/update_display.rb +31 -0
  1155. data/lib/fog/libvirt/requests/compute/vm_action.rb +19 -0
  1156. data/lib/fog/libvirt/requests/compute/volume_action.rb +18 -0
  1157. data/lib/fog/libvirt.rb +1 -1
  1158. data/lib/fog/linode/compute.rb +2 -3
  1159. data/lib/fog/linode/dns.rb +2 -3
  1160. data/lib/fog/linode/models/compute/server.rb +10 -0
  1161. data/lib/fog/linode/requests/compute/avail_datacenters.rb +20 -0
  1162. data/lib/fog/linode/requests/compute/avail_distributions.rb +38 -1
  1163. data/lib/fog/linode/requests/compute/avail_kernels.rb +36 -1
  1164. data/lib/fog/linode/requests/compute/avail_linodeplans.rb +37 -2
  1165. data/lib/fog/linode/requests/compute/avail_stackscripts.rb +44 -0
  1166. data/lib/fog/linode/requests/compute/linode_boot.rb +13 -0
  1167. data/lib/fog/linode/requests/compute/linode_config_create.rb +13 -0
  1168. data/lib/fog/linode/requests/compute/linode_config_list.rb +51 -0
  1169. data/lib/fog/linode/requests/compute/linode_create.rb +15 -2
  1170. data/lib/fog/linode/requests/compute/linode_delete.rb +13 -0
  1171. data/lib/fog/linode/requests/compute/linode_disk_create.rb +14 -0
  1172. data/lib/fog/linode/requests/compute/linode_disk_createfromdistribution.rb +14 -0
  1173. data/lib/fog/linode/requests/compute/linode_disk_createfromstackscript.rb +1 -1
  1174. data/lib/fog/linode/requests/compute/linode_disk_delete.rb +14 -0
  1175. data/lib/fog/linode/requests/compute/linode_disk_list.rb +40 -1
  1176. data/lib/fog/linode/requests/compute/linode_ip_list.rb +38 -0
  1177. data/lib/fog/linode/requests/compute/linode_list.rb +53 -0
  1178. data/lib/fog/linode/requests/compute/linode_reboot.rb +14 -1
  1179. data/lib/fog/linode/requests/compute/linode_shutdown.rb +13 -0
  1180. data/lib/fog/linode/requests/compute/linode_update.rb +13 -0
  1181. data/lib/fog/linode.rb +1 -1
  1182. data/lib/fog/local/models/storage/file.rb +20 -2
  1183. data/lib/fog/local/storage.rb +33 -1
  1184. data/lib/fog/local.rb +1 -1
  1185. data/lib/fog/ninefold/compute.rb +5 -8
  1186. data/lib/fog/ninefold/models/storage/file.rb +16 -6
  1187. data/lib/fog/ninefold/models/storage/files.rb +3 -2
  1188. data/lib/fog/ninefold/requests/storage/head_namespace.rb +20 -0
  1189. data/lib/fog/ninefold/storage.rb +7 -5
  1190. data/lib/fog/ninefold.rb +1 -1
  1191. data/lib/fog/openstack/compute.rb +238 -67
  1192. data/lib/fog/openstack/identity.rb +226 -0
  1193. data/lib/fog/openstack/image.rb +203 -0
  1194. data/lib/fog/openstack/models/compute/address.rb +71 -0
  1195. data/lib/fog/openstack/models/compute/addresses.rb +33 -0
  1196. data/lib/fog/openstack/models/compute/flavor.rb +24 -4
  1197. data/lib/fog/openstack/models/compute/host.rb +28 -0
  1198. data/lib/fog/openstack/models/compute/hosts.rb +32 -0
  1199. data/lib/fog/openstack/models/compute/key_pair.rb +60 -0
  1200. data/lib/fog/openstack/models/compute/key_pairs.rb +31 -0
  1201. data/lib/fog/openstack/models/compute/metadata.rb +5 -5
  1202. data/lib/fog/openstack/models/compute/metadatum.rb +29 -0
  1203. data/lib/fog/openstack/models/compute/network.rb +13 -0
  1204. data/lib/fog/openstack/models/compute/networks.rb +29 -0
  1205. data/lib/fog/openstack/models/compute/security_group.rb +44 -0
  1206. data/lib/fog/openstack/models/compute/security_groups.rb +27 -0
  1207. data/lib/fog/openstack/models/compute/server.rb +91 -5
  1208. data/lib/fog/openstack/models/compute/servers.rb +10 -2
  1209. data/lib/fog/openstack/models/compute/snapshot.rb +43 -0
  1210. data/lib/fog/openstack/models/compute/snapshots.rb +26 -0
  1211. data/lib/fog/openstack/models/compute/tenant.rb +24 -0
  1212. data/lib/fog/openstack/models/compute/tenants.rb +20 -0
  1213. data/lib/fog/openstack/models/compute/volume.rb +58 -0
  1214. data/lib/fog/openstack/models/compute/volumes.rb +26 -0
  1215. data/lib/fog/openstack/models/identity/role.rb +50 -0
  1216. data/lib/fog/openstack/models/identity/roles.rb +21 -0
  1217. data/lib/fog/openstack/models/identity/tenant.rb +62 -0
  1218. data/lib/fog/openstack/models/identity/tenants.rb +27 -0
  1219. data/lib/fog/openstack/models/identity/user.rb +64 -0
  1220. data/lib/fog/openstack/models/identity/users.rb +30 -0
  1221. data/lib/fog/openstack/models/image/image.rb +85 -0
  1222. data/lib/fog/openstack/models/image/images.rb +60 -0
  1223. data/lib/fog/openstack/models/volume/volume.rb +46 -0
  1224. data/lib/fog/openstack/models/volume/volumes.rb +27 -0
  1225. data/lib/fog/openstack/requests/compute/add_fixed_ip.rb +29 -0
  1226. data/lib/fog/openstack/requests/compute/allocate_address.rb +42 -0
  1227. data/lib/fog/openstack/requests/compute/associate_address.rb +27 -0
  1228. data/lib/fog/openstack/requests/compute/attach_volume.rb +28 -0
  1229. data/lib/fog/openstack/requests/compute/boot_from_snapshot.rb +41 -0
  1230. data/lib/fog/openstack/requests/compute/change_server_password.rb +24 -0
  1231. data/lib/fog/openstack/requests/compute/confirm_resize_server.rb +24 -0
  1232. data/lib/fog/openstack/requests/compute/create_flavor.rb +82 -0
  1233. data/lib/fog/openstack/requests/compute/create_image.rb +1 -1
  1234. data/lib/fog/openstack/requests/compute/create_key_pair.rb +49 -0
  1235. data/lib/fog/openstack/requests/compute/create_security_group.rb +47 -0
  1236. data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +56 -0
  1237. data/lib/fog/openstack/requests/compute/create_server.rb +21 -21
  1238. data/lib/fog/openstack/requests/compute/create_volume.rb +54 -0
  1239. data/lib/fog/openstack/requests/compute/create_volume_snapshot.rb +32 -0
  1240. data/lib/fog/openstack/requests/compute/delete_flavor.rb +28 -0
  1241. data/lib/fog/openstack/requests/compute/delete_key_pair.rb +31 -0
  1242. data/lib/fog/openstack/requests/compute/delete_metadata.rb +28 -0
  1243. data/lib/fog/openstack/requests/compute/delete_security_group.rb +31 -0
  1244. data/lib/fog/openstack/requests/compute/delete_security_group_rule.rb +31 -0
  1245. data/lib/fog/openstack/requests/compute/delete_snapshot.rb +26 -0
  1246. data/lib/fog/openstack/requests/compute/delete_volume.rb +26 -0
  1247. data/lib/fog/openstack/requests/compute/detach_volume.rb +21 -0
  1248. data/lib/fog/openstack/requests/compute/disassociate_address.rb +27 -0
  1249. data/lib/fog/openstack/requests/compute/get_address.rb +41 -0
  1250. data/lib/fog/openstack/requests/compute/get_console_output.rb +28 -0
  1251. data/lib/fog/openstack/requests/compute/get_flavor_details.rb +7 -7
  1252. data/lib/fog/openstack/requests/compute/get_host_details.rb +74 -0
  1253. data/lib/fog/openstack/requests/compute/get_metadata.rb +29 -0
  1254. data/lib/fog/openstack/requests/compute/get_quota.rb +31 -0
  1255. data/lib/fog/openstack/requests/compute/get_quota_defaults.rb +31 -0
  1256. data/lib/fog/openstack/requests/compute/get_security_group.rb +49 -0
  1257. data/lib/fog/openstack/requests/compute/get_server_volumes.rb +23 -0
  1258. data/lib/fog/openstack/requests/compute/get_snapshot_details.rb +39 -0
  1259. data/lib/fog/openstack/requests/compute/get_usage.rb +53 -0
  1260. data/lib/fog/openstack/requests/compute/get_vnc_console.rb +40 -0
  1261. data/lib/fog/openstack/requests/compute/get_volume_details.rb +42 -0
  1262. data/lib/fog/openstack/requests/compute/list_address_pools.rb +23 -0
  1263. data/lib/fog/openstack/requests/compute/list_all_addresses.rb +64 -0
  1264. data/lib/fog/openstack/requests/compute/list_flavors.rb +7 -7
  1265. data/lib/fog/openstack/requests/compute/list_flavors_detail.rb +7 -7
  1266. data/lib/fog/openstack/requests/compute/list_hosts.rb +32 -0
  1267. data/lib/fog/openstack/requests/compute/list_key_pairs.rb +39 -0
  1268. data/lib/fog/openstack/requests/compute/list_private_addresses.rb +1 -1
  1269. data/lib/fog/openstack/requests/compute/list_public_addresses.rb +1 -1
  1270. data/lib/fog/openstack/requests/compute/list_security_groups.rb +74 -0
  1271. data/lib/fog/openstack/requests/compute/list_servers.rb +6 -2
  1272. data/lib/fog/openstack/requests/compute/list_servers_detail.rb +8 -3
  1273. data/lib/fog/openstack/requests/compute/list_snapshots.rb +32 -0
  1274. data/lib/fog/openstack/requests/compute/list_tenants.rb +43 -0
  1275. data/lib/fog/openstack/requests/compute/list_usages.rb +43 -0
  1276. data/lib/fog/openstack/requests/compute/list_volumes.rb +51 -0
  1277. data/lib/fog/openstack/requests/compute/live_migrate_server.rb +31 -0
  1278. data/lib/fog/openstack/requests/compute/migrate_server.rb +24 -0
  1279. data/lib/fog/openstack/requests/compute/pause_server.rb +24 -0
  1280. data/lib/fog/openstack/requests/compute/release_address.rb +22 -0
  1281. data/lib/fog/openstack/requests/compute/remove_fixed_ip.rb +29 -0
  1282. data/lib/fog/openstack/requests/compute/rescue_server.rb +24 -0
  1283. data/lib/fog/openstack/requests/compute/resume_server.rb +24 -0
  1284. data/lib/fog/openstack/requests/compute/server_action.rb +2 -2
  1285. data/lib/fog/openstack/requests/compute/server_actions.rb +27 -0
  1286. data/lib/fog/openstack/requests/compute/server_diagnostics.rb +25 -0
  1287. data/lib/fog/openstack/requests/compute/set_metadata.rb +1 -1
  1288. data/lib/fog/openstack/requests/compute/set_tenant.rb +21 -0
  1289. data/lib/fog/openstack/requests/compute/suspend_server.rb +24 -0
  1290. data/lib/fog/openstack/requests/compute/unpause_server.rb +24 -0
  1291. data/lib/fog/openstack/requests/compute/update_metadata.rb +1 -1
  1292. data/lib/fog/openstack/requests/compute/update_quota.rb +32 -0
  1293. data/lib/fog/openstack/requests/compute/update_server.rb +1 -1
  1294. data/lib/fog/openstack/requests/identity/add_user_to_tenant.rb +29 -0
  1295. data/lib/fog/openstack/requests/identity/check_token.rb +23 -0
  1296. data/lib/fog/openstack/requests/identity/create_role.rb +37 -0
  1297. data/lib/fog/openstack/requests/identity/create_tenant.rb +34 -0
  1298. data/lib/fog/openstack/requests/identity/create_user.rb +47 -0
  1299. data/lib/fog/openstack/requests/identity/create_user_role.rb +26 -0
  1300. data/lib/fog/openstack/requests/identity/delete_role.rb +32 -0
  1301. data/lib/fog/openstack/requests/identity/delete_tenant.rb +31 -0
  1302. data/lib/fog/openstack/requests/identity/delete_user.rb +32 -0
  1303. data/lib/fog/openstack/requests/identity/delete_user_role.rb +26 -0
  1304. data/lib/fog/openstack/requests/identity/get_role.rb +28 -0
  1305. data/lib/fog/openstack/requests/identity/get_tenant.rb +31 -0
  1306. data/lib/fog/openstack/requests/identity/get_tenants_by_id.rb +23 -0
  1307. data/lib/fog/openstack/requests/identity/get_tenants_by_name.rb +23 -0
  1308. data/lib/fog/openstack/requests/identity/get_user_by_id.rb +34 -0
  1309. data/lib/fog/openstack/requests/identity/get_user_by_name.rb +23 -0
  1310. data/lib/fog/openstack/requests/identity/list_endpoints_for_token.rb +23 -0
  1311. data/lib/fog/openstack/requests/identity/list_roles.rb +29 -0
  1312. data/lib/fog/openstack/requests/identity/list_roles_for_user_on_tenant.rb +24 -0
  1313. data/lib/fog/openstack/requests/identity/list_tenants.rb +44 -0
  1314. data/lib/fog/openstack/requests/identity/list_user_global_roles.rb +22 -0
  1315. data/lib/fog/openstack/requests/identity/list_users.rb +25 -0
  1316. data/lib/fog/openstack/requests/identity/remove_user_from_tenant.rb +20 -0
  1317. data/lib/fog/openstack/requests/identity/update_tenant.rb +30 -0
  1318. data/lib/fog/openstack/requests/identity/update_user.rb +36 -0
  1319. data/lib/fog/openstack/requests/identity/validate_token.rb +23 -0
  1320. data/lib/fog/openstack/requests/image/add_member_to_image.rb +23 -0
  1321. data/lib/fog/openstack/requests/image/create_image.rb +79 -0
  1322. data/lib/fog/openstack/requests/image/delete_image.rb +27 -0
  1323. data/lib/fog/openstack/requests/image/get_image.rb +45 -0
  1324. data/lib/fog/openstack/requests/image/get_image_by_id.rb +32 -0
  1325. data/lib/fog/openstack/requests/image/get_image_members.rb +29 -0
  1326. data/lib/fog/openstack/requests/image/get_shared_images.rb +29 -0
  1327. data/lib/fog/openstack/requests/image/list_public_images.rb +50 -0
  1328. data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +70 -0
  1329. data/lib/fog/openstack/requests/image/remove_member_from_image.rb +23 -0
  1330. data/lib/fog/openstack/requests/image/set_tenant.rb +21 -0
  1331. data/lib/fog/openstack/requests/image/update_image.rb +65 -0
  1332. data/lib/fog/openstack/requests/volume/create_volume.rb +54 -0
  1333. data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +32 -0
  1334. data/lib/fog/openstack/requests/volume/delete_snapshot.rb +26 -0
  1335. data/lib/fog/openstack/requests/volume/delete_volume.rb +26 -0
  1336. data/lib/fog/openstack/requests/volume/get_snapshot_details.rb +39 -0
  1337. data/lib/fog/openstack/requests/volume/get_volume_details.rb +42 -0
  1338. data/lib/fog/openstack/requests/volume/list_snapshots.rb +32 -0
  1339. data/lib/fog/openstack/requests/volume/list_volumes.rb +55 -0
  1340. data/lib/fog/openstack/requests/volume/set_tenant.rb +21 -0
  1341. data/lib/fog/openstack/volume.rb +204 -0
  1342. data/lib/fog/openstack.rb +93 -36
  1343. data/lib/fog/ovirt/compute.rb +116 -0
  1344. data/lib/fog/ovirt/models/compute/cluster.rb +24 -0
  1345. data/lib/fog/ovirt/models/compute/clusters.rb +23 -0
  1346. data/lib/fog/ovirt/models/compute/interface.rb +22 -0
  1347. data/lib/fog/ovirt/models/compute/interfaces.rb +32 -0
  1348. data/lib/fog/ovirt/models/compute/server.rb +135 -0
  1349. data/lib/fog/ovirt/models/compute/servers.rb +30 -0
  1350. data/lib/fog/ovirt/models/compute/template.rb +60 -0
  1351. data/lib/fog/ovirt/models/compute/templates.rb +23 -0
  1352. data/lib/fog/ovirt/models/compute/volume.rb +35 -0
  1353. data/lib/fog/ovirt/models/compute/volumes.rb +32 -0
  1354. data/lib/fog/ovirt/requests/compute/add_interface.rb +23 -0
  1355. data/lib/fog/ovirt/requests/compute/add_volume.rb +23 -0
  1356. data/lib/fog/ovirt/requests/compute/create_vm.rb +20 -0
  1357. data/lib/fog/ovirt/requests/compute/datacenters.rb +22 -0
  1358. data/lib/fog/ovirt/requests/compute/destroy_interface.rb +25 -0
  1359. data/lib/fog/ovirt/requests/compute/destroy_vm.rb +22 -0
  1360. data/lib/fog/ovirt/requests/compute/destroy_volume.rb +25 -0
  1361. data/lib/fog/ovirt/requests/compute/get_cluster.rb +18 -0
  1362. data/lib/fog/ovirt/requests/compute/get_template.rb +18 -0
  1363. data/lib/fog/ovirt/requests/compute/get_virtual_machine.rb +18 -0
  1364. data/lib/fog/ovirt/requests/compute/list_clusters.rb +20 -0
  1365. data/lib/fog/ovirt/requests/compute/list_networks.rb +17 -0
  1366. data/lib/fog/ovirt/requests/compute/list_template_interfaces.rb +20 -0
  1367. data/lib/fog/ovirt/requests/compute/list_template_volumes.rb +20 -0
  1368. data/lib/fog/ovirt/requests/compute/list_templates.rb +20 -0
  1369. data/lib/fog/ovirt/requests/compute/list_virtual_machines.rb +20 -0
  1370. data/lib/fog/ovirt/requests/compute/list_vm_interfaces.rb +20 -0
  1371. data/lib/fog/ovirt/requests/compute/list_vm_volumes.rb +20 -0
  1372. data/lib/fog/ovirt/requests/compute/mock_files/cluster.xml +20 -0
  1373. data/lib/fog/ovirt/requests/compute/mock_files/clusters.xml +39 -0
  1374. data/lib/fog/ovirt/requests/compute/mock_files/data_centers.xml +17 -0
  1375. data/lib/fog/ovirt/requests/compute/mock_files/nics.xml +10 -0
  1376. data/lib/fog/ovirt/requests/compute/mock_files/storage_domains.xml +36 -0
  1377. data/lib/fog/ovirt/requests/compute/mock_files/template.xml +39 -0
  1378. data/lib/fog/ovirt/requests/compute/mock_files/templates.xml +110 -0
  1379. data/lib/fog/ovirt/requests/compute/mock_files/vm.xml +52 -0
  1380. data/lib/fog/ovirt/requests/compute/mock_files/vms.xml +152 -0
  1381. data/lib/fog/ovirt/requests/compute/mock_files/volumes.xml +40 -0
  1382. data/lib/fog/ovirt/requests/compute/storage_domains.rb +22 -0
  1383. data/lib/fog/ovirt/requests/compute/update_interface.rb +25 -0
  1384. data/lib/fog/ovirt/requests/compute/update_vm.rb +20 -0
  1385. data/lib/fog/ovirt/requests/compute/vm_action.rb +26 -0
  1386. data/lib/fog/ovirt/requests/compute/vm_ticket.rb +21 -0
  1387. data/lib/fog/ovirt.rb +17 -0
  1388. data/lib/fog/providers.rb +8 -2
  1389. data/lib/fog/rackspace/cdn.rb +2 -3
  1390. data/lib/fog/rackspace/compute.rb +111 -7
  1391. data/lib/fog/rackspace/databases.rb +121 -0
  1392. data/lib/fog/rackspace/dns.rb +12 -5
  1393. data/lib/fog/rackspace/identity.rb +83 -0
  1394. data/lib/fog/rackspace/load_balancers.rb +9 -3
  1395. data/lib/fog/rackspace/models/compute/flavor.rb +2 -0
  1396. data/lib/fog/rackspace/models/compute/images.rb +3 -1
  1397. data/lib/fog/rackspace/models/compute/server.rb +4 -4
  1398. data/lib/fog/rackspace/models/databases/database.rb +32 -0
  1399. data/lib/fog/rackspace/models/databases/databases.rb +31 -0
  1400. data/lib/fog/rackspace/models/databases/flavor.rb +15 -0
  1401. data/lib/fog/rackspace/models/databases/flavors.rb +25 -0
  1402. data/lib/fog/rackspace/models/databases/instance.rb +104 -0
  1403. data/lib/fog/rackspace/models/databases/instances.rb +25 -0
  1404. data/lib/fog/rackspace/models/databases/user.rb +32 -0
  1405. data/lib/fog/rackspace/models/databases/users.rb +31 -0
  1406. data/lib/fog/rackspace/models/dns/callback.rb +3 -1
  1407. data/lib/fog/rackspace/models/dns/record.rb +5 -1
  1408. data/lib/fog/rackspace/models/dns/zone.rb +1 -1
  1409. data/lib/fog/rackspace/models/identity/credential.rb +13 -0
  1410. data/lib/fog/rackspace/models/identity/credentials.rb +32 -0
  1411. data/lib/fog/rackspace/models/identity/role.rb +14 -0
  1412. data/lib/fog/rackspace/models/identity/roles.rb +32 -0
  1413. data/lib/fog/rackspace/models/identity/tenant.rb +15 -0
  1414. data/lib/fog/rackspace/models/identity/tenants.rb +28 -0
  1415. data/lib/fog/rackspace/models/identity/user.rb +53 -0
  1416. data/lib/fog/rackspace/models/identity/users.rb +36 -0
  1417. data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +43 -9
  1418. data/lib/fog/rackspace/models/storage/directory.rb +5 -1
  1419. data/lib/fog/rackspace/models/storage/file.rb +10 -1
  1420. data/lib/fog/rackspace/models/storage/files.rb +1 -1
  1421. data/lib/fog/rackspace/requests/compute/create_image.rb +2 -4
  1422. data/lib/fog/rackspace/requests/compute/create_server.rb +1 -1
  1423. data/lib/fog/rackspace/requests/compute/get_server_details.rb +1 -1
  1424. data/lib/fog/rackspace/requests/compute/server_action.rb +1 -1
  1425. data/lib/fog/rackspace/requests/compute/update_server.rb +1 -1
  1426. data/lib/fog/rackspace/requests/databases/check_root_user.rb +15 -0
  1427. data/lib/fog/rackspace/requests/databases/create_database.rb +24 -0
  1428. data/lib/fog/rackspace/requests/databases/create_instance.rb +26 -0
  1429. data/lib/fog/rackspace/requests/databases/create_user.rb +24 -0
  1430. data/lib/fog/rackspace/requests/databases/delete_database.rb +15 -0
  1431. data/lib/fog/rackspace/requests/databases/delete_instance.rb +15 -0
  1432. data/lib/fog/rackspace/requests/databases/delete_user.rb +15 -0
  1433. data/lib/fog/rackspace/requests/databases/enable_root_user.rb +15 -0
  1434. data/lib/fog/rackspace/requests/databases/get_flavor.rb +15 -0
  1435. data/lib/fog/rackspace/requests/databases/get_instance.rb +15 -0
  1436. data/lib/fog/rackspace/requests/databases/list_databases.rb +15 -0
  1437. data/lib/fog/rackspace/requests/databases/list_flavors.rb +15 -0
  1438. data/lib/fog/rackspace/requests/databases/list_instances.rb +15 -0
  1439. data/lib/fog/rackspace/requests/databases/list_users.rb +15 -0
  1440. data/lib/fog/rackspace/requests/databases/resize_instance.rb +22 -0
  1441. data/lib/fog/rackspace/requests/databases/resize_instance_volume.rb +24 -0
  1442. data/lib/fog/rackspace/requests/databases/restart_instance.rb +20 -0
  1443. data/lib/fog/rackspace/requests/dns/add_records.rb +1 -1
  1444. data/lib/fog/rackspace/requests/dns/create_domains.rb +1 -1
  1445. data/lib/fog/rackspace/requests/dns/modify_domain.rb +1 -1
  1446. data/lib/fog/rackspace/requests/dns/modify_record.rb +1 -1
  1447. data/lib/fog/rackspace/requests/identity/create_token.rb +25 -0
  1448. data/lib/fog/rackspace/requests/identity/create_user.rb +25 -0
  1449. data/lib/fog/rackspace/requests/identity/delete_user.rb +15 -0
  1450. data/lib/fog/rackspace/requests/identity/get_credentials.rb +15 -0
  1451. data/lib/fog/rackspace/requests/identity/get_user_by_id.rb +15 -0
  1452. data/lib/fog/rackspace/requests/identity/get_user_by_name.rb +15 -0
  1453. data/lib/fog/rackspace/requests/identity/list_credentials.rb +22 -0
  1454. data/lib/fog/rackspace/requests/identity/list_tenants.rb +22 -0
  1455. data/lib/fog/rackspace/requests/identity/list_user_roles.rb +22 -0
  1456. data/lib/fog/rackspace/requests/identity/list_users.rb +22 -0
  1457. data/lib/fog/rackspace/requests/identity/update_user.rb +24 -0
  1458. data/lib/fog/rackspace/requests/load_balancers/create_access_rule.rb +1 -1
  1459. data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +5 -2
  1460. data/lib/fog/rackspace/requests/load_balancers/create_node.rb +1 -1
  1461. data/lib/fog/rackspace/requests/load_balancers/create_virtual_ip.rb +1 -1
  1462. data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +1 -2
  1463. data/lib/fog/rackspace/requests/load_balancers/get_error_page.rb +15 -0
  1464. data/lib/fog/rackspace/requests/load_balancers/get_ssl_termination.rb +15 -0
  1465. data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +8 -2
  1466. data/lib/fog/rackspace/requests/load_balancers/remove_error_page.rb +15 -0
  1467. data/lib/fog/rackspace/requests/load_balancers/remove_ssl_termination.rb +15 -0
  1468. data/lib/fog/rackspace/requests/load_balancers/set_connection_logging.rb +1 -1
  1469. data/lib/fog/rackspace/requests/load_balancers/set_connection_throttling.rb +1 -1
  1470. data/lib/fog/rackspace/requests/load_balancers/set_error_page.rb +21 -0
  1471. data/lib/fog/rackspace/requests/load_balancers/set_monitor.rb +1 -1
  1472. data/lib/fog/rackspace/requests/load_balancers/set_session_persistence.rb +1 -1
  1473. data/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb +31 -0
  1474. data/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb +1 -1
  1475. data/lib/fog/rackspace/requests/load_balancers/update_node.rb +1 -1
  1476. data/lib/fog/rackspace/requests/storage/copy_object.rb +27 -0
  1477. data/lib/fog/rackspace/requests/storage/get_object.rb +8 -2
  1478. data/lib/fog/rackspace/requests/storage/put_object.rb +6 -5
  1479. data/lib/fog/rackspace/storage.rb +39 -12
  1480. data/lib/fog/rackspace.rb +4 -2
  1481. data/lib/fog/storage.rb +19 -12
  1482. data/lib/fog/storm_on_demand/compute.rb +3 -4
  1483. data/lib/fog/storm_on_demand/models/compute/balancers.rb +1 -1
  1484. data/lib/fog/storm_on_demand/models/compute/configs.rb +1 -1
  1485. data/lib/fog/storm_on_demand/models/compute/images.rb +1 -1
  1486. data/lib/fog/storm_on_demand/models/compute/servers.rb +1 -1
  1487. data/lib/fog/storm_on_demand/models/compute/templates.rb +1 -1
  1488. data/lib/fog/storm_on_demand/requests/compute/add_balancer_node.rb +1 -1
  1489. data/lib/fog/storm_on_demand/requests/compute/clone_server.rb +1 -1
  1490. data/lib/fog/storm_on_demand/requests/compute/create_server.rb +1 -1
  1491. data/lib/fog/storm_on_demand/requests/compute/delete_server.rb +1 -1
  1492. data/lib/fog/storm_on_demand/requests/compute/get_server.rb +1 -1
  1493. data/lib/fog/storm_on_demand/requests/compute/get_stats.rb +1 -1
  1494. data/lib/fog/storm_on_demand/requests/compute/list_balancers.rb +1 -1
  1495. data/lib/fog/storm_on_demand/requests/compute/list_configs.rb +1 -1
  1496. data/lib/fog/storm_on_demand/requests/compute/list_images.rb +1 -1
  1497. data/lib/fog/storm_on_demand/requests/compute/list_private_ips.rb +1 -1
  1498. data/lib/fog/storm_on_demand/requests/compute/list_servers.rb +1 -1
  1499. data/lib/fog/storm_on_demand/requests/compute/list_templates.rb +1 -1
  1500. data/lib/fog/storm_on_demand/requests/compute/reboot_server.rb +1 -1
  1501. data/lib/fog/storm_on_demand/requests/compute/remove_balancer_node.rb +1 -1
  1502. data/lib/fog/storm_on_demand/requests/compute/resize_server.rb +1 -1
  1503. data/lib/fog/storm_on_demand.rb +1 -1
  1504. data/lib/fog/terremark/shared.rb +1 -1
  1505. data/lib/fog/terremark/vcloud.rb +1 -1
  1506. data/lib/fog/terremark.rb +1 -1
  1507. data/lib/fog/vcloud/compute.rb +93 -32
  1508. data/lib/fog/vcloud/models/compute/catalog.rb +1 -1
  1509. data/lib/fog/vcloud/models/compute/catalog_item.rb +1 -1
  1510. data/lib/fog/vcloud/models/compute/catalogs.rb +5 -8
  1511. data/lib/fog/vcloud/models/compute/helpers/status.rb +37 -0
  1512. data/lib/fog/vcloud/models/compute/ip.rb +2 -2
  1513. data/lib/fog/vcloud/models/compute/network.rb +9 -51
  1514. data/lib/fog/vcloud/models/compute/networks.rb +21 -7
  1515. data/lib/fog/vcloud/models/compute/organization.rb +43 -0
  1516. data/lib/fog/vcloud/models/compute/organizations.rb +32 -0
  1517. data/lib/fog/vcloud/models/compute/server.rb +38 -58
  1518. data/lib/fog/vcloud/models/compute/servers.rb +12 -18
  1519. data/lib/fog/vcloud/models/compute/task.rb +1 -1
  1520. data/lib/fog/vcloud/models/compute/tasks.rb +1 -3
  1521. data/lib/fog/vcloud/models/compute/vapp.rb +43 -0
  1522. data/lib/fog/vcloud/models/compute/vapps.rb +28 -0
  1523. data/lib/fog/vcloud/models/compute/vdc.rb +14 -29
  1524. data/lib/fog/vcloud/models/compute/vdcs.rb +6 -11
  1525. data/lib/fog/vcloud/requests/compute/clone_vapp.rb +1 -1
  1526. data/lib/fog/vcloud/requests/compute/configure_network.rb +1 -1
  1527. data/lib/fog/vcloud/requests/compute/configure_network_ip.rb +1 -1
  1528. data/lib/fog/vcloud/requests/compute/configure_vapp.rb +1 -1
  1529. data/lib/fog/vcloud/requests/compute/configure_vm.rb +2 -140
  1530. data/lib/fog/vcloud/requests/compute/get_server.rb +10 -0
  1531. data/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb +1 -1
  1532. data/lib/fog/vcloud/requests/compute/login.rb +8 -4
  1533. data/lib/fog/vcloud.rb +1 -1
  1534. data/lib/fog/virtual_box/compute.rb +5 -1
  1535. data/lib/fog/virtual_box/models/compute/server.rb +2 -2
  1536. data/lib/fog/virtual_box.rb +1 -1
  1537. data/lib/fog/vmfusion/compute.rb +1 -1
  1538. data/lib/fog/vmfusion/models/compute/server.rb +120 -52
  1539. data/lib/fog/vmfusion/models/compute/servers.rb +11 -7
  1540. data/lib/fog/vmfusion.rb +1 -1
  1541. data/lib/fog/volume.rb +25 -0
  1542. data/lib/fog/voxel/compute.rb +2 -2
  1543. data/lib/fog/voxel.rb +1 -1
  1544. data/lib/fog/vsphere/compute.rb +49 -23
  1545. data/lib/fog/vsphere/models/compute/server.rb +76 -1
  1546. data/lib/fog/vsphere/models/compute/servers.rb +8 -2
  1547. data/lib/fog/vsphere/requests/compute/datacenters.rb +34 -0
  1548. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +168 -95
  1549. data/lib/fog/vsphere/requests/compute/vm_clone.rb +127 -42
  1550. data/lib/fog/vsphere/requests/compute/vm_config_vnc.rb +47 -0
  1551. data/lib/fog/vsphere/requests/compute/vm_create.rb +97 -0
  1552. data/lib/fog/vsphere/requests/compute/vm_migrate.rb +37 -0
  1553. data/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb +23 -0
  1554. data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +25 -0
  1555. data/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb +23 -0
  1556. data/lib/fog/xenserver/compute.rb +122 -0
  1557. data/lib/fog/xenserver/models/compute/guest_metrics.rb +28 -0
  1558. data/lib/fog/xenserver/models/compute/host.rb +46 -0
  1559. data/lib/fog/xenserver/models/compute/hosts.rb +29 -0
  1560. data/lib/fog/xenserver/models/compute/network.rb +58 -0
  1561. data/lib/fog/xenserver/models/compute/networks.rb +33 -0
  1562. data/lib/fog/xenserver/models/compute/pbd.rb +33 -0
  1563. data/lib/fog/xenserver/models/compute/pbds.rb +33 -0
  1564. data/lib/fog/xenserver/models/compute/pif.rb +46 -0
  1565. data/lib/fog/xenserver/models/compute/pifs.rb +33 -0
  1566. data/lib/fog/xenserver/models/compute/pool.rb +40 -0
  1567. data/lib/fog/xenserver/models/compute/pools.rb +33 -0
  1568. data/lib/fog/xenserver/models/compute/server.rb +211 -0
  1569. data/lib/fog/xenserver/models/compute/servers.rb +63 -0
  1570. data/lib/fog/xenserver/models/compute/storage_repositories.rb +31 -0
  1571. data/lib/fog/xenserver/models/compute/storage_repository.rb +47 -0
  1572. data/lib/fog/xenserver/models/compute/vbd.rb +90 -0
  1573. data/lib/fog/xenserver/models/compute/vbd_metrics.rb +27 -0
  1574. data/lib/fog/xenserver/models/compute/vbds.rb +33 -0
  1575. data/lib/fog/xenserver/models/compute/vdi.rb +102 -0
  1576. data/lib/fog/xenserver/models/compute/vdis.rb +29 -0
  1577. data/lib/fog/xenserver/models/compute/vif.rb +51 -0
  1578. data/lib/fog/xenserver/models/compute/vifs.rb +29 -0
  1579. data/lib/fog/xenserver/parser.rb +36 -0
  1580. data/lib/fog/xenserver/parsers/get_hosts.rb +19 -0
  1581. data/lib/fog/xenserver/parsers/get_networks.rb +19 -0
  1582. data/lib/fog/xenserver/parsers/get_pools.rb +19 -0
  1583. data/lib/fog/xenserver/parsers/get_records.rb +19 -0
  1584. data/lib/fog/xenserver/parsers/get_storage_repositories.rb +19 -0
  1585. data/lib/fog/xenserver/parsers/get_vbds.rb +19 -0
  1586. data/lib/fog/xenserver/parsers/get_vifs.rb +19 -0
  1587. data/lib/fog/xenserver/parsers/get_vms.rb +20 -0
  1588. data/lib/fog/xenserver/requests/compute/clone_server.rb +31 -0
  1589. data/lib/fog/xenserver/requests/compute/create_server.rb +126 -0
  1590. data/lib/fog/xenserver/requests/compute/create_vbd.rb +40 -0
  1591. data/lib/fog/xenserver/requests/compute/create_vdi.rb +33 -0
  1592. data/lib/fog/xenserver/requests/compute/create_vif.rb +57 -0
  1593. data/lib/fog/xenserver/requests/compute/destroy_server.rb +22 -0
  1594. data/lib/fog/xenserver/requests/compute/destroy_vdi.rb +22 -0
  1595. data/lib/fog/xenserver/requests/compute/destroy_vif.rb +22 -0
  1596. data/lib/fog/xenserver/requests/compute/eject_vbd.rb +22 -0
  1597. data/lib/fog/xenserver/requests/compute/get_record.rb +29 -0
  1598. data/lib/fog/xenserver/requests/compute/get_records.rb +30 -0
  1599. data/lib/fog/xenserver/requests/compute/insert_vbd.rb +22 -0
  1600. data/lib/fog/xenserver/requests/compute/provision_server.rb +21 -0
  1601. data/lib/fog/xenserver/requests/compute/reboot_server.rb +23 -0
  1602. data/lib/fog/xenserver/requests/compute/scan_sr.rb +22 -0
  1603. data/lib/fog/xenserver/requests/compute/set_affinity.rb +25 -0
  1604. data/lib/fog/xenserver/requests/compute/set_attribute.rb +25 -0
  1605. data/lib/fog/xenserver/requests/compute/shutdown_server.rb +23 -0
  1606. data/lib/fog/xenserver/requests/compute/start_server.rb +23 -0
  1607. data/lib/fog/xenserver/requests/compute/start_vm.rb +25 -0
  1608. data/lib/fog/xenserver/requests/compute/unplug_vbd.rb +30 -0
  1609. data/lib/fog/xenserver/utilities.rb +8 -0
  1610. data/lib/fog/xenserver.rb +56 -0
  1611. data/lib/fog/zerigo/dns.rb +15 -4
  1612. data/lib/fog/zerigo/models/dns/record.rb +8 -6
  1613. data/lib/fog/zerigo/models/dns/records.rb +5 -0
  1614. data/lib/fog/zerigo/models/dns/zones.rb +2 -2
  1615. data/lib/fog/zerigo/parsers/dns/create_host.rb +3 -1
  1616. data/lib/fog/zerigo/parsers/dns/find_hosts.rb +3 -1
  1617. data/lib/fog/zerigo/parsers/dns/get_host.rb +3 -1
  1618. data/lib/fog/zerigo/parsers/dns/get_zone.rb +3 -1
  1619. data/lib/fog/zerigo/parsers/dns/list_hosts.rb +3 -1
  1620. data/lib/fog/zerigo/requests/dns/count_hosts.rb +20 -1
  1621. data/lib/fog/zerigo/requests/dns/count_zones.rb +12 -1
  1622. data/lib/fog/zerigo/requests/dns/create_host.rb +67 -1
  1623. data/lib/fog/zerigo/requests/dns/create_zone.rb +44 -1
  1624. data/lib/fog/zerigo/requests/dns/delete_host.rb +19 -0
  1625. data/lib/fog/zerigo/requests/dns/delete_zone.rb +17 -0
  1626. data/lib/fog/zerigo/requests/dns/find_hosts.rb +22 -1
  1627. data/lib/fog/zerigo/requests/dns/get_host.rb +18 -1
  1628. data/lib/fog/zerigo/requests/dns/get_zone.rb +19 -2
  1629. data/lib/fog/zerigo/requests/dns/get_zone_stats.rb +23 -0
  1630. data/lib/fog/zerigo/requests/dns/list_hosts.rb +20 -1
  1631. data/lib/fog/zerigo/requests/dns/list_zones.rb +15 -0
  1632. data/lib/fog/zerigo/requests/dns/update_host.rb +22 -3
  1633. data/lib/fog/zerigo/requests/dns/update_zone.rb +20 -1
  1634. data/lib/fog/zerigo.rb +1 -1
  1635. data/lib/fog.rb +4 -1
  1636. data/tests/aws/credentials_tests.rb +57 -0
  1637. data/tests/aws/models/beanstalk/application_tests.rb +70 -0
  1638. data/tests/aws/models/beanstalk/applications_tests.rb +7 -0
  1639. data/tests/aws/models/beanstalk/environment_tests.rb +132 -0
  1640. data/tests/aws/models/beanstalk/environments_tests.rb +34 -0
  1641. data/tests/aws/models/beanstalk/template_tests.rb +47 -0
  1642. data/tests/aws/models/beanstalk/templates_tests.rb +62 -0
  1643. data/tests/aws/models/beanstalk/version_tests.rb +66 -0
  1644. data/tests/aws/models/beanstalk/versions_tests.rb +61 -0
  1645. data/tests/aws/models/cloud_watch/alarm_data_tests.rb +42 -0
  1646. data/tests/aws/models/cloud_watch/alarm_history_tests.rb +22 -0
  1647. data/tests/aws/models/compute/address_tests.rb +8 -0
  1648. data/tests/aws/models/compute/dhcp_option_tests.rb +4 -0
  1649. data/tests/aws/models/compute/dhcp_options_tests.rb +4 -0
  1650. data/tests/aws/models/compute/internet_gateway_tests.rb +3 -0
  1651. data/tests/aws/models/compute/internet_gateways_tests.rb +4 -0
  1652. data/tests/aws/models/compute/network_interfaces_test.rb +12 -0
  1653. data/tests/aws/models/compute/security_group_tests.rb +29 -10
  1654. data/tests/aws/models/compute/subnet_tests.rb +5 -0
  1655. data/tests/aws/models/compute/subnets_tests.rb +6 -0
  1656. data/tests/aws/models/compute/volume_tests.rb +6 -2
  1657. data/tests/aws/models/compute/vpc_tests.rb +4 -0
  1658. data/tests/aws/models/compute/vpcs_tests.rb +6 -0
  1659. data/tests/aws/models/dns/record_tests.rb +35 -0
  1660. data/tests/aws/models/dns/records_tests.rb +41 -0
  1661. data/tests/aws/models/dns/zone_tests.rb +4 -0
  1662. data/tests/aws/models/dns/zones_tests.rb +4 -0
  1663. data/tests/aws/models/elb/model_tests.rb +55 -12
  1664. data/tests/aws/models/iam/access_keys_tests.rb +53 -0
  1665. data/tests/aws/models/iam/policies_tests.rb +56 -0
  1666. data/tests/aws/models/iam/users_tests.rb +54 -0
  1667. data/tests/aws/models/rds/security_group_tests.rb +6 -3
  1668. data/tests/aws/models/rds/security_groups_tests.rb +1 -2
  1669. data/tests/aws/models/rds/server_tests.rb +5 -3
  1670. data/tests/aws/models/rds/servers_tests.rb +1 -3
  1671. data/tests/aws/models/rds/snapshot_tests.rb +1 -3
  1672. data/tests/aws/models/rds/snapshots_tests.rb +1 -3
  1673. data/tests/aws/models/storage/directory_tests.rb +51 -0
  1674. data/tests/aws/models/storage/file_tests.rb +80 -0
  1675. data/tests/aws/models/storage/files_tests.rb +56 -0
  1676. data/tests/aws/models/storage/url_tests.rb +28 -0
  1677. data/tests/aws/models/storage/version_tests.rb +52 -0
  1678. data/tests/aws/models/storage/versions_tests.rb +56 -0
  1679. data/tests/aws/requests/auto_scaling/auto_scaling_tests.rb +4 -2
  1680. data/tests/aws/requests/auto_scaling/helper.rb +2 -2
  1681. data/tests/aws/requests/beanstalk/application_tests.rb +140 -0
  1682. data/tests/aws/requests/beanstalk/solution_stack_tests.rb +22 -0
  1683. data/tests/aws/requests/cloud_formation/stack_tests.rb +14 -0
  1684. data/tests/aws/requests/cloud_watch/list_metrics_test.rb +5 -5
  1685. data/tests/aws/requests/compute/address_tests.rb +24 -4
  1686. data/tests/aws/requests/compute/dhcp_options_tests.rb +40 -0
  1687. data/tests/aws/requests/compute/image_tests.rb +33 -2
  1688. data/tests/aws/requests/compute/instance_tests.rb +53 -1
  1689. data/tests/aws/requests/compute/internet_gateway_tests.rb +44 -0
  1690. data/tests/aws/requests/compute/network_interface_tests.rb +175 -0
  1691. data/tests/aws/requests/compute/security_group_tests.rb +328 -36
  1692. data/tests/aws/requests/compute/subnet_tests.rb +36 -0
  1693. data/tests/aws/requests/compute/tag_tests.rb +42 -2
  1694. data/tests/aws/requests/compute/volume_tests.rb +38 -5
  1695. data/tests/aws/requests/compute/vpc_tests.rb +34 -0
  1696. data/tests/aws/requests/dns/dns_tests.rb +106 -99
  1697. data/tests/aws/requests/dns/helper.rb +21 -0
  1698. data/tests/aws/requests/dynamodb/item_tests.rb +137 -0
  1699. data/tests/aws/requests/dynamodb/table_tests.rb +99 -0
  1700. data/tests/aws/requests/elasticache/cache_cluster_tests.rb +4 -4
  1701. data/tests/aws/requests/elb/helper.rb +46 -1
  1702. data/tests/aws/requests/elb/listener_tests.rb +22 -4
  1703. data/tests/aws/requests/elb/load_balancer_tests.rb +2 -2
  1704. data/tests/aws/requests/elb/policy_tests.rb +13 -0
  1705. data/tests/aws/requests/emr/helper.rb +172 -0
  1706. data/tests/aws/requests/emr/instance_group_tests.rb +106 -0
  1707. data/tests/aws/requests/emr/job_flow_tests.rb +88 -0
  1708. data/tests/aws/requests/iam/access_key_tests.rb +3 -10
  1709. data/tests/aws/requests/iam/group_tests.rb +1 -4
  1710. data/tests/aws/requests/iam/helper.rb +19 -0
  1711. data/tests/aws/requests/iam/role_tests.rb +168 -0
  1712. data/tests/aws/requests/iam/server_certificate_tests.rb +25 -7
  1713. data/tests/aws/requests/iam/user_policy_tests.rb +14 -11
  1714. data/tests/aws/requests/iam/user_tests.rb +23 -12
  1715. data/tests/aws/requests/rds/helper.rb +45 -11
  1716. data/tests/aws/requests/rds/instance_tests.rb +2 -3
  1717. data/tests/aws/requests/rds/parameter_group_tests.rb +1 -7
  1718. data/tests/aws/requests/rds/security_group_tests.rb +101 -0
  1719. data/tests/aws/requests/sns/subscription_tests.rb +2 -2
  1720. data/tests/aws/requests/storage/acl_utils_tests.rb +209 -0
  1721. data/tests/aws/requests/storage/bucket_tests.rb +146 -56
  1722. data/tests/aws/requests/storage/object_tests.rb +47 -24
  1723. data/tests/aws/requests/storage/versioning_tests.rb +188 -0
  1724. data/tests/aws/requests/sts/get_federation_token_tests.rb +21 -0
  1725. data/tests/aws/requests/sts/session_token_tests.rb +16 -0
  1726. data/tests/bluebox/requests/compute/block_tests.rb +9 -8
  1727. data/tests/bluebox/requests/compute/helper.rb +5 -0
  1728. data/tests/bluebox/requests/compute/location_tests.rb +32 -0
  1729. data/tests/bluebox/requests/compute/product_tests.rb +10 -4
  1730. data/tests/bluebox/requests/compute/template_tests.rb +4 -2
  1731. data/tests/brightbox/requests/compute/account_tests.rb +11 -6
  1732. data/tests/brightbox/requests/compute/api_client_tests.rb +23 -12
  1733. data/tests/brightbox/requests/compute/cloud_ip_tests.rb +32 -17
  1734. data/tests/brightbox/requests/compute/helper.rb +97 -17
  1735. data/tests/brightbox/requests/compute/image_tests.rb +17 -14
  1736. data/tests/brightbox/requests/compute/interface_tests.rb +3 -2
  1737. data/tests/brightbox/requests/compute/load_balancer_tests.rb +57 -11
  1738. data/tests/brightbox/requests/compute/server_group_tests.rb +29 -22
  1739. data/tests/brightbox/requests/compute/server_tests.rb +43 -22
  1740. data/tests/brightbox/requests/compute/server_type_tests.rb +7 -6
  1741. data/tests/brightbox/requests/compute/user_tests.rb +11 -16
  1742. data/tests/brightbox/requests/compute/zone_tests.rb +7 -6
  1743. data/tests/clodo/requests/compute/image_tests.rb +36 -0
  1744. data/tests/clodo/requests/compute/server_tests.rb +152 -0
  1745. data/tests/cloudstack/compute/models/security_group_rule_tests.rb +29 -0
  1746. data/tests/cloudstack/compute/models/security_group_tests.rb +16 -0
  1747. data/tests/cloudstack/compute/models/security_groups_tests.rb +19 -0
  1748. data/tests/cloudstack/compute/models/server_tests.rb +18 -0
  1749. data/tests/cloudstack/compute/models/volume_tests.rb +34 -0
  1750. data/tests/cloudstack/compute/models/volumes_tests.rb +17 -0
  1751. data/tests/cloudstack/requests/disk_offering_tests.rb +29 -0
  1752. data/tests/cloudstack/requests/os_type_tests.rb +38 -0
  1753. data/tests/cloudstack/requests/security_group_tests.rb +29 -0
  1754. data/tests/cloudstack/requests/service_offering_tests.rb +38 -0
  1755. data/tests/cloudstack/requests/snapshot_tests.rb +32 -0
  1756. data/tests/cloudstack/requests/ssh_key_pair_tests.rb +23 -0
  1757. data/tests/cloudstack/requests/template_tests.rb +53 -0
  1758. data/tests/cloudstack/requests/virtual_machine_tests.rb +71 -0
  1759. data/tests/cloudstack/requests/volume_tests.rb +48 -0
  1760. data/tests/cloudstack/requests/zone_tests.rb +33 -0
  1761. data/tests/cloudstack/signed_params_tests.rb +12 -0
  1762. data/tests/compute/helper.rb +55 -10
  1763. data/tests/compute/models/flavors_tests.rb +2 -2
  1764. data/tests/compute/models/server_tests.rb +1 -1
  1765. data/tests/compute/models/servers_tests.rb +2 -1
  1766. data/tests/core/attribute_tests.rb +29 -0
  1767. data/tests/core/credential_tests.rb +2 -2
  1768. data/tests/core/current_machine_tests.rb +32 -0
  1769. data/tests/core/mocking_tests.rb +60 -0
  1770. data/tests/dns/helper.rb +0 -3
  1771. data/tests/dns/models/record_tests.rb +4 -2
  1772. data/tests/dns/models/records_tests.rb +4 -2
  1773. data/tests/dns/models/zone_tests.rb +3 -1
  1774. data/tests/dns/models/zones_tests.rb +4 -2
  1775. data/tests/glesys/requests/compute/helper.rb +192 -139
  1776. data/tests/glesys/requests/compute/ip_tests.rb +4 -4
  1777. data/tests/glesys/requests/compute/server_tests.rb +55 -17
  1778. data/tests/helper.rb +13 -1
  1779. data/tests/helpers/formats_helper.rb +1 -1
  1780. data/tests/helpers/mock_helper.rb +25 -6
  1781. data/tests/helpers/succeeds_helper.rb +2 -3
  1782. data/tests/hp/models/compute/address_tests.rb +18 -0
  1783. data/tests/hp/models/compute/addresses_tests.rb +5 -0
  1784. data/tests/hp/models/compute/key_pair_tests.rb +27 -0
  1785. data/tests/hp/models/compute/key_pairs_tests.rb +5 -0
  1786. data/tests/hp/models/compute/security_group_tests.rb +36 -0
  1787. data/tests/hp/models/compute/security_groups_tests.rb +5 -0
  1788. data/tests/hp/requests/cdn/container_tests.rb +56 -0
  1789. data/tests/hp/requests/compute/address_tests.rb +73 -0
  1790. data/tests/hp/requests/compute/flavor_tests.rb +45 -0
  1791. data/tests/hp/requests/compute/image_tests.rb +79 -0
  1792. data/tests/hp/requests/compute/key_pair_tests.rb +65 -0
  1793. data/tests/hp/requests/compute/security_group_rule_tests.rb +54 -0
  1794. data/tests/hp/requests/compute/security_group_tests.rb +64 -0
  1795. data/tests/hp/requests/compute/server_address_tests.rb +45 -0
  1796. data/tests/hp/requests/compute/server_tests.rb +127 -0
  1797. data/tests/hp/requests/storage/container_tests.rb +78 -0
  1798. data/tests/hp/requests/storage/object_tests.rb +81 -0
  1799. data/tests/ibm/models/compute/image_tests.rb +25 -0
  1800. data/tests/ibm/models/compute/key_tests.rb +23 -0
  1801. data/tests/ibm/models/compute/keys_tests.rb +35 -0
  1802. data/tests/ibm/models/compute/locations_tests.rb +18 -0
  1803. data/tests/ibm/models/compute/server_tests.rb +88 -0
  1804. data/tests/ibm/models/compute/servers_tests.rb +37 -0
  1805. data/tests/ibm/models/storage/volume_tests.rb +60 -0
  1806. data/tests/ibm/requests/compute/address_tests.rb +44 -0
  1807. data/tests/ibm/requests/compute/image_tests.rb +110 -0
  1808. data/tests/ibm/requests/compute/instance_tests.rb +102 -0
  1809. data/tests/ibm/requests/compute/key_tests.rb +50 -0
  1810. data/tests/ibm/requests/compute/location_tests.rb +28 -0
  1811. data/tests/ibm/requests/compute/vlan_tests.rb +21 -0
  1812. data/tests/ibm/requests/storage/volume_tests.rb +100 -0
  1813. data/tests/joyent/requests/compute/datasets_tests.rb +58 -0
  1814. data/tests/joyent/requests/compute/keys_tests.rb +47 -0
  1815. data/tests/joyent/requests/compute/machines_tests.rb +67 -0
  1816. data/tests/joyent/requests/compute/packages_tests.rb +68 -0
  1817. data/tests/libvirt/compute_tests.rb +17 -0
  1818. data/tests/libvirt/models/compute/interface_tests.rb +27 -0
  1819. data/tests/libvirt/models/compute/interfaces_tests.rb +14 -0
  1820. data/tests/libvirt/models/compute/network_tests.rb +27 -0
  1821. data/tests/libvirt/models/compute/networks_tests.rb +13 -0
  1822. data/tests/libvirt/models/compute/nic_tests.rb +31 -0
  1823. data/tests/libvirt/models/compute/nics_tests.rb +10 -0
  1824. data/tests/libvirt/models/compute/pool_tests.rb +27 -0
  1825. data/tests/libvirt/models/compute/pools_tests.rb +13 -0
  1826. data/tests/libvirt/models/compute/server_tests.rb +58 -0
  1827. data/tests/libvirt/models/compute/servers_tests.rb +14 -0
  1828. data/tests/libvirt/models/compute/volume_tests.rb +30 -0
  1829. data/tests/libvirt/models/compute/volumes_tests.rb +14 -0
  1830. data/tests/libvirt/requests/compute/create_domain_tests.rb +21 -0
  1831. data/tests/libvirt/requests/compute/define_domain_tests.rb +11 -0
  1832. data/tests/libvirt/requests/compute/update_display.rb +13 -0
  1833. data/tests/local/models/file_tests.rb +43 -0
  1834. data/tests/local/storage_tests.rb +40 -0
  1835. data/tests/openstack/models/identity/role_tests.rb +27 -0
  1836. data/tests/openstack/models/identity/roles_tests.rb +19 -0
  1837. data/tests/openstack/models/identity/tenant_tests.rb +24 -0
  1838. data/tests/openstack/models/identity/tenants_tests.rb +26 -0
  1839. data/tests/openstack/models/identity/user_tests.rb +46 -0
  1840. data/tests/openstack/models/identity/users_tests.rb +33 -0
  1841. data/tests/openstack/models/image/image_tests.rb +35 -0
  1842. data/tests/openstack/models/image/images_tests.rb +14 -0
  1843. data/tests/openstack/requests/compute/address_tests.rb +49 -0
  1844. data/tests/openstack/requests/compute/flavor_tests.rb +18 -5
  1845. data/tests/openstack/requests/compute/keypair_tests.rb +30 -0
  1846. data/tests/openstack/requests/compute/quota_tests.rb +44 -0
  1847. data/tests/openstack/requests/compute/security_group_tests.rb +51 -0
  1848. data/tests/openstack/requests/compute/server_tests.rb +3 -3
  1849. data/tests/openstack/requests/compute/tenant_tests.rb +19 -0
  1850. data/tests/openstack/requests/compute/volume_tests.rb +39 -0
  1851. data/tests/openstack/requests/identity/role_tests.rb +41 -0
  1852. data/tests/openstack/requests/identity/tenant_tests.rb +53 -0
  1853. data/tests/openstack/requests/identity/user_tests.rb +29 -0
  1854. data/tests/openstack/requests/image/image_tests.rb +98 -0
  1855. data/tests/ovirt/compute_tests.rb +24 -0
  1856. data/tests/ovirt/models/compute/cluster_tests.rb +31 -0
  1857. data/tests/ovirt/models/compute/clusters_tests.rb +9 -0
  1858. data/tests/ovirt/models/compute/interface_tests.rb +27 -0
  1859. data/tests/ovirt/models/compute/interfaces_tests.rb +9 -0
  1860. data/tests/ovirt/models/compute/server_tests.rb +51 -0
  1861. data/tests/ovirt/models/compute/servers_tests.rb +14 -0
  1862. data/tests/ovirt/models/compute/template_tests.rb +28 -0
  1863. data/tests/ovirt/models/compute/templates_tests.rb +9 -0
  1864. data/tests/ovirt/requests/compute/create_vm_tests.rb +26 -0
  1865. data/tests/ovirt/requests/compute/destroy_vm_tests.rb +18 -0
  1866. data/tests/ovirt/requests/compute/list_datacenters_tests.rb +13 -0
  1867. data/tests/ovirt/requests/compute/list_storage_domains_tests.rb +13 -0
  1868. data/tests/ovirt/requests/compute/update_vm_tests.rb +18 -0
  1869. data/tests/rackspace/databases_tests.rb +26 -0
  1870. data/tests/rackspace/helper.rb +1 -1
  1871. data/tests/rackspace/models/databases/database_tests.rb +17 -0
  1872. data/tests/rackspace/models/databases/databases_tests.rb +17 -0
  1873. data/tests/rackspace/models/databases/flavors_tests.rb +20 -0
  1874. data/tests/rackspace/models/databases/instance_tests.rb +43 -0
  1875. data/tests/rackspace/models/databases/instances_tests.rb +14 -0
  1876. data/tests/rackspace/models/databases/user_tests.rb +21 -0
  1877. data/tests/rackspace/models/databases/users_tests.rb +21 -0
  1878. data/tests/rackspace/models/dns/zone_tests.rb +14 -0
  1879. data/tests/rackspace/models/identity/credentials_tests.rb +16 -0
  1880. data/tests/rackspace/models/identity/roles_tests.rb +16 -0
  1881. data/tests/rackspace/models/identity/tenants_tests.rb +21 -0
  1882. data/tests/rackspace/models/identity/user_tests.rb +17 -0
  1883. data/tests/rackspace/models/identity/users_tests.rb +17 -0
  1884. data/tests/rackspace/models/load_balancers/access_list_tests.rb +12 -0
  1885. data/tests/rackspace/models/load_balancers/access_lists_tests.rb +12 -0
  1886. data/tests/rackspace/models/load_balancers/load_balancer_tests.rb +173 -0
  1887. data/tests/rackspace/models/load_balancers/load_balancers_tests.rb +19 -0
  1888. data/tests/rackspace/models/load_balancers/node_tests.rb +19 -0
  1889. data/tests/rackspace/models/load_balancers/nodes_tests.rb +12 -0
  1890. data/tests/rackspace/requests/databases/database_tests.rb +36 -0
  1891. data/tests/rackspace/requests/databases/flavor_tests.rb +16 -0
  1892. data/tests/rackspace/requests/databases/helper.rb +84 -0
  1893. data/tests/rackspace/requests/databases/instance_tests.rb +77 -0
  1894. data/tests/rackspace/requests/databases/user_tests.rb +37 -0
  1895. data/tests/rackspace/requests/dns/dns_tests.rb +20 -14
  1896. data/tests/rackspace/requests/dns/records_tests.rb +13 -11
  1897. data/tests/rackspace/requests/identity/tenants_tests.rb +21 -0
  1898. data/tests/rackspace/requests/identity/token_tests.rb +63 -0
  1899. data/tests/rackspace/requests/identity/user_tests.rb +107 -0
  1900. data/tests/rackspace/requests/load_balancers/error_page_tests.rb +31 -0
  1901. data/tests/rackspace/requests/load_balancers/helper.rb +105 -12
  1902. data/tests/rackspace/requests/load_balancers/load_balancer_tests.rb +15 -3
  1903. data/tests/rackspace/requests/load_balancers/node_tests.rb +28 -29
  1904. data/tests/rackspace/requests/load_balancers/ssl_termination_tests.rb +38 -0
  1905. data/tests/storage/helper.rb +3 -0
  1906. data/tests/storage/models/file_tests.rb +1 -1
  1907. data/tests/storm_on_demand/requests/compute/server_tests.rb +3 -3
  1908. data/tests/vcloud/data/api_+_admin_+_network_+_2 +110 -0
  1909. data/tests/vcloud/data/api_+_network_+_1 +44 -0
  1910. data/tests/vcloud/data/api_+_org_+_ +5 -0
  1911. data/tests/vcloud/data/api_+_org_+_1 +17 -0
  1912. data/tests/vcloud/data/api_+_sessions +8 -0
  1913. data/tests/vcloud/data/api_+_v1.0_+_admin_+_network_+_2 +110 -0
  1914. data/tests/vcloud/data/api_+_v1.0_+_login +5 -0
  1915. data/tests/vcloud/data/api_+_v1.0_+_network_+_1 +44 -0
  1916. data/tests/vcloud/data/api_+_v1.0_+_network_+_2 +31 -0
  1917. data/tests/vcloud/data/api_+_v1.0_+_org_+_1 +17 -0
  1918. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vapp-1 +369 -0
  1919. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-1 +139 -0
  1920. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-2 +155 -0
  1921. data/tests/vcloud/data/api_+_v1.0_+_vdc_+_1 +61 -0
  1922. data/tests/vcloud/data/api_+_vApp_+_vapp-1 +369 -0
  1923. data/tests/vcloud/data/api_+_vApp_+_vm-2 +155 -0
  1924. data/tests/vcloud/data/api_+_vdc_+_1 +61 -0
  1925. data/tests/vcloud/models/compute/conn_helper.rb +20 -0
  1926. data/tests/vcloud/models/compute/network_tests.rb +67 -0
  1927. data/tests/vcloud/models/compute/networks_tests.rb +61 -0
  1928. data/tests/vcloud/models/compute/organization_tests.rb +20 -0
  1929. data/tests/vcloud/models/compute/organizations_tests.rb +16 -0
  1930. data/tests/vcloud/models/compute/server_tests.rb +142 -0
  1931. data/tests/vcloud/models/compute/servers_tests.rb +18 -90
  1932. data/tests/vcloud/models/compute/vapp_tests.rb +32 -0
  1933. data/tests/vcloud/models/compute/vapps_tests.rb +19 -0
  1934. data/tests/vcloud/models/compute/vdc_tests.rb +48 -0
  1935. data/tests/vcloud/models/compute/vdcs_tests.rb +24 -0
  1936. data/tests/vsphere/compute_tests.rb +18 -10
  1937. data/tests/vsphere/requests/compute/vm_clone_tests.rb +17 -9
  1938. data/tests/vsphere/requests/compute/vm_config_vnc_tests.rb +19 -0
  1939. data/tests/vsphere/requests/compute/vm_create_tests.rb +20 -0
  1940. data/tests/vsphere/requests/compute/vm_migrate_tests.rb +16 -0
  1941. data/tests/vsphere/requests/compute/vm_power_on_tests.rb +1 -1
  1942. data/tests/vsphere/requests/compute/vm_reconfig_cpus_tests.rb +19 -0
  1943. data/tests/vsphere/requests/compute/vm_reconfig_hardware_tests.rb +19 -0
  1944. data/tests/vsphere/requests/compute/vm_reconfig_memory_tests.rb +19 -0
  1945. data/tests/xenserver/README +21 -0
  1946. data/tests/xenserver/compute_tests.rb +52 -0
  1947. data/tests/xenserver/helper.rb +36 -0
  1948. data/tests/xenserver/models/compute/host_tests.rb +68 -0
  1949. data/tests/xenserver/models/compute/hosts_tests.rb +22 -0
  1950. data/tests/xenserver/models/compute/network_tests.rb +67 -0
  1951. data/tests/xenserver/models/compute/networks_tests.rb +22 -0
  1952. data/tests/xenserver/models/compute/pbd_tests.rb +44 -0
  1953. data/tests/xenserver/models/compute/pbds_tests.rb +22 -0
  1954. data/tests/xenserver/models/compute/pif_tests.rb +58 -0
  1955. data/tests/xenserver/models/compute/pifs_tests.rb +22 -0
  1956. data/tests/xenserver/models/compute/pool_tests.rb +50 -0
  1957. data/tests/xenserver/models/compute/pools_tests.rb +30 -0
  1958. data/tests/xenserver/models/compute/server_tests.rb +167 -0
  1959. data/tests/xenserver/models/compute/servers_tests.rb +88 -0
  1960. data/tests/xenserver/models/compute/storage_repositories_tests.rb +30 -0
  1961. data/tests/xenserver/models/compute/storage_repository_tests.rb +63 -0
  1962. data/tests/xenserver/models/compute/vbd_tests.rb +115 -0
  1963. data/tests/xenserver/models/compute/vbds_tests.rb +22 -0
  1964. data/tests/xenserver/models/compute/vif_tests.rb +53 -0
  1965. data/tests/xenserver/models/compute/vifs_tests.rb +22 -0
  1966. data/tests/xenserver/requests/compute/clone_server_tests.rb +32 -0
  1967. data/tests/xenserver/requests/compute/create_server_tests.rb +129 -0
  1968. data/tests/xenserver/requests/compute/create_vdi_tests.rb +80 -0
  1969. data/tests/xenserver/requests/compute/create_vif_tests.rb +88 -0
  1970. data/tests/xenserver/requests/compute/destroy_vdi_tests.rb +25 -0
  1971. data/tests/xenserver/requests/compute/get_record_tests.rb +15 -0
  1972. data/tests/xenserver/requests/compute/set_attribute_tests.rb +66 -0
  1973. data/tests/xenserver/xenserver_tests.rb +34 -0
  1974. metadata +1897 -434
  1975. data/README.rdoc +0 -154
  1976. data/examples/compute_tests.rb +0 -71
  1977. data/examples/dns_tests.rb +0 -78
  1978. data/examples/storage_tests.rb +0 -105
  1979. data/lib/fog/aws/requests/storage/hash_to_acl.rb +0 -44
  1980. data/lib/fog/bin/new_servers.rb +0 -31
  1981. data/lib/fog/bin/slicehost.rb +0 -36
  1982. data/lib/fog/brightbox/requests/compute/resize_server.rb +0 -19
  1983. data/lib/fog/ecloud/models/compute/ip.rb +0 -49
  1984. data/lib/fog/ecloud/models/compute/ips.rb +0 -32
  1985. data/lib/fog/ecloud/models/compute/vdc.rb +0 -81
  1986. data/lib/fog/ecloud/models/compute/vdcs.rb +0 -40
  1987. data/lib/fog/ecloud/requests/compute/add_backup_internet_service.rb +0 -109
  1988. data/lib/fog/ecloud/requests/compute/add_internet_service.rb +0 -149
  1989. data/lib/fog/ecloud/requests/compute/add_node.rb +0 -62
  1990. data/lib/fog/ecloud/requests/compute/clone_vapp.rb +0 -40
  1991. data/lib/fog/ecloud/requests/compute/configure_internet_service.rb +0 -112
  1992. data/lib/fog/ecloud/requests/compute/configure_network.rb +0 -44
  1993. data/lib/fog/ecloud/requests/compute/configure_network_ip.rb +0 -66
  1994. data/lib/fog/ecloud/requests/compute/configure_node.rb +0 -56
  1995. data/lib/fog/ecloud/requests/compute/configure_vapp.rb +0 -144
  1996. data/lib/fog/ecloud/requests/compute/delete_internet_service.rb +0 -22
  1997. data/lib/fog/ecloud/requests/compute/delete_node.rb +0 -22
  1998. data/lib/fog/ecloud/requests/compute/delete_vapp.rb +0 -29
  1999. data/lib/fog/ecloud/requests/compute/get_customization_options.rb +0 -22
  2000. data/lib/fog/ecloud/requests/compute/get_network_extensions.rb +0 -33
  2001. data/lib/fog/ecloud/requests/compute/get_network_ip.rb +0 -43
  2002. data/lib/fog/ecloud/requests/compute/get_network_ips.rb +0 -35
  2003. data/lib/fog/ecloud/requests/compute/get_task_list.rb +0 -11
  2004. data/lib/fog/ecloud/requests/compute/get_vapp.rb +0 -99
  2005. data/lib/fog/ecloud/requests/compute/get_vapp_template.rb +0 -11
  2006. data/lib/fog/ecloud/requests/compute/get_vdc.rb +0 -84
  2007. data/lib/fog/ecloud/requests/compute/get_versions.rb +0 -37
  2008. data/lib/fog/ecloud/requests/compute/instantiate_vapp_template.rb +0 -142
  2009. data/lib/fog/ecloud/requests/compute/login.rb +0 -48
  2010. data/lib/fog/libvirt/models/compute/uri.rb +0 -142
  2011. data/lib/fog/libvirt/models/compute/util.rb +0 -25
  2012. data/lib/fog/new_servers/compute.rb +0 -98
  2013. data/lib/fog/new_servers/requests/compute/add_server.rb +0 -33
  2014. data/lib/fog/new_servers/requests/compute/cancel_server.rb +0 -30
  2015. data/lib/fog/new_servers/requests/compute/get_server.rb +0 -36
  2016. data/lib/fog/new_servers/requests/compute/list_images.rb +0 -27
  2017. data/lib/fog/new_servers/requests/compute/list_plans.rb +0 -30
  2018. data/lib/fog/new_servers/requests/compute/list_servers.rb +0 -36
  2019. data/lib/fog/new_servers/requests/compute/reboot_server.rb +0 -24
  2020. data/lib/fog/new_servers.rb +0 -11
  2021. data/lib/fog/openstack/models/compute/meta.rb +0 -29
  2022. data/lib/fog/openstack/requests/compute/change_password_server.rb +0 -24
  2023. data/lib/fog/openstack/requests/compute/confirm_resized_server.rb +0 -24
  2024. data/lib/fog/openstack/requests/compute/delete_meta.rb +0 -28
  2025. data/lib/fog/openstack/requests/compute/get_meta.rb +0 -29
  2026. data/lib/fog/openstack/requests/compute/update_meta.rb +0 -45
  2027. data/lib/fog/slicehost/compute.rb +0 -104
  2028. data/lib/fog/slicehost/dns.rb +0 -100
  2029. data/lib/fog/slicehost/models/compute/flavor.rb +0 -45
  2030. data/lib/fog/slicehost/models/compute/flavors.rb +0 -28
  2031. data/lib/fog/slicehost/models/compute/image.rb +0 -17
  2032. data/lib/fog/slicehost/models/compute/images.rb +0 -27
  2033. data/lib/fog/slicehost/models/compute/server.rb +0 -113
  2034. data/lib/fog/slicehost/models/compute/servers.rb +0 -38
  2035. data/lib/fog/slicehost/models/dns/record.rb +0 -69
  2036. data/lib/fog/slicehost/models/dns/records.rb +0 -36
  2037. data/lib/fog/slicehost/models/dns/zone.rb +0 -69
  2038. data/lib/fog/slicehost/models/dns/zones.rb +0 -28
  2039. data/lib/fog/slicehost/parsers/compute/create_slice.rb +0 -31
  2040. data/lib/fog/slicehost/parsers/compute/get_backups.rb +0 -32
  2041. data/lib/fog/slicehost/parsers/compute/get_flavor.rb +0 -26
  2042. data/lib/fog/slicehost/parsers/compute/get_flavors.rb +0 -30
  2043. data/lib/fog/slicehost/parsers/compute/get_image.rb +0 -26
  2044. data/lib/fog/slicehost/parsers/compute/get_images.rb +0 -30
  2045. data/lib/fog/slicehost/parsers/compute/get_slice.rb +0 -31
  2046. data/lib/fog/slicehost/parsers/compute/get_slices.rb +0 -35
  2047. data/lib/fog/slicehost/parsers/dns/create_record.rb +0 -26
  2048. data/lib/fog/slicehost/parsers/dns/create_zone.rb +0 -26
  2049. data/lib/fog/slicehost/parsers/dns/get_record.rb +0 -26
  2050. data/lib/fog/slicehost/parsers/dns/get_records.rb +0 -30
  2051. data/lib/fog/slicehost/parsers/dns/get_zone.rb +0 -26
  2052. data/lib/fog/slicehost/parsers/dns/get_zones.rb +0 -30
  2053. data/lib/fog/slicehost/requests/compute/create_slice.rb +0 -41
  2054. data/lib/fog/slicehost/requests/compute/delete_slice.rb +0 -23
  2055. data/lib/fog/slicehost/requests/compute/get_backups.rb +0 -29
  2056. data/lib/fog/slicehost/requests/compute/get_flavor.rb +0 -32
  2057. data/lib/fog/slicehost/requests/compute/get_flavors.rb +0 -29
  2058. data/lib/fog/slicehost/requests/compute/get_image.rb +0 -30
  2059. data/lib/fog/slicehost/requests/compute/get_images.rb +0 -27
  2060. data/lib/fog/slicehost/requests/compute/get_slice.rb +0 -38
  2061. data/lib/fog/slicehost/requests/compute/get_slices.rb +0 -35
  2062. data/lib/fog/slicehost/requests/compute/reboot_slice.rb +0 -36
  2063. data/lib/fog/slicehost/requests/dns/create_record.rb +0 -52
  2064. data/lib/fog/slicehost/requests/dns/create_zone.rb +0 -46
  2065. data/lib/fog/slicehost/requests/dns/delete_record.rb +0 -23
  2066. data/lib/fog/slicehost/requests/dns/delete_zone.rb +0 -23
  2067. data/lib/fog/slicehost/requests/dns/get_record.rb +0 -32
  2068. data/lib/fog/slicehost/requests/dns/get_records.rb +0 -33
  2069. data/lib/fog/slicehost/requests/dns/get_zone.rb +0 -32
  2070. data/lib/fog/slicehost/requests/dns/get_zones.rb +0 -30
  2071. data/lib/fog/slicehost.rb +0 -12
  2072. data/spec/core/current_machine_spec.rb +0 -22
  2073. data/spec/ecloud/bin_spec.rb +0 -28
  2074. data/spec/ecloud/models/backup_internet_service_spec.rb +0 -48
  2075. data/spec/ecloud/models/backup_internet_services_spec.rb +0 -28
  2076. data/spec/ecloud/models/internet_service_spec.rb +0 -104
  2077. data/spec/ecloud/models/internet_services_spec.rb +0 -29
  2078. data/spec/ecloud/models/ip_spec.rb +0 -33
  2079. data/spec/ecloud/models/ips_spec.rb +0 -28
  2080. data/spec/ecloud/models/network_spec.rb +0 -71
  2081. data/spec/ecloud/models/networks_spec.rb +0 -27
  2082. data/spec/ecloud/models/node_spec.rb +0 -38
  2083. data/spec/ecloud/models/nodes_spec.rb +0 -28
  2084. data/spec/ecloud/models/public_ip_spec.rb +0 -36
  2085. data/spec/ecloud/models/public_ips_spec.rb +0 -27
  2086. data/spec/ecloud/models/server_spec.rb +0 -62
  2087. data/spec/ecloud/models/vdc_spec.rb +0 -63
  2088. data/spec/ecloud/models/vdcs_spec.rb +0 -28
  2089. data/spec/ecloud/requests/add_backup_internet_service_spec.rb +0 -60
  2090. data/spec/ecloud/requests/add_internet_service_spec.rb +0 -65
  2091. data/spec/ecloud/requests/add_node_spec.rb +0 -56
  2092. data/spec/ecloud/requests/configure_internet_service_spec.rb +0 -61
  2093. data/spec/ecloud/requests/configure_network_ip_spec.rb +0 -55
  2094. data/spec/ecloud/requests/configure_node_spec.rb +0 -52
  2095. data/spec/ecloud/requests/configure_vapp_spec.rb +0 -71
  2096. data/spec/ecloud/requests/delete_internet_service_spec.rb +0 -34
  2097. data/spec/ecloud/requests/delete_node_spec.rb +0 -30
  2098. data/spec/ecloud/requests/delete_vapp_spec.rb +0 -92
  2099. data/spec/ecloud/requests/get_catalog_item_spec.rb +0 -62
  2100. data/spec/ecloud/requests/get_catalog_spec.rb +0 -44
  2101. data/spec/ecloud/requests/get_customization_options_spec.rb +0 -39
  2102. data/spec/ecloud/requests/get_internet_services_spec.rb +0 -150
  2103. data/spec/ecloud/requests/get_network_ip_spec.rb +0 -40
  2104. data/spec/ecloud/requests/get_network_ips_spec.rb +0 -58
  2105. data/spec/ecloud/requests/get_network_spec.rb +0 -49
  2106. data/spec/ecloud/requests/get_node_spec.rb +0 -41
  2107. data/spec/ecloud/requests/get_nodes_spec.rb +0 -58
  2108. data/spec/ecloud/requests/get_organization_spec.rb +0 -52
  2109. data/spec/ecloud/requests/get_public_ip_spec.rb +0 -38
  2110. data/spec/ecloud/requests/get_public_ips_spec.rb +0 -52
  2111. data/spec/ecloud/requests/get_vapp_spec.rb +0 -125
  2112. data/spec/ecloud/requests/get_vdc_spec.rb +0 -112
  2113. data/spec/ecloud/requests/get_versions_spec.rb +0 -57
  2114. data/spec/ecloud/requests/instantiate_vapp_template_spec.rb +0 -95
  2115. data/spec/ecloud/requests/login_spec.rb +0 -10
  2116. data/spec/ecloud/requests/power_off_spec.rb +0 -34
  2117. data/spec/ecloud/requests/power_on_spec.rb +0 -34
  2118. data/spec/ecloud/spec_helper.rb +0 -387
  2119. data/spec/ecloud/vcloud_spec.rb +0 -18
  2120. data/spec/spec_helper.rb +0 -8
  2121. data/tests/rackspace/models/access_list_tests.rb +0 -12
  2122. data/tests/rackspace/models/access_lists_tests.rb +0 -12
  2123. data/tests/rackspace/models/load_balancer_tests.rb +0 -116
  2124. data/tests/rackspace/models/load_balancers_tests.rb +0 -19
  2125. data/tests/rackspace/models/node_tests.rb +0 -19
  2126. data/tests/rackspace/models/nodes_tests.rb +0 -12
  2127. data/tests/slicehost/requests/compute/backup_tests.rb +0 -18
  2128. data/tests/slicehost/requests/compute/flavor_tests.rb +0 -33
  2129. data/tests/slicehost/requests/compute/image_tests.rb +0 -31
  2130. data/tests/slicehost/requests/compute/slice_tests.rb +0 -75
  2131. data/tests/slicehost/requests/dns/dns_tests.rb +0 -267
  2132. /data/lib/fog/openstack/requests/compute/{revert_resized_server.rb → revert_resize_server.rb} +0 -0
  2133. /data/tests/rackspace/models/{virtual_ip_tests.rb → load_balancers/virtual_ip_tests.rb} +0 -0
  2134. /data/tests/rackspace/models/{virtual_ips_tests.rb → load_balancers/virtual_ips_tests.rb} +0 -0
@@ -1,804 +1,4 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'ecloud'))
2
- require 'ipaddr'
3
-
4
- class IPAddr
5
- def mask
6
- _to_string(@mask_addr)
7
- end
8
- end
9
-
10
- module Fog
11
- module Ecloud
12
- class Collection < Fog::Collection
13
-
14
- def load(objects)
15
- objects = [ objects ] if objects.is_a?(Hash)
16
- super
17
- end
18
-
19
- def check_href!(opts = {})
20
- unless href
21
- if opts.is_a?(String)
22
- t = Hash.new
23
- t[:parent] = opts
24
- opts = t
25
- end
26
- msg = ":href missing, call with a :href pointing to #{if opts[:message]
27
- opts[:message]
28
- elsif opts[:parent]
29
- "the #{opts[:parent]} whos #{self.class.to_s.split('::').last.downcase} you want to enumerate"
30
- else
31
- "the resource"
32
- end}"
33
- raise Fog::Errors::Error.new(msg)
34
- end
35
- end
36
-
37
- end
38
- end
39
- end
40
-
41
- module Fog
42
- module Ecloud
43
- module MockDataClasses
44
- class Base < Hash
45
- def self.base_url=(url)
46
- @base_url = url
47
- end
48
-
49
- self.base_url = "http://vcloud.example.com"
50
-
51
- def self.base_url
52
- @base_url
53
- end
54
-
55
- def first
56
- raise "Don't do this"
57
- end
58
-
59
- def last
60
- raise "Don't do this"
61
- end
62
-
63
- def initialize(data = {}, parent = nil)
64
- @parent = parent
65
-
66
- replace(data)
67
- end
68
-
69
- def _parent
70
- @parent
71
- end
72
-
73
- def base_url
74
- Base.base_url
75
- end
76
-
77
- def href
78
- [base_url, self.class.name.split("::").last, object_id].join("/")
79
- end
80
-
81
- def inspect
82
- "<#{self.class.name} #{object_id} data=#{super}>"
83
- end
84
- end
85
-
86
- class MockData < Base
87
- def versions
88
- @versions ||= []
89
- end
90
-
91
- def organizations
92
- @organizations ||= []
93
- end
94
-
95
- def organization_from_href(href)
96
- find_href_in(href, organizations)
97
- end
98
-
99
- def all_vdcs
100
- organizations.map(&:vdcs).flatten
101
- end
102
-
103
- def vdc_from_href(href)
104
- find_href_in(href, all_vdcs)
105
- end
106
-
107
- def all_catalogs
108
- all_vdcs.map(&:catalog).flatten
109
- end
110
-
111
- def catalog_from_href(href)
112
- find_href_in(href, all_catalogs)
113
- end
114
-
115
- def all_catalog_items
116
- all_catalogs.map(&:items).flatten
117
- end
118
-
119
- def catalog_item_from_href(href)
120
- find_href_in(href, all_catalog_items)
121
- end
122
-
123
- def all_virtual_machines
124
- all_vdcs.map(&:virtual_machines).flatten
125
- end
126
-
127
- def virtual_machine_from_href(href)
128
- find_href_prefixed_in(href, all_virtual_machines)
129
- end
130
-
131
-
132
- def all_networks
133
- all_vdcs.map(&:networks).flatten
134
- end
135
-
136
- def network_from_href(href)
137
- find_href_in(href, all_networks)
138
- end
139
-
140
- def all_network_extensions
141
- all_networks.map(&:extensions).flatten
142
- end
143
-
144
- def network_extension_from_href(href)
145
- find_href_in(href, all_network_extensions)
146
- end
147
-
148
- def all_vdc_internet_service_collections
149
- all_vdcs.map(&:internet_service_collection).flatten
150
- end
151
-
152
- def vdc_internet_service_collection_from_href(href)
153
- find_href_in(href, all_vdc_internet_service_collections)
154
- end
155
-
156
- def all_backup_internet_services
157
- all_vdc_internet_service_collections.map(&:backup_internet_services).flatten
158
- end
159
-
160
- def backup_internet_service_from_href(href)
161
- find_href_in(href, all_backup_internet_services)
162
- end
163
-
164
- def all_public_ip_collections
165
- all_vdcs.map {|v| v.public_ip_collection }.flatten
166
- end
167
-
168
- def public_ip_collection_from_href(href)
169
- find_href_in(href, all_public_ip_collections)
170
- end
171
-
172
- def all_public_ips
173
- all_public_ip_collections.map(&:items).flatten
174
- end
175
-
176
- def public_ip_from_href(href)
177
- find_href_in(href, all_public_ips)
178
- end
179
-
180
- def all_public_ip_internet_service_collections
181
- all_public_ips.map(&:internet_service_collection).flatten
182
- end
183
-
184
- def public_ip_internet_service_collection_from_href(href)
185
- find_href_in(href, all_public_ip_internet_service_collections)
186
- end
187
-
188
- def all_public_ip_internet_services
189
- all_public_ip_internet_service_collections.map(&:items).flatten
190
- end
191
-
192
- def public_ip_internet_service_from_href(href)
193
- find_href_in(href, all_public_ip_internet_services)
194
- end
195
-
196
- def all_public_ip_internet_service_node_collections
197
- all_public_ip_internet_services.map(&:node_collection).flatten
198
- end
199
-
200
- def public_ip_internet_service_node_collection_from_href(href)
201
- find_href_in(href, all_public_ip_internet_service_node_collections)
202
- end
203
-
204
- def all_public_ip_internet_service_nodes
205
- all_public_ip_internet_service_node_collections.map(&:items).flatten
206
- end
207
-
208
- def public_ip_internet_service_node_from_href(href)
209
- find_href_in(href, all_public_ip_internet_service_nodes)
210
- end
211
-
212
- def all_network_ip_collections
213
- all_networks.map(&:ip_collection)
214
- end
215
-
216
- def network_ip_collection_from_href(href)
217
- find_href_in(href, all_network_ip_collections)
218
- end
219
-
220
- def all_network_ips
221
- all_network_ip_collections.map {|c| c.items.values }.flatten
222
- end
223
-
224
- def network_ip_from_href(href)
225
- find_href_in(href, all_network_ips)
226
- end
227
-
228
- private
229
-
230
- def find_href_in(href, objects)
231
- objects.detect {|o| o.href == href }
232
- end
233
-
234
- def find_href_prefixed_in(href, objects)
235
- objects.detect {|o| href =~ %r{^#{o.href}($|/)} }
236
- end
237
- end
238
-
239
- class MockVersion < Base
240
- def version
241
- self[:version]
242
- end
243
-
244
- def supported
245
- !!self[:supported]
246
- end
247
-
248
- def login_url
249
- href
250
- end
251
- end
252
-
253
- class MockOrganization < Base
254
- def name
255
- self[:name]
256
- end
257
-
258
- def vdcs
259
- @vdcs ||= []
260
- end
261
- end
262
-
263
- class MockVdc < Base
264
- def name
265
- self[:name]
266
- end
267
-
268
- def storage_allocated
269
- self[:storage_allocated] || 200
270
- end
271
-
272
- def storage_used
273
- self[:storage_used] || 105
274
- end
275
-
276
- def cpu_allocated
277
- self[:cpu_allocated] || 10000
278
- end
279
-
280
- def memory_allocated
281
- self[:memory_allocated] || 20480
282
- end
283
-
284
- def catalog
285
- @catalog ||= MockCatalog.new({}, self)
286
- end
287
-
288
- def networks
289
- @networks ||= []
290
- end
291
-
292
- def virtual_machines
293
- @virtual_machines ||= []
294
- end
295
-
296
- def task_list
297
- @task_list ||= MockTaskList.new({}, self)
298
- end
299
-
300
- # for TM eCloud, should probably be subclassed
301
- def public_ip_collection
302
- @public_ip_collection ||= MockPublicIps.new({}, self)
303
- end
304
-
305
- def internet_service_collection
306
- @internet_service_collection ||= MockVdcInternetServices.new({}, self)
307
- end
308
-
309
- def firewall_acls
310
- @firewall_acls ||= MockFirewallAcls.new({}, self)
311
- end
312
- end
313
-
314
- class MockTaskList < Base
315
- def name
316
- self[:name] || "Tasks List"
317
- end
318
- end
319
-
320
- class MockCatalog < Base
321
- def name
322
- self[:name] || "Catalog"
323
- end
324
-
325
- def items
326
- @items ||= []
327
- end
328
- end
329
-
330
- class MockCatalogItem < Base
331
- def name
332
- self[:name]
333
- end
334
-
335
- def disks
336
- @disks ||= MockVirtualMachineDisks.new(self)
337
- end
338
-
339
- def customization
340
- @customization ||= MockCatalogItemCustomization.new({}, self)
341
- end
342
-
343
- def vapp_template
344
- @vapp_template ||= MockCatalogItemVappTemplate.new({ :name => name }, self)
345
- end
346
- end
347
-
348
- class MockCatalogItemCustomization < Base
349
- def name
350
- self[:name] || "Customization Options"
351
- end
352
- end
353
-
354
- class MockCatalogItemVappTemplate < Base
355
- def name
356
- self[:name]
357
- end
358
- end
359
-
360
- class MockNetwork < Base
361
- def name
362
- self[:name] || subnet
363
- end
364
-
365
- def subnet
366
- self[:subnet]
367
- end
368
-
369
- def gateway
370
- self[:gateway] || subnet_ips[1]
371
- end
372
-
373
- def netmask
374
- self[:netmask] || subnet_ipaddr.mask
375
- end
376
-
377
- def dns
378
- "8.8.8.8"
379
- end
380
-
381
- def features
382
- [
383
- { :type => :FenceMode, :value => "isolated" }
384
- ]
385
- end
386
-
387
- def ip_collection
388
- @ip_collection ||= MockNetworkIps.new({}, self)
389
- end
390
-
391
- def extensions
392
- @extensions ||= MockNetworkExtensions.new({}, self)
393
- end
394
-
395
- def random_ip
396
- usable_subnet_ips[rand(usable_subnet_ips.length)]
397
- end
398
-
399
- # for TM eCloud. should probably be a subclass
400
- def rnat
401
- self[:rnat]
402
- end
403
-
404
- def usable_subnet_ips
405
- subnet_ips[3..-2]
406
- end
407
-
408
- def address
409
- subnet_ips.first
410
- end
411
-
412
- def broadcast
413
- subnet_ips.last
414
- end
415
-
416
- private
417
-
418
- def subnet_ipaddr
419
- @ipaddr ||= IPAddr.new(subnet)
420
- end
421
-
422
- def subnet_ips
423
- subnet_ipaddr.to_range.to_a.map(&:to_s)
424
- end
425
- end
426
-
427
- class MockNetworkIps < Base
428
- def items
429
- @items ||= _parent.usable_subnet_ips.inject({}) do |out, subnet_ip|
430
- out.update(subnet_ip => MockNetworkIp.new({ :ip => subnet_ip }, self))
431
- end
432
- end
433
-
434
- def ordered_ips
435
- items.values.sort_by {|i| i.ip.split(".").map(&:to_i) }
436
- end
437
-
438
- def name
439
- "IP Addresses"
440
- end
441
- end
442
-
443
- class MockNetworkIp < Base
444
- def name
445
- self[:name] || ip
446
- end
447
-
448
- def ip
449
- self[:ip]
450
- end
451
-
452
- def used_by
453
- self[:used_by] || _parent._parent._parent.virtual_machines.detect {|v| v.ip == ip }
454
- end
455
-
456
- def status
457
- if used_by
458
- "Assigned"
459
- else
460
- "Available"
461
- end
462
- end
463
-
464
- def rnat
465
- self[:rnat] || _parent._parent.rnat
466
- end
467
-
468
- def rnat_set?
469
- !!self[:rnat]
470
- end
471
- end
472
-
473
- class MockNetworkExtensions < Base
474
- def name
475
- _parent.name
476
- end
477
-
478
- def gateway
479
- _parent.gateway
480
- end
481
-
482
- def broadcast
483
- _parent.broadcast
484
- end
485
-
486
- def address
487
- _parent.address
488
- end
489
-
490
- def rnat
491
- _parent.rnat
492
- end
493
-
494
- def type
495
- self[:type] || "DMZ"
496
- end
497
-
498
- def vlan
499
- object_id.to_s
500
- end
501
-
502
- def friendly_name
503
- "#{name} (#{type}_#{object_id})"
504
- end
505
- end
506
-
507
- class MockVirtualMachine < Base
508
- def name
509
- self[:name]
510
- end
511
-
512
- def ip
513
- self[:ip]
514
- end
515
-
516
- def cpus
517
- self[:cpus] || 1
518
- end
519
-
520
- def memory
521
- self[:memory] || 1024
522
- end
523
-
524
- def disks
525
- @disks ||= MockVirtualMachineDisks.new(self)
526
- end
527
-
528
- def status
529
- self[:status] || 2
530
- end
531
-
532
- def power_off!
533
- self[:status] = 2
534
- end
535
-
536
- def power_on!
537
- self[:status] = 4
538
- end
539
-
540
- def size
541
- disks.inject(0) {|s, d| s + d.vcloud_size }
542
- end
543
-
544
- def network_ip
545
- if network = _parent.networks.detect {|n| n.ip_collection.items[ip] }
546
- network.ip_collection.items[ip]
547
- end
548
- end
549
-
550
- # from fog ecloud server's _compose_vapp_data
551
- def to_configure_vapp_hash
552
- {
553
- :name => name,
554
- :cpus => cpus,
555
- :memory => memory,
556
- :disks => disks.map {|d| { :number => d.address.to_s, :size => d.vcloud_size, :resource => d.vcloud_size.to_s } }
557
- }
558
- end
559
-
560
- def href(purpose = :base)
561
- case purpose
562
- when :base
563
- super()
564
- when :power_on
565
- super() + "/power/action/powerOn"
566
- when :power_off
567
- super() + "/power/action/powerOff"
568
- end
569
- end
570
- end
571
-
572
- class MockVirtualMachineDisks < Array
573
- def initialize(parent = nil)
574
- @parent = parent
575
- end
576
-
577
- def _parent
578
- @parent
579
- end
580
-
581
- def <<(disk)
582
- next_address = 0
583
- disk_with_max_address = max {|a, b| a[:address] <=> b[:address] }
584
- disk_with_max_address && next_address = disk_with_max_address.address + 1
585
- disk[:address] ||= next_address
586
-
587
- super(disk)
588
-
589
- if (addresses = map {|d| d.address }).uniq.size != size
590
- raise "Duplicate disk address in: #{addresses.inspect} (#{size})"
591
- end
592
-
593
- sort! {|a, b| a.address <=> b.address }
594
- self
595
- end
596
-
597
- def at_address(address)
598
- detect {|d| d.address == address }
599
- end
600
- end
601
-
602
- class MockVirtualMachineDisk < Base
603
- def size
604
- self[:size].to_i
605
- end
606
-
607
- def vcloud_size
608
- # kilobytes
609
- size * 1024
610
- end
611
-
612
- def address
613
- self[:address].to_i
614
- end
615
- end
616
-
617
- # for Terremark eCloud
618
-
619
- class MockVdcInternetServices < Base
620
- def href
621
- _parent.href + "/internetServices"
622
- end
623
-
624
- def name
625
- "Internet Services"
626
- end
627
-
628
- def items
629
- public_ip_internet_services + backup_internet_services
630
- end
631
-
632
- def public_ip_internet_services
633
- _parent.public_ip_collection.items.inject([]) do |services, public_ip|
634
- services + public_ip.internet_service_collection.items
635
- end
636
- end
637
-
638
- def backup_internet_services
639
- @backup_internet_services ||= []
640
- end
641
- end
642
-
643
- class MockBackupInternetService < Base
644
- def name
645
- self[:name] || "Backup Internet Service #{object_id}"
646
- end
647
-
648
- def protocol
649
- self[:protocol]
650
- end
651
-
652
- def port
653
- 0
654
- end
655
-
656
- def enabled
657
- self[:enabled].to_s.downcase != "false"
658
- end
659
-
660
- def timeout
661
- self[:timeout] || 2
662
- end
663
-
664
- def description
665
- self[:description] || "Description for Backup Service #{name}"
666
- end
667
-
668
- def redirect_url
669
- nil
670
- end
671
-
672
- def node_collection
673
- @node_collection ||= MockPublicIpInternetServiceNodes.new({}, self)
674
- end
675
- end
676
-
677
- class MockFirewallAcls < Base
678
- def name
679
- "Firewall Access List"
680
- end
681
- end
682
-
683
- class MockPublicIps < Base
684
- def name
685
- self[:name] || "Public IPs"
686
- end
687
-
688
- def items
689
- @items ||= []
690
- end
691
- end
692
-
693
- class MockPublicIp < Base
694
- def name
695
- self[:name]
696
- end
697
-
698
- def internet_service_collection
699
- @internet_service_collection ||= MockPublicIpInternetServices.new({}, self)
700
- end
701
- end
702
-
703
- class MockPublicIpInternetServices < Base
704
- def href
705
- _parent.href + "/internetServices"
706
- end
707
-
708
- def items
709
- @items ||= []
710
- end
711
- end
712
-
713
- class MockPublicIpInternetService < Base
714
- def name
715
- self[:name] || "Public IP Service #{object_id}"
716
- end
717
-
718
- def description
719
- self[:description] || "Description for Public IP Service #{name}"
720
- end
721
-
722
- def protocol
723
- self[:protocol]
724
- end
725
-
726
- def port
727
- self[:port]
728
- end
729
-
730
- def enabled
731
- !!self[:enabled]
732
- end
733
-
734
- def redirect_url
735
- self[:redirect_url]
736
- end
737
-
738
- def timeout
739
- self[:timeout] || 2
740
- end
741
-
742
- def node_collection
743
- @node_collection ||= MockPublicIpInternetServiceNodes.new({}, self)
744
- end
745
-
746
- def monitor
747
- nil
748
- end
749
-
750
- def backup_service
751
- self[:backup_service]
752
- end
753
- end
754
-
755
- class MockPublicIpInternetServiceNodes < Base
756
- def href
757
- _parent.href + "/nodeServices"
758
- end
759
-
760
- def items
761
- @items ||= [].tap do |node_array|
762
- node_array.instance_variable_set("@default_port", _parent.port)
763
-
764
- def node_array.<<(node)
765
- node[:port] ||= @default_port
766
- super
767
- end
768
- end
769
- end
770
- end
771
-
772
- class MockPublicIpInternetServiceNode < Base
773
- def ip_address
774
- self[:ip_address]
775
- end
776
-
777
- def name
778
- self[:name] || "Public IP Service Node #{object_id}"
779
- end
780
-
781
- def description
782
- self[:description] || "Description for Public IP Service Node #{name}"
783
- end
784
-
785
- def port
786
- self[:port]
787
- end
788
-
789
- def enabled
790
- self[:enabled].to_s.downcase != "false"
791
- end
792
-
793
- def enabled=(new_value)
794
- self[:enabled] = new_value
795
- end
796
- end
797
- end
798
- end
799
- end
800
-
801
-
1
+ require 'fog/ecloud/collection'
802
2
  module Fog
803
3
  module Ecloud
804
4
  class Model < Fog::Model
@@ -821,78 +21,239 @@ module Fog
821
21
  end
822
22
  end
823
23
  end
824
-
825
24
  module Fog
826
25
  module Compute
26
+
27
+
827
28
  class Ecloud < Fog::Service
828
29
 
829
- class UnsupportedVersion < Exception ; end
30
+ API_URL = "https://services.enterprisecloud.terremark.com"
31
+ attr_reader :authentication_method, :version
830
32
 
831
- requires :ecloud_username, :ecloud_password, :ecloud_versions_uri
832
- recognizes :ecloud_version
33
+ #### Credentials
34
+ #requires
35
+ recognizes :ecloud_username, :ecloud_password, :ecloud_version, :ecloud_access_key, :ecloud_private_key, :ecloud_authentication_method
833
36
 
37
+ #### Models
834
38
  model_path 'fog/ecloud/models/compute'
835
- model :catalog_item
836
- model :catalog
837
- model :firewall_acl
838
- collection :firewall_acls
839
- model :internet_service
840
- collection :internet_services
841
- model :backup_internet_service
842
- collection :backup_internet_services
843
- model :ip
844
- collection :ips
845
- model :network
846
- collection :networks
847
- model :node
848
- collection :nodes
849
- model :public_ip
850
- collection :public_ips
851
- model :server
852
- collection :servers
853
- model :task
854
- collection :tasks
855
- model :vdc
856
- collection :vdcs
857
-
39
+ model :organization
40
+ collection :organizations
41
+ model :location
42
+ collection :locations
43
+ model :catalog_item
44
+ collection :catalog
45
+ model :catalog_configuration
46
+ collection :catalog_configurations
47
+ model :environment
48
+ collection :environments
49
+ model :task
50
+ collection :tasks
51
+ model :compute_pool
52
+ collection :compute_pools
53
+ model :server
54
+ collection :servers
55
+ model :hardware_configuration
56
+ collection :hardware_configurations
57
+ model :server_configuration_option
58
+ collection :server_configuration_options
59
+ model :guest_process
60
+ collection :guest_processes
61
+ model :layout
62
+ collection :layouts
63
+ model :row
64
+ collection :rows
65
+ model :group
66
+ collection :groups
67
+ model :internet_service
68
+ collection :internet_services
69
+ model :node
70
+ collection :nodes
71
+ model :monitor
72
+ collection :monitors
73
+ model :cpu_usage_detail
74
+ collection :cpu_usage_detail_summary
75
+ model :memory_usage_detail
76
+ collection :memory_usage_detail_summary
77
+ model :storage_usage_detail
78
+ collection :storage_usage_detail_summary
79
+ model :operating_system_family
80
+ collection :operating_system_families
81
+ model :operating_system
82
+ collection :operating_systems
83
+ model :template
84
+ collection :templates
85
+ model :firewall_acl
86
+ collection :firewall_acls
87
+ model :network
88
+ collection :networks
89
+ model :ip_address
90
+ collection :ip_addresses
91
+ model :physical_device
92
+ collection :physical_devices
93
+ model :public_ip
94
+ collection :public_ips
95
+ model :trusted_network_group
96
+ collection :trusted_network_groups
97
+ model :backup_internet_service
98
+ collection :backup_internet_services
99
+ model :rnat
100
+ collection :rnats
101
+ model :association
102
+ collection :associations
103
+ model :tag
104
+ collection :tags
105
+ model :admin_organization
106
+ collection :admin_organizations
107
+ model :ssh_key
108
+ collection :ssh_keys
109
+ model :password_complexity_rule
110
+ collection :password_complexity_rules
111
+ model :authentication_level
112
+ collection :authentication_levels
113
+ model :login_banner
114
+ collection :login_banners
115
+ model :user
116
+ collection :users
117
+ model :role
118
+ collection :roles
119
+ model :ssh_key
120
+ collection :ssh_keys
121
+ model :support_ticket
122
+ collection :support_tickets
123
+
124
+ #### Requests
858
125
  request_path 'fog/ecloud/requests/compute'
859
- request :add_internet_service
860
- request :add_backup_internet_service
861
- request :add_node
862
- request :clone_vapp
863
- request :configure_internet_service
864
- request :configure_network
865
- request :configure_network_ip
866
- request :configure_node
867
- request :configure_vapp
868
- request :delete_internet_service
869
- request :delete_node
870
- request :delete_vapp
871
- request :get_catalog
872
- request :get_catalog_item
873
- request :get_customization_options
874
- request :get_firewall_acls
875
- request :get_firewall_acl
876
- request :get_internet_services
877
- request :get_network
878
- request :get_network_ip
879
- request :get_network_ips
880
- request :get_network_extensions
881
126
  request :get_organization
882
- request :get_node
883
- request :get_nodes
127
+ request :get_organizations
128
+ request :get_location
129
+ request :get_locations
130
+ request :get_environment
131
+ request :get_task
132
+ request :get_tasks
133
+ request :get_compute_pool
134
+ request :get_compute_pools
135
+ request :get_server
136
+ request :get_servers
137
+ request :get_network
138
+ request :get_networks
139
+ request :get_physical_device
140
+ request :get_physical_devices
141
+ request :get_layout
142
+ request :get_layouts
143
+ request :get_row
144
+ request :get_rows
145
+ request :get_group
146
+ request :get_groups
884
147
  request :get_public_ip
885
148
  request :get_public_ips
886
- request :get_task
887
- request :get_task_list
888
- request :get_vapp
889
- request :get_vapp_template
890
- request :get_vdc
891
- request :get_versions
892
- request :instantiate_vapp_template
893
- request :login
894
- request :power_off
149
+ request :get_network_summary
150
+ request :get_internet_service
151
+ request :get_internet_services
152
+ request :get_node
153
+ request :get_nodes
154
+ request :get_firewall_acl
155
+ request :get_firewall_acls
156
+ request :get_trusted_network_group
157
+ request :get_trusted_network_groups
158
+ request :get_catalog
159
+ request :get_catalog_item
160
+ request :get_tag
161
+ request :get_tags
162
+ request :get_hardware_configuration
163
+ request :get_hardware_configurations
164
+ request :get_server_configuration_option
165
+ request :get_server_configuration_options
166
+ request :get_guest_process
167
+ request :get_guest_processes
168
+ request :get_cpu_usage_detail
169
+ request :get_cpu_usage_detail_summary
170
+ request :get_memory_usage_detail
171
+ request :get_memory_usage_detail_summary
172
+ request :get_storage_usage_detail
173
+ request :get_storage_usage_detail_summary
174
+ request :get_operating_system_family
175
+ request :get_operating_system_families
176
+ request :get_operating_system
177
+ request :get_template
178
+ request :get_templates
179
+ request :get_monitor
180
+ request :get_monitors
181
+ request :get_backup_internet_service
182
+ request :get_backup_internet_services
183
+ request :get_rnat
184
+ request :get_rnats
185
+ request :get_association
186
+ request :get_associations
187
+ request :get_admin_organization
188
+ request :get_admin_organizations
189
+ request :get_ssh_key
190
+ request :get_ssh_keys
191
+ request :get_password_complexity_rule
192
+ request :get_password_complexity_rules
193
+ request :get_authentication_level
194
+ request :get_authentication_levels
195
+ request :get_login_banner
196
+ request :get_login_banners
197
+ request :get_user
198
+ request :get_users
199
+ request :get_role
200
+ request :get_roles
201
+ request :get_api_key
202
+ request :get_api_keys
203
+ request :get_support_ticket
204
+ request :get_support_tickets
205
+ request :get_ip_address
206
+ request :get_ip_addresses
207
+ request :get_catalog_configuration
208
+ request :get_catalog_configurations
209
+ request :compute_pool_edit
210
+ request :virtual_machine_create_from_template
211
+ request :virtual_machine_import
212
+ request :virtual_machine_copy
213
+ request :virtual_machine_copy_identical
214
+ request :virtual_machine_edit
215
+ request :virtual_machine_edit_hardware_configuration
216
+ request :virtual_machine_delete
217
+ request :internet_service_create
218
+ request :internet_service_edit
219
+ request :internet_service_delete
220
+ request :backup_internet_service_create
221
+ request :backup_internet_service_edit
222
+ request :backup_internet_service_delete
223
+ request :node_service_create
224
+ request :node_service_delete
225
+ request :node_service_edit
226
+ request :monitors_create_default
227
+ request :monitors_create_ping
228
+ request :monitors_create_http
229
+ request :monitors_create_ecv
230
+ request :monitors_create_loopback
231
+ request :monitors_edit_ping
232
+ request :monitors_edit_http
233
+ request :monitors_edit_ecv
234
+ request :monitors_enable
235
+ request :monitors_disable
236
+ request :rnat_associations_edit_network
237
+ request :rnat_associations_create_device
238
+ request :rnat_associations_delete
239
+ request :rows_create
240
+ request :rows_edit
241
+ request :rows_moveup
242
+ request :rows_movedown
243
+ request :rows_delete
244
+ request :groups_create
245
+ request :groups_edit
246
+ request :groups_moveup
247
+ request :groups_movedown
248
+ request :groups_delete
249
+ request :trusted_network_groups_create
250
+ request :trusted_network_groups_edit
251
+ request :trusted_network_groups_delete
252
+ request :firewall_acls_create
253
+ request :firewall_acls_delete
254
+ request :public_ip_activate
895
255
  request :power_on
256
+ request :power_off
896
257
  request :power_reset
897
258
  request :power_shutdown
898
259
 
@@ -919,13 +280,12 @@ module Fog
919
280
  # login handles the auth, but we just need the Set-Cookie
920
281
  # header from that call.
921
282
  def do_login
922
- @login_results = login
923
- @cookie = @login_results.headers['Set-Cookie']
283
+ @login_results = get_organizations
924
284
  end
925
285
 
926
286
  def ecloud_xmlns
927
287
  {
928
- "xmlns" => "urn:tmrk:eCloudExtensions-2.6",
288
+ "xmlns" => "urn:tmrk:eCloudExtensions-2.8",
929
289
  "xmlns:i" => "http://www.w3.org/2001/XMLSchema-instance"
930
290
  }
931
291
  end
@@ -948,178 +308,53 @@ module Fog
948
308
  "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema" }
949
309
  end
950
310
 
951
- end
952
-
953
- class Mock
954
- include Shared
955
- include Fog::Ecloud::MockDataClasses
956
-
957
- def self.base_url
958
- "https://fakey.com/api/v0.8b-ext2.6"
311
+ def validate_data(required_opts = [], options = {})
312
+ unless required_opts.all? { |opt| options.has_key?(opt) }
313
+ raise ArgumentError.new("Required data missing: #{(required_opts - options.keys).map(&:inspect).join(", ")}")
314
+ end
959
315
  end
960
316
 
961
- def self.data( base_url = self.base_url )
962
- @mock_data ||= MockData.new.tap do |vcloud_mock_data|
963
- vcloud_mock_data.versions.clear
964
- vcloud_mock_data.versions << MockVersion.new(:version => "v0.8b-ext2.6", :supported => true)
965
-
966
- vcloud_mock_data.organizations << MockOrganization.new(:name => "Boom Inc.").tap do |mock_organization|
967
- mock_organization.vdcs << MockVdc.new(:name => "Boomstick").tap do |mock_vdc|
968
- mock_vdc.catalog.items << MockCatalogItem.new(:name => "Item 0").tap do |mock_catalog_item|
969
- mock_catalog_item.disks << MockVirtualMachineDisk.new(:size => 25 * 1024)
970
- end
971
- mock_vdc.catalog.items << MockCatalogItem.new(:name => "Item 1").tap do |mock_catalog_item|
972
- mock_catalog_item.disks << MockVirtualMachineDisk.new(:size => 25 * 1024)
973
- end
974
- mock_vdc.catalog.items << MockCatalogItem.new(:name => "Item 2").tap do |mock_catalog_item|
975
- mock_catalog_item.disks << MockVirtualMachineDisk.new(:size => 25 * 1024)
976
- end
977
-
978
- mock_vdc.networks << MockNetwork.new({ :subnet => "1.2.3.0/24" }, mock_vdc)
979
- mock_vdc.networks << MockNetwork.new({ :subnet => "4.5.6.0/24" }, mock_vdc)
980
-
981
- mock_vdc.virtual_machines << MockVirtualMachine.new({ :name => "Broom 1", :ip => "1.2.3.3" }, mock_vdc)
982
- mock_vdc.virtual_machines << MockVirtualMachine.new({ :name => "Broom 2", :ip => "1.2.3.4" }, mock_vdc)
983
- mock_vdc.virtual_machines << MockVirtualMachine.new({ :name => "Email!", :ip => "1.2.3.10" }, mock_vdc)
984
- end
985
-
986
- mock_organization.vdcs << MockVdc.new(:name => "Rock-n-Roll", :storage_allocated => 150, :storage_used => 40, :cpu_allocated => 1000, :memory_allocated => 2048).tap do |mock_vdc|
987
- mock_vdc.networks << MockNetwork.new({ :subnet => "7.8.9.0/24" }, mock_vdc)
988
-
989
- mock_vdc.virtual_machines << MockVirtualMachine.new({ :name => "Master Blaster", :ip => "7.8.9.10" }, mock_vdc)
990
- end
991
- end
992
-
993
- vcloud_mock_data.organizations.detect {|o| o.name == "Boom Inc." }.tap do |mock_organization|
994
- mock_organization.vdcs.detect {|v| v.name == "Boomstick" }.tap do |mock_vdc|
995
- mock_vdc.public_ip_collection.items << MockPublicIp.new(:name => "99.1.2.3").tap do |mock_public_ip|
996
- mock_public_ip.internet_service_collection.items << MockPublicIpInternetService.new({
997
- :protocol => "HTTP",
998
- :port => 80,
999
- :name => "Web Site",
1000
- :description => "Web Servers",
1001
- :redirect_url => "http://fakey.com"
1002
- }, mock_public_ip.internet_service_collection
1003
- ).tap do |mock_public_ip_service|
1004
- mock_public_ip_service.node_collection.items << MockPublicIpInternetServiceNode.new({:ip_address => "1.2.3.5", :name => "Test Node 1", :description => "web 1"}, mock_public_ip_service.node_collection)
1005
- mock_public_ip_service.node_collection.items << MockPublicIpInternetServiceNode.new({:ip_address => "1.2.3.6", :name => "Test Node 2", :description => "web 2"}, mock_public_ip_service.node_collection)
1006
- mock_public_ip_service.node_collection.items << MockPublicIpInternetServiceNode.new({:ip_address => "1.2.3.7", :name => "Test Node 3", :description => "web 3"}, mock_public_ip_service.node_collection)
1007
- end
1008
-
1009
- mock_public_ip.internet_service_collection.items << MockPublicIpInternetService.new({
1010
- :protocol => "TCP",
1011
- :port => 7000,
1012
- :name => "An SSH Map",
1013
- :description => "SSH 1"
1014
- }, mock_public_ip.internet_service_collection
1015
- ).tap do |mock_public_ip_service|
1016
- mock_public_ip_service.node_collection.items << MockPublicIpInternetServiceNode.new({ :ip_address => "1.2.3.5", :port => 22, :name => "SSH", :description => "web ssh" }, mock_public_ip_service.node_collection)
1017
- end
1018
- end
1019
-
1020
- mock_vdc.public_ip_collection.items << MockPublicIp.new(:name => "99.1.2.4").tap do |mock_public_ip|
1021
- mock_public_ip.internet_service_collection.items << MockPublicIpInternetService.new({
1022
- :protocol => "HTTP",
1023
- :port => 80,
1024
- :name => "Web Site",
1025
- :description => "Web Servers",
1026
- :redirect_url => "http://fakey.com"
1027
- }, mock_public_ip.internet_service_collection
1028
- )
1029
-
1030
- mock_public_ip.internet_service_collection.items << MockPublicIpInternetService.new({
1031
- :protocol => "TCP",
1032
- :port => 7000,
1033
- :name => "An SSH Map",
1034
- :description => "SSH 2"
1035
- }, mock_public_ip.internet_service_collection
1036
- )
1037
- end
1038
-
1039
- mock_vdc.public_ip_collection.items << MockPublicIp.new(:name => "99.1.9.7")
1040
-
1041
- mock_vdc.internet_service_collection.backup_internet_services << MockBackupInternetService.new({ :port => 10000, :protocol => "TCP"}, self)
1042
- end
1043
-
1044
- mock_organization.vdcs.detect {|v| v.name == "Rock-n-Roll" }.tap do |mock_vdc|
1045
- mock_vdc.public_ip_collection.items << MockPublicIp.new(:name => "99.99.99.99")
1046
- end
1047
- end
317
+ end
1048
318
 
1049
- vcloud_mock_data.organizations.each do |organization|
1050
- organization.vdcs.each do |vdc|
1051
- vdc.networks.each do |network|
1052
- network[:rnat] = vdc.public_ip_collection.items.first.name
1053
- end
1054
- vdc.virtual_machines.each do |virtual_machine|
1055
- virtual_machine.disks << MockVirtualMachineDisk.new(:size => 25 * 1024)
1056
- virtual_machine.disks << MockVirtualMachineDisk.new(:size => 50 * 1024)
1057
- end
1058
- end
1059
- end
319
+ class Mock
320
+ def self.data
321
+ @data ||= Hash.new do |hash, key|
322
+ hash[key] = {}
1060
323
  end
1061
324
  end
1062
325
 
1063
326
  def self.reset
1064
- @mock_data = nil
1065
- end
1066
-
1067
- def self.data_reset
1068
- Fog::Logger.warning("#{self} => #data_reset is deprecated, use #reset instead [light_black](#{caller.first})[/]")
1069
- self.reset
1070
- end
1071
-
1072
- def initialize(options = {})
1073
- require 'builder'
1074
- require 'fog/core/parser'
1075
-
1076
- @versions_uri = URI.parse('https://vcloud.fakey.com/api/versions')
327
+ @data = nil
1077
328
  end
1078
329
 
1079
- def mock_data
1080
- Fog::Compute::Ecloud::Mock.data
330
+ def initialize(options={})
331
+ @ecloud_api_key = options[:ecloud]
1081
332
  end
1082
333
 
1083
- def mock_error(expected, status, body='', headers={})
1084
- raise Excon::Errors::Unauthorized.new("Expected(#{expected}) <=> Actual(#{status})")
334
+ def data
335
+ self.class.data[@ecloud_api_key]
1085
336
  end
1086
337
 
1087
- def mock_it(status, mock_data, mock_headers = {})
1088
- response = Excon::Response.new
1089
-
1090
- #Parse the response body into a hash
1091
- if mock_data.empty?
1092
- response.body = mock_data
1093
- else
1094
- document = Fog::ToHashDocument.new
1095
- parser = Nokogiri::XML::SAX::PushParser.new(document)
1096
- parser << mock_data
1097
- parser.finish
1098
- response.body = document.body
1099
- end
1100
-
1101
- response.status = status
1102
- response.headers = mock_headers
1103
- response
338
+ def reset_data
339
+ self.class.data.delete(@ecloud_api_key)
1104
340
  end
1105
-
1106
341
  end
1107
342
 
343
+
1108
344
  class Real
1109
345
  include Shared
1110
346
 
1111
347
  class << self
1112
-
1113
348
  def basic_request(*args)
1114
349
  self.class_eval <<-EOS, __FILE__,__LINE__
1115
350
  def #{args[0]}(uri)
1116
351
  request({
1117
- :expects => #{args[1] || 200},
1118
- :method => '#{args[2] || 'GET'}',
1119
- :headers => #{args[3] ? args[3].inspect : '{}'},
1120
- :body => '#{args[4] ? args[4] : ''}',
1121
- :parse => true,
1122
- :uri => uri })
352
+ :expects => #{args[1] || 200},
353
+ :method => '#{args[2] || 'GET'}',
354
+ :headers => #{args[3] ? args[3].inspect : '{}'},
355
+ :body => '#{args[4] ? args[4] : ''}',
356
+ :parse => true,
357
+ :uri => uri })
1123
358
  end
1124
359
  EOS
1125
360
  end
@@ -1128,142 +363,56 @@ module Fog
1128
363
  self.class_eval <<-EOS, __FILE__,__LINE__
1129
364
  def #{args[0]}(uri)
1130
365
  unauthenticated_request({
1131
- :expects => #{args[1] || 200},
1132
- :method => '#{args[2] || 'GET'}',
1133
- :headers => #{args[3] ? args[3].inspect : '{}'},
1134
- :parse => true,
1135
- :uri => uri })
366
+ :expects => #{args[1] || 200},
367
+ :method => '#{args[2] || 'GET'}',
368
+ :headers => #{args[3] ? args[3].inspect : '{}'},
369
+ :parse => true,
370
+ :uri => uri })
1136
371
  end
1137
372
  EOS
1138
373
  end
1139
-
1140
374
  end
1141
375
 
376
+
1142
377
  def initialize(options = {})
1143
378
  require 'builder'
1144
379
  require 'fog/core/parser'
1145
-
1146
- @connections = {}
1147
- @connection_options = options[:connection_options] || {}
1148
- @versions_uri = URI.parse(options[:ecloud_versions_uri])
1149
- @version = options[:ecloud_version]
1150
- @username = options[:ecloud_username]
1151
- @password = options[:ecloud_password]
1152
- @persistent = options[:persistent] || false
1153
- end
1154
-
1155
- def default_organization_uri
1156
- @default_organization_uri ||= begin
1157
- unless @login_results
1158
- do_login
1159
- end
1160
- case @login_results.body[:Org]
1161
- when Array
1162
- @login_results.body[:Org].first[:href]
1163
- when Hash
1164
- @login_results.body[:Org][:href]
1165
- else
1166
- nil
380
+ @connections = {}
381
+ @connection_options = options[:connection_options] || {}
382
+ @host = options[:ecloud_host] || API_URL
383
+ @persistent = options[:persistent] || false
384
+ @version = options[:ecloud_version] || "2012-03-01"
385
+ @authentication_method = options[:ecloud_authentication_method] || :cloud_api_auth
386
+ @access_key = options[:ecloud_access_key]
387
+ @private_key = options[:ecloud_private_key]
388
+ if @private_key.nil? || @authentication_method == :basic_auth
389
+ @authentication_method = :basic_auth
390
+ @username = options[:ecloud_username]
391
+ @password = options[:ecloud_password]
392
+ if @username.nil? || @password.nil?
393
+ raise RuntimeError, "No credentials (cloud auth, or basic auth) passed!"
1167
394
  end
395
+ else
396
+ @hmac = Fog::HMAC.new("sha256", @private_key)
1168
397
  end
1169
398
  end
1170
399
 
1171
- def reload
1172
- @connections.each_value { |k,v| v.reset if v }
400
+ def default_organization_uri
401
+ "/cloudapi/ecloud/organizations/"
1173
402
  end
1174
403
 
1175
- # If the cookie isn't set, do a get_organizations call to set it
1176
- # and try the request.
1177
- # If we get an Unauthorized error, we assume the token expired, re-auth and try again
1178
404
  def request(params)
1179
- unless @cookie
1180
- do_login
1181
- end
1182
405
  begin
1183
406
  do_request(params)
1184
407
  rescue Excon::Errors::Unauthorized => e
1185
- do_login
1186
- do_request(params)
1187
- end
1188
- end
1189
-
1190
- def supporting_versions
1191
- ["v0.8b-ext2.6", "0.8b-ext2.6"]
1192
- end
1193
-
1194
- private
1195
-
1196
- def ensure_parsed(uri)
1197
- if uri.is_a?(String)
1198
- URI.parse(uri)
1199
- else
1200
- uri
408
+ raise RuntimeError, "Invalid authentication data: #{e}"
1201
409
  end
1202
410
  end
1203
411
 
1204
- def supported_version_numbers
1205
- case supported_versions
1206
- when Array
1207
- supported_versions.map { |version| version[:Version] }
1208
- when Hash
1209
- [ supported_versions[:Version] ]
1210
- end
1211
- end
1212
-
1213
- def get_login_uri
1214
- check_versions
1215
- URI.parse case supported_versions
1216
- when Array
1217
- supported_versions.detect {|version| version[:Version] == @version }[:LoginUrl]
1218
- when Hash
1219
- supported_versions[:LoginUrl]
1220
- end
1221
- end
1222
-
1223
- # If we don't support any versions the service does, then raise an error.
1224
- # If the @version that super selected isn't in our supported list, then select one that is.
1225
- def check_versions
1226
- if @version
1227
- unless supported_version_numbers.include?(@version.to_s)
1228
- raise UnsupportedVersion.new("#{@version} is not supported by the server.")
1229
- end
1230
- unless supporting_versions.include?(@version.to_s)
1231
- raise UnsupportedVersion.new("#{@version} is not supported by #{self.class}")
1232
- end
1233
- else
1234
- unless @version = (supported_version_numbers & supporting_versions).sort.first
1235
- raise UnsupportedVersion.new("\nService @ #{@versions_uri} supports: #{supported_version_numbers.join(', ')}\n" +
1236
- "#{self.class} supports: #{supporting_versions.join(', ')}")
1237
- end
1238
- end
1239
- end
1240
-
1241
- # Don't need to set the cookie for these or retry them if the cookie timed out
1242
- def unauthenticated_request(params)
1243
- do_request(params)
1244
- end
1245
-
1246
- # Use this to set the Authorization header for login
1247
- def authorization_header
1248
- "Basic #{Base64.encode64("#{@username}:#{@password}").chomp!}"
1249
- end
1250
-
1251
- def login_uri
1252
- @login_uri ||= get_login_uri
1253
- end
1254
-
1255
- # login handles the auth, but we just need the Set-Cookie
1256
- # header from that call.
1257
- def do_login
1258
- @login_results = login
1259
- @cookie = @login_results.headers['Set-Cookie']
1260
- end
1261
-
1262
- # Actually do the request
1263
412
  def do_request(params)
1264
413
  # Convert the uri to a URI if it's a string.
1265
414
  if params[:uri].is_a?(String)
1266
- params[:uri] = URI.parse(params[:uri])
415
+ params[:uri] = URI.parse(@host + params[:uri])
1267
416
  end
1268
417
  host_url = "#{params[:uri].scheme}://#{params[:uri].host}#{params[:uri].port ? ":#{params[:uri].port}" : ''}"
1269
418
 
@@ -1272,24 +421,17 @@ module Fog
1272
421
  @connections[host_url] ||= Fog::Connection.new(host_url, @persistent, @connection_options)
1273
422
 
1274
423
  # Set headers to an empty hash if none are set.
1275
- headers = params[:headers] || {}
1276
-
1277
- # Add our auth cookie to the headers
1278
- if @cookie
1279
- headers.merge!('Cookie' => @cookie)
1280
- end
424
+ headers = set_extra_headers_for(params) || set_extra_headers_for({})
1281
425
 
1282
426
  # Make the request
1283
- response = @connections[host_url].request({
1284
- :body => params[:body] || '',
1285
- :expects => params[:expects] || 200,
1286
- :headers => headers,
1287
- :method => params[:method] || 'GET',
1288
- :path => params[:uri].path
1289
- })
427
+ options = {:expects => params[:expects] || 200, :method => params[:method] || 'GET', :path => params[:uri].path + "#{"?#{params[:uri].query}" if params[:uri].query}", :headers => headers}
428
+ unless params[:body].empty?
429
+ options.merge!({:body => params[:body]})
430
+ end
431
+ #puts options[:body].inspect
432
+ response = @connections[host_url].request(options)
1290
433
 
1291
434
  # Parse the response body into a hash
1292
- #puts response.body
1293
435
  unless response.body.empty?
1294
436
  if params[:parse]
1295
437
  document = Fog::ToHashDocument.new
@@ -1300,12 +442,72 @@ module Fog
1300
442
  response.body = document.body
1301
443
  end
1302
444
  end
1303
-
1304
445
  response
1305
446
  end
1306
447
 
448
+ private
449
+
450
+ # if Authorization and x-tmrk-authorization are used, the x-tmrk-authorization takes precendence.
451
+ def set_extra_headers_for(params)
452
+ maor_headers = {
453
+ 'x-tmrk-version' => @version,
454
+ 'Date' => Time.now.utc.strftime("%a, %d %b %Y %H:%M:%S GMT"),
455
+ }
456
+ params[:headers].merge!(maor_headers)
457
+ if params[:method]=="POST" || params[:method]=="PUT"
458
+ params[:headers].merge!({"Content-Type" => 'application/xml'})
459
+ params[:headers].merge!({"Accept" => 'application/xml'})
460
+ end
461
+ unless params[:body].empty?
462
+ params[:headers].merge!({"x-tmrk-contenthash" => "Sha256 #{Base64.encode64(Digest::SHA2.digest(params[:body].to_s)).chomp}"})
463
+ end
464
+ if @authentication_method == :basic_auth
465
+ params[:headers].merge!({'Authorization' => "Basic #{Base64.encode64(@username+":"+@password).delete("\r\n")}"})
466
+ elsif @authentication_method == :cloud_api_auth
467
+ signature = cloud_api_signature(params)
468
+ params[:headers].merge!({
469
+ "x-tmrk-authorization" => %{CloudApi AccessKey="#{@access_key}" SignatureType="HmacSha256" Signature="#{signature}"}
470
+ })
471
+ end
472
+ params[:headers]
473
+ end
474
+
475
+ def cloud_api_signature(params)
476
+ verb = params[:method].upcase
477
+ headers = params[:headers]
478
+ path = params[:uri].path
479
+ canonicalized_headers = canonicalize_headers(headers)
480
+ canonicalized_resource = canonicalize_resource(path)
481
+ string = [ verb,
482
+ headers['Content-Length'].to_s,
483
+ headers['Content-Type'].to_s,
484
+ headers['Date'].to_s,
485
+ canonicalized_headers,
486
+ canonicalized_resource + "\n"
487
+ ].join("\n")
488
+ Base64.encode64(@hmac.sign(string)).chomp
489
+ end
490
+
491
+
492
+ # section 5.6.3.2 in the ~1000 page pdf spec
493
+ def canonicalize_headers(headers)
494
+ tmp = headers.inject({}) {|ret, h| ret[h.first.downcase] = h.last if h.first.match(/^x-tmrk/i) ; ret }
495
+ tmp.reject! {|k,v| k == "x-tmrk-authorization" }
496
+ tmp = tmp.sort.map{|e| "#{e.first}:#{e.last}" }.join("\n")
497
+ tmp
498
+ end
499
+
500
+ # section 5.6.3.3 in the ~1000 page pdf spec
501
+ def canonicalize_resource(path)
502
+ uri, query_string = path.split("?")
503
+ return uri if query_string.nil?
504
+ query_string_pairs = query_string.split("&").sort.map{|e| e.split("=") }
505
+ tm_query_string = query_string_pairs.map{|x| "#{x.first.downcase}:#{x.last}" }.join("\n")
506
+ "#{uri.downcase}\n#{tm_query_string}\n"
507
+ end
1307
508
  end
1308
509
 
510
+
1309
511
  end
1310
512
  end
1311
513
  end