fog-maestrodev 1.15.0.20130829165835 → 1.15.0.20130927082724

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 (350) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +1 -0
  3. data/fog.gemspec +5 -2
  4. data/lib/fog.rb +1 -0
  5. data/lib/fog/atmos/models/storage/file.rb +2 -1
  6. data/lib/fog/aws.rb +4 -1
  7. data/lib/fog/aws/data_pipeline.rb +3 -0
  8. data/lib/fog/aws/elasticache.rb +2 -0
  9. data/lib/fog/aws/models/auto_scaling/group.rb +12 -12
  10. data/lib/fog/aws/models/compute/subnet.rb +3 -1
  11. data/lib/fog/aws/models/elasticache/cluster.rb +3 -1
  12. data/lib/fog/aws/parsers/redshift/cluster.rb +29 -0
  13. data/lib/fog/aws/parsers/redshift/cluster_parser.rb +144 -0
  14. data/lib/fog/aws/parsers/redshift/cluster_security_group_parser.rb +50 -0
  15. data/lib/fog/aws/parsers/redshift/cluster_snapshot.rb +32 -0
  16. data/lib/fog/aws/parsers/redshift/cluster_snapshot_parser.rb +66 -0
  17. data/lib/fog/aws/parsers/redshift/cluster_subnet_group_parser.rb +51 -0
  18. data/lib/fog/aws/parsers/redshift/create_cluster_parameter_group.rb +30 -0
  19. data/lib/fog/aws/parsers/redshift/create_cluster_security_group.rb +31 -0
  20. data/lib/fog/aws/parsers/redshift/describe_cluster_parameter_groups.rb +41 -0
  21. data/lib/fog/aws/parsers/redshift/describe_cluster_parameters.rb +48 -0
  22. data/lib/fog/aws/parsers/redshift/describe_cluster_security_groups.rb +38 -0
  23. data/lib/fog/aws/parsers/redshift/describe_cluster_snapshots.rb +38 -0
  24. data/lib/fog/aws/parsers/redshift/describe_cluster_subnet_groups.rb +58 -0
  25. data/lib/fog/aws/parsers/redshift/describe_cluster_versions.rb +53 -0
  26. data/lib/fog/aws/parsers/redshift/describe_clusters.rb +30 -0
  27. data/lib/fog/aws/parsers/redshift/describe_default_cluster_parameters.rb +49 -0
  28. data/lib/fog/aws/parsers/redshift/describe_events.rb +44 -0
  29. data/lib/fog/aws/parsers/redshift/describe_orderable_cluster_options.rb +54 -0
  30. data/lib/fog/aws/parsers/redshift/describe_reserved_node_offerings.rb +64 -0
  31. data/lib/fog/aws/parsers/redshift/describe_reserved_nodes.rb +71 -0
  32. data/lib/fog/aws/parsers/redshift/describe_resize.rb +60 -0
  33. data/lib/fog/aws/parsers/redshift/purchase_reserved_node_offering.rb +58 -0
  34. data/lib/fog/aws/parsers/redshift/revoke_cluster_security_group_ingress.rb +31 -0
  35. data/lib/fog/aws/parsers/redshift/update_cluster_parameter_group_parser.rb +29 -0
  36. data/lib/fog/aws/parsers/sts/get_session_token.rb +1 -3
  37. data/lib/fog/aws/redshift.rb +126 -0
  38. data/lib/fog/aws/requests/compute/run_instances.rb +2 -0
  39. data/lib/fog/aws/requests/data_pipeline/delete_pipeline.rb +2 -3
  40. data/lib/fog/aws/requests/data_pipeline/describe_objects.rb +41 -0
  41. data/lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb +37 -0
  42. data/lib/fog/aws/requests/data_pipeline/query_objects.rb +41 -0
  43. data/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb +27 -2
  44. data/lib/fog/aws/requests/elasticache/create_cache_security_group.rb +23 -2
  45. data/lib/fog/aws/requests/elasticache/delete_cache_security_group.rb +10 -1
  46. data/lib/fog/aws/requests/elasticache/describe_cache_security_groups.rb +36 -2
  47. data/lib/fog/aws/requests/redshift/authorize_cluster_security_group_ingress.rb +56 -0
  48. data/lib/fog/aws/requests/redshift/authorize_snapshot_access.rb +43 -0
  49. data/lib/fog/aws/requests/redshift/copy_cluster_snapshot.rb +48 -0
  50. data/lib/fog/aws/requests/redshift/create_cluster.rb +151 -0
  51. data/lib/fog/aws/requests/redshift/create_cluster_parameter_group.rb +54 -0
  52. data/lib/fog/aws/requests/redshift/create_cluster_security_group.rb +42 -0
  53. data/lib/fog/aws/requests/redshift/create_cluster_snapshot.rb +44 -0
  54. data/lib/fog/aws/requests/redshift/create_cluster_subnet_group.rb +50 -0
  55. data/lib/fog/aws/requests/redshift/delete_cluster.rb +51 -0
  56. data/lib/fog/aws/requests/redshift/delete_cluster_parameter_group.rb +34 -0
  57. data/lib/fog/aws/requests/redshift/delete_cluster_security_group.rb +33 -0
  58. data/lib/fog/aws/requests/redshift/delete_cluster_snapshot.rb +44 -0
  59. data/lib/fog/aws/requests/redshift/delete_cluster_subnet_group.rb +38 -0
  60. data/lib/fog/aws/requests/redshift/describe_cluster_parameter_groups.rb +48 -0
  61. data/lib/fog/aws/requests/redshift/describe_cluster_parameters.rb +55 -0
  62. data/lib/fog/aws/requests/redshift/describe_cluster_security_groups.rb +50 -0
  63. data/lib/fog/aws/requests/redshift/describe_cluster_snapshots.rb +73 -0
  64. data/lib/fog/aws/requests/redshift/describe_cluster_subnet_groups.rb +47 -0
  65. data/lib/fog/aws/requests/redshift/describe_cluster_versions.rb +54 -0
  66. data/lib/fog/aws/requests/redshift/describe_clusters.rb +49 -0
  67. data/lib/fog/aws/requests/redshift/describe_default_cluster_parameters.rb +49 -0
  68. data/lib/fog/aws/requests/redshift/describe_events.rb +80 -0
  69. data/lib/fog/aws/requests/redshift/describe_orderable_cluster_options.rb +55 -0
  70. data/lib/fog/aws/requests/redshift/describe_reserved_node_offerings.rb +48 -0
  71. data/lib/fog/aws/requests/redshift/describe_reserved_nodes.rb +48 -0
  72. data/lib/fog/aws/requests/redshift/describe_resize.rb +39 -0
  73. data/lib/fog/aws/requests/redshift/modify_cluster.rb +111 -0
  74. data/lib/fog/aws/requests/redshift/modify_cluster_parameter_group.rb +44 -0
  75. data/lib/fog/aws/requests/redshift/modify_cluster_subnet_group.rb +50 -0
  76. data/lib/fog/aws/requests/redshift/purchase_reserved_node_offering.rb +41 -0
  77. data/lib/fog/aws/requests/redshift/reboot_cluster.rb +37 -0
  78. data/lib/fog/aws/requests/redshift/reset_cluster_parameter_group.rb +57 -0
  79. data/lib/fog/aws/requests/redshift/restore_from_cluster_snapshot.rb +77 -0
  80. data/lib/fog/aws/requests/redshift/revoke_cluster_security_group_ingress.rb +56 -0
  81. data/lib/fog/aws/requests/redshift/revoke_snapshot_access.rb +44 -0
  82. data/lib/fog/aws/requests/sts/get_federation_token.rb +42 -0
  83. data/lib/fog/bin.rb +1 -0
  84. data/lib/fog/bin/aws.rb +4 -0
  85. data/lib/fog/bin/openstack.rb +5 -0
  86. data/lib/fog/bin/rackspace.rb +4 -0
  87. data/lib/fog/bin/vcloud_director.rb +30 -0
  88. data/lib/fog/brightbox/requests/compute/update_server.rb +1 -0
  89. data/lib/fog/cloudsigma/compute.rb +5 -0
  90. data/lib/fog/cloudsigma/models/fwpolicies.rb +21 -0
  91. data/lib/fog/cloudsigma/models/fwpolicy.rb +21 -0
  92. data/lib/fog/cloudsigma/models/rule.rb +21 -0
  93. data/lib/fog/cloudsigma/requests/list_fwpolicies.rb +18 -0
  94. data/lib/fog/compute.rb +7 -4
  95. data/lib/fog/core.rb +1 -0
  96. data/lib/fog/core/errors.rb +3 -0
  97. data/lib/fog/dynect/dns.rb +3 -1
  98. data/lib/fog/dynect/models/dns/records.rb +32 -20
  99. data/lib/fog/dynect/requests/dns/get_all_records.rb +56 -0
  100. data/lib/fog/dynect/requests/dns/get_node_list.rb +1 -1
  101. data/lib/fog/dynect/requests/dns/put_record.rb +76 -0
  102. data/lib/fog/google/models/compute/flavors.rb +2 -2
  103. data/lib/fog/google/requests/compute/get_machine_type.rb +7 -2
  104. data/lib/fog/joyent/compute.rb +1 -1
  105. data/lib/fog/linode/models/compute/server.rb +1 -1
  106. data/lib/fog/local/models/storage/directories.rb +1 -1
  107. data/lib/fog/openstack.rb +1 -0
  108. data/lib/fog/openstack/models/compute/images.rb +10 -2
  109. data/lib/fog/openstack/models/compute/server.rb +2 -0
  110. data/lib/fog/openstack/models/orchestration/stack.rb +52 -0
  111. data/lib/fog/openstack/models/orchestration/stacks.rb +21 -0
  112. data/lib/fog/openstack/orchestration.rb +227 -0
  113. data/lib/fog/openstack/requests/compute/create_server.rb +36 -25
  114. data/lib/fog/openstack/requests/compute/list_images_detail.rb +4 -3
  115. data/lib/fog/openstack/requests/orchestration/create_stack.rb +55 -0
  116. data/lib/fog/openstack/requests/orchestration/delete_stack.rb +36 -0
  117. data/lib/fog/openstack/requests/orchestration/list_stacks.rb +48 -0
  118. data/lib/fog/openstack/requests/orchestration/update_stack.rb +41 -0
  119. data/lib/fog/openstack/requests/storage/get_object.rb +7 -7
  120. data/lib/fog/openstack/storage.rb +2 -2
  121. data/lib/fog/orchestration.rb +25 -0
  122. data/lib/fog/rackspace.rb +1 -0
  123. data/lib/fog/rackspace/auto_scale.rb +132 -0
  124. data/lib/fog/rackspace/block_storage.rb +2 -2
  125. data/lib/fog/rackspace/cdn.rb +23 -23
  126. data/lib/fog/rackspace/compute.rb +2 -2
  127. data/lib/fog/rackspace/compute_v2.rb +2 -2
  128. data/lib/fog/rackspace/databases.rb +2 -2
  129. data/lib/fog/rackspace/dns.rb +14 -16
  130. data/lib/fog/rackspace/examples/compute_v2/create_network.rb +81 -0
  131. data/lib/fog/rackspace/examples/compute_v2/delete_network.rb +78 -0
  132. data/lib/fog/rackspace/load_balancers.rb +2 -2
  133. data/lib/fog/rackspace/mock_data.rb +69 -4
  134. data/lib/fog/rackspace/models/auto_scale/group.rb +207 -0
  135. data/lib/fog/rackspace/models/auto_scale/group_config.rb +60 -0
  136. data/lib/fog/rackspace/models/auto_scale/groups.rb +46 -0
  137. data/lib/fog/rackspace/models/auto_scale/launch_config.rb +44 -0
  138. data/lib/fog/rackspace/models/auto_scale/policies.rb +65 -0
  139. data/lib/fog/rackspace/models/auto_scale/policy.rb +206 -0
  140. data/lib/fog/rackspace/models/auto_scale/webhook.rb +105 -0
  141. data/lib/fog/rackspace/models/auto_scale/webhooks.rb +64 -0
  142. data/lib/fog/rackspace/models/block_storage/volume.rb +2 -1
  143. data/lib/fog/rackspace/models/monitoring/notification.rb +42 -0
  144. data/lib/fog/rackspace/models/monitoring/notifications.rb +30 -0
  145. data/lib/fog/rackspace/monitoring.rb +21 -14
  146. data/lib/fog/rackspace/requests/auto_scale/create_group.rb +61 -0
  147. data/lib/fog/rackspace/requests/auto_scale/create_policy.rb +45 -0
  148. data/lib/fog/rackspace/requests/auto_scale/create_webhook.rb +57 -0
  149. data/lib/fog/rackspace/requests/auto_scale/delete_group.rb +23 -0
  150. data/lib/fog/rackspace/requests/auto_scale/delete_policy.rb +31 -0
  151. data/lib/fog/rackspace/requests/auto_scale/delete_webhook.rb +34 -0
  152. data/lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb +22 -0
  153. data/lib/fog/rackspace/requests/auto_scale/execute_policy.rb +22 -0
  154. data/lib/fog/rackspace/requests/auto_scale/get_group.rb +29 -0
  155. data/lib/fog/rackspace/requests/auto_scale/get_group_config.rb +30 -0
  156. data/lib/fog/rackspace/requests/auto_scale/get_group_state.rb +62 -0
  157. data/lib/fog/rackspace/requests/auto_scale/get_launch_config.rb +30 -0
  158. data/lib/fog/rackspace/requests/auto_scale/get_policy.rb +35 -0
  159. data/lib/fog/rackspace/requests/auto_scale/get_webhook.rb +39 -0
  160. data/lib/fog/rackspace/requests/auto_scale/list_groups.rb +35 -0
  161. data/lib/fog/rackspace/requests/auto_scale/list_policies.rb +23 -0
  162. data/lib/fog/rackspace/requests/auto_scale/list_webhooks.rb +33 -0
  163. data/lib/fog/rackspace/requests/auto_scale/pause_group_state.rb +23 -0
  164. data/lib/fog/rackspace/requests/auto_scale/resume_group_state.rb +23 -0
  165. data/lib/fog/rackspace/requests/auto_scale/update_group_config.rb +39 -0
  166. data/lib/fog/rackspace/requests/auto_scale/update_launch_config.rb +36 -0
  167. data/lib/fog/rackspace/requests/auto_scale/update_policy.rb +33 -0
  168. data/lib/fog/rackspace/requests/auto_scale/update_webhook.rb +44 -0
  169. data/lib/fog/rackspace/requests/compute_v2/delete_server.rb +2 -2
  170. data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +5 -6
  171. data/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb +10 -0
  172. data/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb +30 -0
  173. data/lib/fog/rackspace/requests/monitoring/create_agent_token.rb +31 -0
  174. data/lib/fog/rackspace/requests/monitoring/create_alarm.rb +32 -0
  175. data/lib/fog/rackspace/requests/monitoring/create_check.rb +31 -0
  176. data/lib/fog/rackspace/requests/monitoring/create_entity.rb +32 -0
  177. data/lib/fog/rackspace/requests/monitoring/create_notification.rb +18 -0
  178. data/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb +32 -0
  179. data/lib/fog/rackspace/requests/monitoring/delete_alarm.rb +27 -0
  180. data/lib/fog/rackspace/requests/monitoring/delete_check.rb +26 -0
  181. data/lib/fog/rackspace/requests/monitoring/delete_entity.rb +27 -0
  182. data/lib/fog/rackspace/requests/monitoring/delete_notification.rb +16 -0
  183. data/lib/fog/rackspace/requests/monitoring/get_agent_token.rb +33 -0
  184. data/lib/fog/rackspace/requests/monitoring/get_alarm.rb +38 -0
  185. data/lib/fog/rackspace/requests/monitoring/get_check.rb +41 -0
  186. data/lib/fog/rackspace/requests/monitoring/get_entity.rb +30 -21
  187. data/lib/fog/rackspace/requests/monitoring/get_notification.rb +50 -0
  188. data/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb +39 -0
  189. data/lib/fog/rackspace/requests/monitoring/list_alarms.rb +50 -0
  190. data/lib/fog/rackspace/requests/monitoring/list_check_types.rb +72 -0
  191. data/lib/fog/rackspace/requests/monitoring/list_checks.rb +54 -0
  192. data/lib/fog/rackspace/requests/monitoring/list_data_points.rb +37 -0
  193. data/lib/fog/rackspace/requests/monitoring/list_entities.rb +53 -0
  194. data/lib/fog/rackspace/requests/monitoring/list_metrics.rb +65 -0
  195. data/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb +55 -0
  196. data/lib/fog/rackspace/requests/monitoring/list_notifications.rb +67 -0
  197. data/lib/fog/rackspace/requests/monitoring/list_overview.rb +97 -1
  198. data/lib/fog/rackspace/requests/monitoring/update_alarm.rb +33 -2
  199. data/lib/fog/rackspace/requests/monitoring/update_check.rb +32 -2
  200. data/lib/fog/rackspace/requests/monitoring/update_entity.rb +33 -2
  201. data/lib/fog/rackspace/requests/monitoring/update_notification.rb +17 -0
  202. data/lib/fog/rackspace/requests/storage/get_object.rb +7 -9
  203. data/lib/fog/rackspace/service.rb +16 -8
  204. data/lib/fog/rackspace/storage.rb +2 -2
  205. data/lib/fog/vcloud_director.rb +11 -0
  206. data/lib/fog/vcloud_director/README.md +967 -0
  207. data/lib/fog/vcloud_director/compute.rb +398 -0
  208. data/lib/fog/vcloud_director/generators/compute/customization.rb +100 -0
  209. data/lib/fog/vcloud_director/generators/compute/disks.rb +175 -0
  210. data/lib/fog/vcloud_director/generators/compute/metadata.rb +105 -0
  211. data/lib/fog/vcloud_director/generators/compute/vm_network.rb +122 -0
  212. data/lib/fog/vcloud_director/models/compute/catalog.rb +25 -0
  213. data/lib/fog/vcloud_director/models/compute/catalog_item.rb +25 -0
  214. data/lib/fog/vcloud_director/models/compute/catalog_items.rb +32 -0
  215. data/lib/fog/vcloud_director/models/compute/catalogs.rb +32 -0
  216. data/lib/fog/vcloud_director/models/compute/disk.rb +51 -0
  217. data/lib/fog/vcloud_director/models/compute/disks.rb +40 -0
  218. data/lib/fog/vcloud_director/models/compute/network.rb +26 -0
  219. data/lib/fog/vcloud_director/models/compute/networks.rb +31 -0
  220. data/lib/fog/vcloud_director/models/compute/organization.rb +41 -0
  221. data/lib/fog/vcloud_director/models/compute/organizations.rb +30 -0
  222. data/lib/fog/vcloud_director/models/compute/tag.rb +36 -0
  223. data/lib/fog/vcloud_director/models/compute/tags.rb +51 -0
  224. data/lib/fog/vcloud_director/models/compute/task.rb +58 -0
  225. data/lib/fog/vcloud_director/models/compute/tasks.rb +31 -0
  226. data/lib/fog/vcloud_director/models/compute/vapp.rb +56 -0
  227. data/lib/fog/vcloud_director/models/compute/vapps.rb +34 -0
  228. data/lib/fog/vcloud_director/models/compute/vdc.rb +33 -0
  229. data/lib/fog/vcloud_director/models/compute/vdcs.rb +32 -0
  230. data/lib/fog/vcloud_director/models/compute/vm.rb +99 -0
  231. data/lib/fog/vcloud_director/models/compute/vm_customization.rb +40 -0
  232. data/lib/fog/vcloud_director/models/compute/vm_customizations.rb +16 -0
  233. data/lib/fog/vcloud_director/models/compute/vm_network.rb +30 -0
  234. data/lib/fog/vcloud_director/models/compute/vm_networks.rb +21 -0
  235. data/lib/fog/vcloud_director/models/compute/vms.rb +41 -0
  236. data/lib/fog/vcloud_director/parsers/compute/disks.rb +57 -0
  237. data/lib/fog/vcloud_director/parsers/compute/metadata.rb +66 -0
  238. data/lib/fog/vcloud_director/parsers/compute/network.rb +108 -0
  239. data/lib/fog/vcloud_director/parsers/compute/vm.rb +82 -0
  240. data/lib/fog/vcloud_director/parsers/compute/vm_customization.rb +56 -0
  241. data/lib/fog/vcloud_director/parsers/compute/vm_network.rb +111 -0
  242. data/lib/fog/vcloud_director/parsers/compute/vms.rb +96 -0
  243. data/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb +41 -0
  244. data/lib/fog/vcloud_director/requests/compute/delete_metadata.rb +20 -0
  245. data/lib/fog/vcloud_director/requests/compute/delete_vapp.rb +20 -0
  246. data/lib/fog/vcloud_director/requests/compute/get_catalog.rb +18 -0
  247. data/lib/fog/vcloud_director/requests/compute/get_catalog_item.rb +18 -0
  248. data/lib/fog/vcloud_director/requests/compute/get_current_session.rb +75 -0
  249. data/lib/fog/vcloud_director/requests/compute/get_href.rb +19 -0
  250. data/lib/fog/vcloud_director/requests/compute/get_metadata.rb +20 -0
  251. data/lib/fog/vcloud_director/requests/compute/get_network.rb +21 -0
  252. data/lib/fog/vcloud_director/requests/compute/get_organization.rb +72 -0
  253. data/lib/fog/vcloud_director/requests/compute/get_organizations.rb +37 -0
  254. data/lib/fog/vcloud_director/requests/compute/get_request.rb +17 -0
  255. data/lib/fog/vcloud_director/requests/compute/get_supported_versions.rb +1160 -0
  256. data/lib/fog/vcloud_director/requests/compute/get_task.rb +18 -0
  257. data/lib/fog/vcloud_director/requests/compute/get_tasks_list.rb +18 -0
  258. data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +18 -0
  259. data/lib/fog/vcloud_director/requests/compute/get_vapp_template.rb +18 -0
  260. data/lib/fog/vcloud_director/requests/compute/get_vdc.rb +154 -0
  261. data/lib/fog/vcloud_director/requests/compute/get_vm.rb +20 -0
  262. data/lib/fog/vcloud_director/requests/compute/get_vm_cpu.rb +18 -0
  263. data/lib/fog/vcloud_director/requests/compute/get_vm_customization.rb +20 -0
  264. data/lib/fog/vcloud_director/requests/compute/get_vm_disks.rb +20 -0
  265. data/lib/fog/vcloud_director/requests/compute/get_vm_memory.rb +18 -0
  266. data/lib/fog/vcloud_director/requests/compute/get_vm_network.rb +20 -0
  267. data/lib/fog/vcloud_director/requests/compute/get_vms.rb +20 -0
  268. data/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb +20 -0
  269. data/lib/fog/vcloud_director/requests/compute/helper.rb +93 -0
  270. data/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb +124 -0
  271. data/lib/fog/vcloud_director/requests/compute/post_task_cancel.rb +25 -0
  272. data/lib/fog/vcloud_director/requests/compute/post_vapp_undeploy.rb +26 -0
  273. data/lib/fog/vcloud_director/requests/compute/post_vm_metadata.rb +29 -0
  274. data/lib/fog/vcloud_director/requests/compute/post_vm_poweroff.rb +18 -0
  275. data/lib/fog/vcloud_director/requests/compute/post_vm_poweron.rb +18 -0
  276. data/lib/fog/vcloud_director/requests/compute/put_metadata_value.rb +25 -0
  277. data/lib/fog/vcloud_director/requests/compute/put_vm_cpu.rb +34 -0
  278. data/lib/fog/vcloud_director/requests/compute/put_vm_customization.rb +24 -0
  279. data/lib/fog/vcloud_director/requests/compute/put_vm_disks.rb +25 -0
  280. data/lib/fog/vcloud_director/requests/compute/put_vm_memory.rb +34 -0
  281. data/lib/fog/vcloud_director/requests/compute/put_vm_network.rb +24 -0
  282. data/tests/aws/models/auto_scaling/groups_test.rb +5 -0
  283. data/tests/aws/models/compute/subnet_tests.rb +1 -1
  284. data/tests/aws/models/compute/subnets_tests.rb +1 -1
  285. data/tests/aws/requests/data_pipeline/helper.rb +38 -8
  286. data/tests/aws/requests/data_pipeline/pipeline_tests.rb +25 -1
  287. data/tests/aws/requests/elasticache/security_group_tests.rb +3 -2
  288. data/tests/aws/requests/redshift/cluster_parameter_group_tests.rb +77 -0
  289. data/tests/aws/requests/redshift/cluster_security_group_tests.rb +44 -0
  290. data/tests/aws/requests/redshift/cluster_snapshot_tests.rb +75 -0
  291. data/tests/aws/requests/redshift/cluster_tests.rb +82 -0
  292. data/tests/aws/requests/sts/get_federation_token_tests.rb +0 -1
  293. data/tests/aws/signed_params_tests.rb +12 -0
  294. data/tests/brightbox/compute/helper.rb +1 -0
  295. data/tests/brightbox/compute/schema.rb +696 -0
  296. data/tests/brightbox/requests/compute/account_tests.rb +7 -7
  297. data/tests/brightbox/requests/compute/api_client_tests.rb +6 -6
  298. data/tests/brightbox/requests/compute/application_test.rb +6 -6
  299. data/tests/brightbox/requests/compute/cloud_ip_tests.rb +7 -7
  300. data/tests/brightbox/requests/compute/firewall_policy_tests.rb +5 -5
  301. data/tests/brightbox/requests/compute/firewall_rule_tests.rb +4 -4
  302. data/tests/brightbox/requests/compute/helper.rb +0 -688
  303. data/tests/brightbox/requests/compute/image_tests.rb +2 -2
  304. data/tests/brightbox/requests/compute/interface_tests.rb +1 -1
  305. data/tests/brightbox/requests/compute/load_balancer_tests.rb +9 -9
  306. data/tests/brightbox/requests/compute/server_group_tests.rb +8 -8
  307. data/tests/brightbox/requests/compute/server_tests.rb +13 -10
  308. data/tests/brightbox/requests/compute/server_type_tests.rb +2 -2
  309. data/tests/brightbox/requests/compute/user_tests.rb +3 -3
  310. data/tests/brightbox/requests/compute/zone_tests.rb +2 -2
  311. data/tests/compute/helper.rb +3 -2
  312. data/tests/dynect/requests/dns/dns_tests.rb +29 -0
  313. data/tests/helpers/mock_helper.rb +3 -0
  314. data/tests/openstack/requests/compute/server_tests.rb +30 -0
  315. data/tests/openstack/requests/orchestration/stack_tests.rb +30 -0
  316. data/tests/rackspace/auto_scale_tests.rb +84 -0
  317. data/tests/rackspace/models/auto_scale/group.rb +19 -0
  318. data/tests/rackspace/models/auto_scale/groups.rb +13 -0
  319. data/tests/rackspace/models/auto_scale/policies.rb +23 -0
  320. data/tests/rackspace/models/auto_scale/policy.rb +29 -0
  321. data/tests/rackspace/models/auto_scale/webhook.rb +35 -0
  322. data/tests/rackspace/models/auto_scale/webhooks.rb +28 -0
  323. data/tests/rackspace/models/monitoring/notification_tests.rb +19 -0
  324. data/tests/rackspace/models/monitoring/notifications_tests.rb +10 -0
  325. data/tests/rackspace/requests/auto_scale/config_tests.rb +51 -0
  326. data/tests/rackspace/requests/auto_scale/group_tests.rb +38 -0
  327. data/tests/rackspace/requests/auto_scale/helper.rb +181 -0
  328. data/tests/rackspace/requests/auto_scale/policy_tests.rb +61 -0
  329. data/tests/rackspace/requests/auto_scale/webhook_tests.rb +49 -0
  330. data/tests/rackspace/requests/compute_v2/address_tests.rb +1 -1
  331. data/tests/rackspace/requests/monitoring/agent_tests.rb +0 -1
  332. data/tests/rackspace/requests/monitoring/alarm_tests.rb +3 -3
  333. data/tests/rackspace/requests/monitoring/check_tests.rb +0 -1
  334. data/tests/rackspace/requests/monitoring/entity_tests.rb +3 -12
  335. data/tests/rackspace/requests/monitoring/list_tests.rb +18 -6
  336. data/tests/rackspace/requests/monitoring/notification_tests.rb +46 -0
  337. data/tests/vcloud_director/models/compute/catalog_items_tests.rb +42 -0
  338. data/tests/vcloud_director/models/compute/catalogs_tests.rb +42 -0
  339. data/tests/vcloud_director/models/compute/helper.rb +67 -0
  340. data/tests/vcloud_director/models/compute/organizations_tests.rb +22 -0
  341. data/tests/vcloud_director/models/compute/vapp_life_cycle_tests.rb +98 -0
  342. data/tests/vcloud_director/models/compute/vapp_tests.rb +42 -0
  343. data/tests/vcloud_director/models/compute/vdcs_tests.rb +45 -0
  344. data/tests/vcloud_director/models/compute/vms_tests.rb +89 -0
  345. data/tests/vcloud_director/models/tools/reduced_vcr_requests.rb +27 -0
  346. data/tests/vcloud_director/requests/compute/organization_tests.rb +48 -0
  347. data/tests/vcloud_director/requests/compute/session_tests.rb +29 -0
  348. data/tests/vcloud_director/requests/compute/vdc_tests.rb +90 -0
  349. data/tests/vcloud_director/requests/compute/versions_tests.rb +28 -0
  350. metadata +342 -43
@@ -0,0 +1,55 @@
1
+ module Fog
2
+ module Orchestration
3
+ class OpenStack
4
+ class Real
5
+
6
+ # Create a stack.
7
+ #
8
+ # * stack_name [String] Name of the stack to create.
9
+ # * options [Hash]:
10
+ # * :template_body [String] Structure containing the template body.
11
+ # or (one of the two Template parameters is required)
12
+ # * :template_url [String] URL of file containing the template body.
13
+ # * :disable_rollback [Boolean] Controls rollback on stack creation failure, defaults to false.
14
+ # * :parameters [Hash] Hash of providers to supply to template
15
+ # * :timeout_in_minutes [Integer] Minutes to wait before status is set to CREATE_FAILED
16
+ #
17
+ # @see http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html
18
+
19
+ def create_stack(stack_name, options = {})
20
+ params = {
21
+ :stack_name => stack_name
22
+ }.merge(options)
23
+
24
+ request(
25
+ :path => 'stacks',
26
+ :method => 'POST',
27
+ :body => MultiJson.encode(params)
28
+ )
29
+ end
30
+
31
+ end
32
+
33
+ class Mock
34
+ def create_stack(stack_name, options = {})
35
+ stack_id = Fog::Mock.random_hex(32)
36
+ stack = self.data[:stacks][stack_id] = {
37
+ 'id' => stack_id,
38
+ 'stack_name' => stack_name,
39
+ 'links' => [],
40
+ 'description' => options[:description],
41
+ 'stack_status' => 'CREATE_COMPLETE',
42
+ 'stack_status_reason' => 'Stack successfully created',
43
+ 'creation_time' => Time.now,
44
+ 'updated_time' => Time.now
45
+ }
46
+
47
+ response = Excon::Response.new
48
+ response.status = 202
49
+ response.body = {}
50
+ response
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,36 @@
1
+ module Fog
2
+ module Orchestration
3
+ class OpenStack
4
+ class Real
5
+
6
+ # Delete a stack.
7
+ #
8
+ # @param stack_name [String] Name of the stack to delete.
9
+ # @param stack_id [String] ID of the stack to delete.
10
+ #
11
+ # @return [Excon::Response]
12
+ #
13
+ # @see http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_DeleteStack.html
14
+
15
+ def delete_stack(stack_name, stack_id)
16
+ request(
17
+ :path => "stacks/#{stack_name}/#{stack_id}",
18
+ :method => 'DELETE'
19
+ )
20
+ end
21
+
22
+ end
23
+
24
+ class Mock
25
+ def delete_stack(stack_name, stack_id)
26
+ self.data[:stacks].delete(stack_id)
27
+
28
+ response = Excon::Response.new
29
+ response.status = 202
30
+ response.body = {}
31
+ response
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,48 @@
1
+ module Fog
2
+ module Orchestration
3
+ class OpenStack
4
+ class Real
5
+
6
+ # List stacks.
7
+ #
8
+ # @param options [Hash]
9
+ #
10
+ # @return [Excon::Response]
11
+ # * body [Hash]:
12
+ # * stacks [Array] - Matching stacks
13
+ # * stack [Hash]:
14
+ # * id [String] -
15
+ # * stack_name [String] -
16
+ # * description [String]
17
+ # * links [Array]
18
+ # * stack_status [String] -
19
+ # * stack_status_reason [String]
20
+ # * creation_time [Time] -
21
+ # * updated_time [Time] -
22
+ #
23
+ #
24
+ # @see http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListStacks.html
25
+
26
+ def list_stacks(options = {})
27
+ request(
28
+ :path => 'stacks',
29
+ :method => 'GET',
30
+ :query => options
31
+ )
32
+ end
33
+
34
+ end
35
+
36
+ class Mock
37
+ def list_stacks(options = {})
38
+ stacks = self.data[:stacks].values
39
+
40
+ Excon::Response.new(
41
+ :body => { 'stacks' => stacks },
42
+ :status => 200
43
+ )
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,41 @@
1
+ module Fog
2
+ module Orchestration
3
+ class OpenStack
4
+ class Real
5
+
6
+ # Update a stack.
7
+ #
8
+ # @param [String] stack_name Name of the stack to update.
9
+ # @param [Hash] options
10
+ # * :template_body [String] Structure containing the template body.
11
+ # or (one of the two Template parameters is required)
12
+ # * :template_url [String] URL of file containing the template body.
13
+ # * :parameters [Hash] Hash of providers to supply to template.
14
+ #
15
+ # @see http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html
16
+ #
17
+ def update_stack(stack_name, options = {})
18
+ params = {
19
+ :stack_name => stack_name
20
+ }.merge(options)
21
+
22
+ request(
23
+ :path => 'stacks',
24
+ :method => 'PUT',
25
+ :body => MultiJson.encode(params)
26
+ )
27
+ end
28
+
29
+ end
30
+
31
+ class Mock
32
+ def update_stack(stack_name, options = {})
33
+ response = Excon::Response.new
34
+ response.status = 202
35
+ response.body = {}
36
+ response
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -10,17 +10,17 @@ module Fog
10
10
  # * object<~String> - Name of object to look for
11
11
  #
12
12
  def get_object(container, object, &block)
13
- params = {}
13
+ params = {
14
+ :expects => 200,
15
+ :method => 'GET',
16
+ :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}"
17
+ }
14
18
 
15
19
  if block_given?
16
- params[:response_block] = Proc.new
20
+ params[:response_block] = block
17
21
  end
18
22
 
19
- request(params.merge!({
20
- :expects => 200,
21
- :method => 'GET',
22
- :path => "#{Fog::OpenStack.escape(container)}/#{Fog::OpenStack.escape(object)}"
23
- }), false)
23
+ request(params, false)
24
24
  end
25
25
 
26
26
  end
@@ -140,7 +140,7 @@ module Fog
140
140
  @path = @original_path
141
141
  end
142
142
 
143
- def request(params, parse_json = true, &block)
143
+ def request(params, parse_json = true)
144
144
  begin
145
145
  response = @connection.request(params.merge({
146
146
  :headers => {
@@ -149,7 +149,7 @@ module Fog
149
149
  }.merge!(params[:headers] || {}),
150
150
  :host => @host,
151
151
  :path => "#{@path}/#{params[:path]}",
152
- }), &block)
152
+ }))
153
153
  rescue Excon::Errors::Unauthorized => error
154
154
  if error.response.body != 'Bad username or password' # token expiration
155
155
  @openstack_must_reauthenticate = true
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Orchestration
3
+
4
+ def self.[](provider)
5
+ self.new(:provider => provider)
6
+ end
7
+
8
+ def self.new(attributes)
9
+ attributes = attributes.dup # Prevent delete from having side effects
10
+ provider = attributes.delete(:provider).to_s.downcase.to_sym
11
+
12
+ if self.providers.include?(provider)
13
+ require "fog/#{provider}/network"
14
+ return Fog::Orchestration.const_get(Fog.providers[provider]).new(attributes)
15
+ end
16
+
17
+ raise ArgumentError.new("#{provider} has no orchestration service")
18
+ end
19
+
20
+ def self.providers
21
+ Fog.services[:orchestration]
22
+ end
23
+
24
+ end
25
+ end
data/lib/fog/rackspace.rb CHANGED
@@ -81,6 +81,7 @@ module Fog
81
81
  end
82
82
  end
83
83
 
84
+ service(:auto_scale, 'rackspace/auto_scale', 'AutoScale')
84
85
  service(:block_storage, 'rackspace/block_storage', 'BlockStorage')
85
86
  service(:cdn, 'rackspace/cdn', 'CDN')
86
87
  service(:compute, 'rackspace/compute', 'Compute')
@@ -0,0 +1,132 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'rackspace'))
2
+
3
+ module Fog
4
+ module Rackspace
5
+ class AutoScale < Fog::Service
6
+ include Fog::Rackspace::Errors
7
+
8
+ class ServiceError < Fog::Rackspace::Errors::ServiceError; end
9
+ class InternalServerError < Fog::Rackspace::Errors::InternalServerError; end
10
+
11
+ class BadRequest < Fog::Rackspace::Errors::BadRequest
12
+ attr_reader :validation_errors
13
+
14
+ def self.slurp(error, service=nil)
15
+ if error && error.response
16
+ status_code = error.response.status
17
+ if error.response.body
18
+ body = Fog::JSON.decode(error.response.body)
19
+ message = "#{body['type']} - #{body['message']}"
20
+ details = error.response.body['details']
21
+ end
22
+ end
23
+
24
+ new_error = new(message)
25
+ new_error.set_backtrace(error.backtrace)
26
+ new_error.instance_variable_set(:@validation_errors, details)
27
+ new_error.instance_variable_set(:@status_code, status_code)
28
+ new_error.set_transaction_id(error, service)
29
+ new_error
30
+ end
31
+ end
32
+
33
+ requires :rackspace_username, :rackspace_api_key
34
+ recognizes :rackspace_auth_url
35
+ recognizes :rackspace_region
36
+ recognizes :rackspace_auto_scale_url
37
+
38
+ model_path 'fog/rackspace/models/auto_scale'
39
+ model :group
40
+ collection :groups
41
+ model :group_config
42
+ model :launch_config
43
+
44
+ model :policy
45
+ collection :policies
46
+
47
+ model :webhook
48
+ collection :webhooks
49
+
50
+ request_path 'fog/rackspace/requests/auto_scale'
51
+ request :list_groups
52
+ request :create_group
53
+ request :get_group
54
+ request :delete_group
55
+ request :get_group_state
56
+ request :pause_group_state
57
+ request :resume_group_state
58
+
59
+ request :get_group_config
60
+ request :update_group_config
61
+ request :get_launch_config
62
+ request :update_launch_config
63
+
64
+ request :list_policies
65
+ request :create_policy
66
+ request :get_policy
67
+ request :update_policy
68
+ request :delete_policy
69
+ request :execute_policy
70
+
71
+ request :execute_anonymous_webhook
72
+
73
+ request :get_webhook
74
+ request :list_webhooks
75
+ request :create_webhook
76
+ request :update_webhook
77
+ request :delete_webhook
78
+
79
+ class Mock < Fog::Rackspace::Service
80
+ def initialize(options)
81
+ @rackspace_api_key = options[:rackspace_api_key]
82
+ end
83
+
84
+ def request(params)
85
+ Fog::Mock.not_implemented
86
+ end
87
+ end
88
+
89
+
90
+ class Real < Fog::Rackspace::Service
91
+
92
+ def initialize(options = {})
93
+ @options = options
94
+ @options[:connection_options] ||= {}
95
+ @options[:persistent] ||= false
96
+
97
+ authenticate
98
+
99
+ @connection = Fog::Connection.new(endpoint_uri.to_s, @options[:persistent], @options[:connection_options])
100
+ end
101
+
102
+ def request(params, parse_json = true, &block)
103
+ super(params, parse_json, &block)
104
+ rescue Excon::Errors::NotFound => error
105
+ raise NotFound.slurp(error, self)
106
+ rescue Excon::Errors::BadRequest => error
107
+ raise BadRequest.slurp(error, self)
108
+ rescue Excon::Errors::InternalServerError => error
109
+ raise InternalServerError.slurp(error, self)
110
+ rescue Excon::Errors::HTTPStatusError => error
111
+ raise ServiceError.slurp(error, self)
112
+ end
113
+
114
+ def endpoint_uri(service_endpoint_url=nil)
115
+ @uri = super(@options[:rackspace_auto_scale_url], :rackspace_auto_scale_url)
116
+ end
117
+
118
+ def authenticate(options={})
119
+ super(select_options([:rackspace_username, :rackspace_api_key, :rackspace_auth_url, :connection_options]))
120
+ end
121
+
122
+ def service_name
123
+ :autoscale
124
+ end
125
+
126
+ def region
127
+ @options[:rackspace_region]
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end
@@ -87,8 +87,8 @@ module Fog
87
87
  @connection = Fog::Connection.new(endpoint_uri.to_s, @persistent, @connection_options)
88
88
  end
89
89
 
90
- def request(params, parse_json = true, &block)
91
- super(params, parse_json, &block)
90
+ def request(params, parse_json = true)
91
+ super
92
92
  rescue Excon::Errors::NotFound => error
93
93
  raise NotFound.slurp(error, self)
94
94
  rescue Excon::Errors::BadRequest => error
@@ -13,13 +13,13 @@ module Fog
13
13
  request :post_container
14
14
  request :put_container
15
15
  request :delete_object
16
-
17
-
16
+
17
+
18
18
  module Base
19
- URI_HEADERS = {
19
+ URI_HEADERS = {
20
20
  "X-Cdn-Ios-Uri" => :ios_uri,
21
21
  "X-Cdn-Uri" => :uri,
22
- "X-Cdn-Streaming-Uri" => :streaming_uri,
22
+ "X-Cdn-Streaming-Uri" => :streaming_uri,
23
23
  "X-Cdn-Ssl-Uri" => :ssl_uri
24
24
  }.freeze
25
25
 
@@ -53,7 +53,7 @@ module Fog
53
53
  return {} unless publish
54
54
  urls_from_headers(response.headers)
55
55
  end
56
-
56
+
57
57
  # Returns hash of urls for container
58
58
  # @param [Fog::Storage::Rackspace::Directory] container to retrieve urls for
59
59
  # @return [Hash] hash containing urls for published container
@@ -62,7 +62,7 @@ module Fog
62
62
  # @raise [Fog::Storage::Rackspace::ServiceError]
63
63
  # @note If unable to find container or container is not published this method will return an empty hash.
64
64
  def urls(container)
65
- begin
65
+ begin
66
66
  response = head_container(container.key)
67
67
  return {} unless response.headers['X-Cdn-Enabled'] == 'True'
68
68
  urls_from_headers response.headers
@@ -70,17 +70,17 @@ module Fog
70
70
  {}
71
71
  end
72
72
  end
73
-
73
+
74
74
  private
75
-
75
+
76
76
  def urls_from_headers(headers)
77
77
  h = {}
78
78
  URI_HEADERS.keys.each do | header |
79
- key = URI_HEADERS[header]
79
+ key = URI_HEADERS[header]
80
80
  h[key] = headers[header]
81
81
  end
82
82
  h
83
- end
83
+ end
84
84
  end
85
85
 
86
86
  class Mock < Fog::Rackspace::Service
@@ -103,16 +103,16 @@ module Fog
103
103
  def data
104
104
  self.class.data[@rackspace_username]
105
105
  end
106
-
106
+
107
107
  def purge(object)
108
- return true if object.is_a? Fog::Storage::Rackspace::File
109
- raise Fog::Errors::NotImplemented.new("#{object.class} does not support CDN purging") if object
108
+ return true if object.is_a? Fog::Storage::Rackspace::File
109
+ raise Fog::Errors::NotImplemented.new("#{object.class} does not support CDN purging") if object
110
110
  end
111
111
 
112
112
  def reset_data
113
113
  self.class.data.delete(@rackspace_username)
114
114
  end
115
-
115
+
116
116
  end
117
117
 
118
118
  class Real < Fog::Rackspace::Service
@@ -122,7 +122,7 @@ module Fog
122
122
  # api_key and username missing from instance variable sets
123
123
  @rackspace_api_key = options[:rackspace_api_key]
124
124
  @rackspace_username = options[:rackspace_username]
125
-
125
+
126
126
  @connection_options = options[:connection_options] || {}
127
127
  @rackspace_auth_url = options[:rackspace_auth_url]
128
128
  @rackspace_cdn_url = options[:rackspace_cdn_url]
@@ -147,7 +147,7 @@ module Fog
147
147
  def reload
148
148
  @cdn_connection.reset
149
149
  end
150
-
150
+
151
151
  # Purges File
152
152
  # @param [Fog::Storage::Rackspace::File] file to be purged from the CDN
153
153
  # @raise [Fog::Errors::NotImplemented] returned when non file parameters are specified
@@ -155,13 +155,13 @@ module Fog
155
155
  unless file.is_a? Fog::Storage::Rackspace::File
156
156
  raise Fog::Errors::NotImplemented.new("#{object.class} does not support CDN purging") if object
157
157
  end
158
-
158
+
159
159
  delete_object file.directory.key, file.key
160
160
  true
161
- end
161
+ end
162
162
 
163
- def request(params, parse_json = true, &block)
164
- super(params, parse_json, &block)
163
+ def request(params, parse_json = true)
164
+ super
165
165
  rescue Excon::Errors::NotFound => error
166
166
  raise Fog::Storage::Rackspace::NotFound.slurp(error, self)
167
167
  rescue Excon::Errors::BadRequest => error
@@ -171,9 +171,9 @@ module Fog
171
171
  rescue Excon::Errors::HTTPStatusError => error
172
172
  raise Fog::Storage::Rackspace::ServiceError.slurp(error, self)
173
173
  end
174
-
175
- private
176
-
174
+
175
+ private
176
+
177
177
  def authenticate_v1(options)
178
178
  credentials = Fog::Rackspace.authenticate(options, @connection_options)
179
179
  endpoint_uri credentials['X-CDN-Management-Url']