fog 0.7.2 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (320) hide show
  1. data/README.rdoc +3 -12
  2. data/Rakefile +3 -2
  3. data/benchs/parse_vs_push.rb +17 -8
  4. data/bin/fog +2 -2
  5. data/changelog.txt +123 -0
  6. data/docs/_layouts/default.html +21 -8
  7. data/docs/{_posts/2011-01-01-contributing.markdown → about/contributing.markdown} +0 -0
  8. data/docs/about/getting_started.markdown +83 -0
  9. data/docs/{_posts/2011-01-01-press.markdown → about/press.markdown} +6 -1
  10. data/docs/{_posts/2011-01-01-structure.markdown → about/structure.markdown} +0 -0
  11. data/docs/{_posts/2011-01-01-users.markdown → about/users.markdown} +0 -0
  12. data/docs/{_posts/2011-01-01-cdn.markdown → cdn/index.markdown} +12 -12
  13. data/docs/{_posts/2011-01-01-dns.markdown → dns/index.markdown} +18 -18
  14. data/docs/index.markdown +5 -4
  15. data/docs/{_posts/2011-01-01-storage.markdown → storage/index.markdown} +59 -21
  16. data/fog.gemspec +3 -9
  17. data/lib/fog.rb +1 -1
  18. data/lib/fog/aws/elb.rb +46 -12
  19. data/lib/fog/aws/iam.rb +1 -0
  20. data/lib/fog/aws/models/elb/listener.rb +51 -0
  21. data/lib/fog/aws/models/elb/listeners.rb +32 -0
  22. data/lib/fog/aws/models/elb/load_balancer.rb +129 -0
  23. data/lib/fog/aws/models/elb/load_balancers.rb +28 -0
  24. data/lib/fog/aws/models/elb/policies.rb +40 -0
  25. data/lib/fog/aws/models/elb/policy.rb +52 -0
  26. data/lib/fog/aws/{rds/models → models/rds}/parameter.rb +0 -0
  27. data/lib/fog/aws/{rds/models → models/rds}/parameter_group.rb +0 -0
  28. data/lib/fog/aws/{rds/models → models/rds}/parameter_groups.rb +1 -1
  29. data/lib/fog/aws/{rds/models → models/rds}/parameters.rb +1 -1
  30. data/lib/fog/aws/{rds/models → models/rds}/security_group.rb +0 -0
  31. data/lib/fog/aws/{rds/models → models/rds}/security_groups.rb +1 -1
  32. data/lib/fog/aws/{rds/models → models/rds}/server.rb +0 -0
  33. data/lib/fog/aws/{rds/models → models/rds}/servers.rb +1 -1
  34. data/lib/fog/aws/{rds/models → models/rds}/snapshot.rb +0 -0
  35. data/lib/fog/aws/{rds/models → models/rds}/snapshots.rb +1 -1
  36. data/lib/fog/aws/parsers/cloud_formation/create_stack.rb +1 -1
  37. data/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb +3 -3
  38. data/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb +3 -3
  39. data/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb +6 -6
  40. data/lib/fog/aws/parsers/cloud_formation/get_template.rb +1 -1
  41. data/lib/fog/aws/parsers/cloud_formation/validate_template.rb +5 -5
  42. data/lib/fog/aws/parsers/elb/configure_health_check.rb +37 -0
  43. data/lib/fog/aws/parsers/elb/create_load_balancer.rb +2 -2
  44. data/lib/fog/aws/parsers/elb/delete_load_balancer.rb +1 -1
  45. data/lib/fog/aws/parsers/elb/deregister_instances_from_load_balancer.rb +2 -2
  46. data/lib/fog/aws/parsers/elb/describe_instance_health.rb +2 -2
  47. data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +36 -16
  48. data/lib/fog/aws/parsers/elb/disable_availability_zones_for_load_balancer.rb +2 -2
  49. data/lib/fog/aws/parsers/elb/empty.rb +28 -0
  50. data/lib/fog/aws/parsers/elb/enable_availability_zones_for_load_balancer.rb +2 -2
  51. data/lib/fog/aws/parsers/elb/register_instances_with_load_balancer.rb +2 -2
  52. data/lib/fog/aws/parsers/iam/basic.rb +1 -1
  53. data/lib/fog/aws/parsers/iam/create_access_key.rb +2 -2
  54. data/lib/fog/aws/parsers/iam/create_group.rb +2 -2
  55. data/lib/fog/aws/parsers/iam/create_user.rb +2 -2
  56. data/lib/fog/aws/parsers/iam/get_group.rb +6 -6
  57. data/lib/fog/aws/parsers/iam/get_user.rb +2 -2
  58. data/lib/fog/aws/parsers/iam/get_user_policy.rb +2 -2
  59. data/lib/fog/aws/parsers/iam/list_access_keys.rb +3 -3
  60. data/lib/fog/aws/parsers/iam/list_groups.rb +3 -3
  61. data/lib/fog/aws/parsers/iam/list_groups_for_user.rb +3 -3
  62. data/lib/fog/aws/parsers/iam/list_policies.rb +3 -3
  63. data/lib/fog/aws/parsers/iam/list_server_certificates.rb +38 -0
  64. data/lib/fog/aws/parsers/iam/list_signing_certificates.rb +3 -3
  65. data/lib/fog/aws/parsers/iam/list_users.rb +3 -3
  66. data/lib/fog/aws/parsers/iam/login_profile.rb +3 -3
  67. data/lib/fog/aws/parsers/iam/update_group.rb +2 -2
  68. data/lib/fog/aws/parsers/iam/update_user.rb +2 -2
  69. data/lib/fog/aws/parsers/iam/upload_server_certificate.rb +5 -3
  70. data/lib/fog/aws/parsers/iam/upload_signing_certificate.rb +2 -2
  71. data/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb +1 -1
  72. data/lib/fog/aws/parsers/rds/create_db_instance.rb +1 -1
  73. data/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb +1 -1
  74. data/lib/fog/aws/parsers/rds/create_db_parameter_group.rb +4 -4
  75. data/lib/fog/aws/parsers/rds/create_db_security_group.rb +1 -1
  76. data/lib/fog/aws/parsers/rds/create_db_snapshot.rb +1 -1
  77. data/lib/fog/aws/parsers/rds/db_parser.rb +16 -16
  78. data/lib/fog/aws/parsers/rds/delete_db_instance.rb +1 -1
  79. data/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb +1 -1
  80. data/lib/fog/aws/parsers/rds/delete_db_security_group.rb +1 -1
  81. data/lib/fog/aws/parsers/rds/delete_db_snapshot.rb +1 -1
  82. data/lib/fog/aws/parsers/rds/describe_db_instances.rb +2 -2
  83. data/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb +5 -5
  84. data/lib/fog/aws/parsers/rds/describe_db_parameters.rb +10 -10
  85. data/lib/fog/aws/parsers/rds/describe_db_security_groups.rb +2 -2
  86. data/lib/fog/aws/parsers/rds/describe_db_snapshots.rb +2 -2
  87. data/lib/fog/aws/parsers/rds/modify_db_instance.rb +1 -1
  88. data/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb +2 -2
  89. data/lib/fog/aws/parsers/rds/reboot_db_instance.rb +1 -1
  90. data/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb +1 -1
  91. data/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb +1 -1
  92. data/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb +1 -1
  93. data/lib/fog/aws/parsers/rds/security_group_parser.rb +4 -4
  94. data/lib/fog/aws/parsers/rds/snapshot_parser.rb +11 -11
  95. data/lib/fog/aws/parsers/ses/delete_verified_email_address.rb +1 -1
  96. data/lib/fog/aws/parsers/ses/get_send_quota.rb +2 -2
  97. data/lib/fog/aws/parsers/ses/get_send_statistics.rb +2 -2
  98. data/lib/fog/aws/parsers/ses/list_verified_email_addresses.rb +2 -2
  99. data/lib/fog/aws/parsers/ses/send_email.rb +2 -2
  100. data/lib/fog/aws/parsers/ses/send_raw_email.rb +2 -2
  101. data/lib/fog/aws/parsers/ses/verify_email_address.rb +1 -1
  102. data/lib/fog/aws/parsers/simpledb/basic.rb +2 -2
  103. data/lib/fog/aws/parsers/simpledb/domain_metadata.rb +4 -4
  104. data/lib/fog/aws/parsers/simpledb/get_attributes.rb +4 -4
  105. data/lib/fog/aws/parsers/simpledb/list_domains.rb +3 -3
  106. data/lib/fog/aws/parsers/simpledb/select.rb +5 -5
  107. data/lib/fog/aws/rds.rb +2 -3
  108. data/lib/fog/aws/requests/elb/configure_health_check.rb +41 -0
  109. data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +33 -0
  110. data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +35 -0
  111. data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +51 -0
  112. data/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb +31 -0
  113. data/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb +31 -0
  114. data/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb +43 -0
  115. data/lib/fog/aws/requests/iam/list_server_certificates.rb +42 -0
  116. data/lib/fog/aws/requests/ses/send_raw_email.rb +4 -4
  117. data/lib/fog/aws/simpledb.rb +2 -2
  118. data/lib/fog/bin.rb +1 -0
  119. data/lib/fog/bin/stormondemand.rb +30 -0
  120. data/lib/fog/cdn/parsers/aws/distribution.rb +11 -11
  121. data/lib/fog/cdn/parsers/aws/get_distribution_list.rb +9 -9
  122. data/lib/fog/cdn/parsers/aws/post_invalidation.rb +3 -3
  123. data/lib/fog/compute.rb +3 -0
  124. data/lib/fog/compute/aws.rb +4 -2
  125. data/lib/fog/compute/models/aws/server.rb +16 -2
  126. data/lib/fog/compute/models/bluebox/server.rb +11 -2
  127. data/lib/fog/compute/models/brightbox/server.rb +6 -0
  128. data/lib/fog/compute/models/ecloud/servers.rb +3 -1
  129. data/lib/fog/compute/models/go_grid/server.rb +1 -0
  130. data/lib/fog/compute/models/rackspace/server.rb +2 -1
  131. data/lib/fog/compute/models/slicehost/server.rb +2 -1
  132. data/lib/fog/compute/models/storm_on_demand/balancer.rb +38 -0
  133. data/lib/fog/compute/models/storm_on_demand/balancers.rb +21 -0
  134. data/lib/fog/compute/models/storm_on_demand/config.rb +25 -0
  135. data/lib/fog/compute/models/storm_on_demand/configs.rb +22 -0
  136. data/lib/fog/compute/models/storm_on_demand/image.rb +20 -0
  137. data/lib/fog/compute/models/storm_on_demand/images.rb +21 -0
  138. data/lib/fog/compute/models/storm_on_demand/private_ip.rb +19 -0
  139. data/lib/fog/compute/models/storm_on_demand/private_ips.rb +31 -0
  140. data/lib/fog/compute/models/storm_on_demand/server.rb +74 -0
  141. data/lib/fog/compute/models/storm_on_demand/servers.rb +26 -0
  142. data/lib/fog/compute/models/storm_on_demand/stat.rb +23 -0
  143. data/lib/fog/compute/models/storm_on_demand/stats.rb +22 -0
  144. data/lib/fog/compute/models/storm_on_demand/template.rb +22 -0
  145. data/lib/fog/compute/models/storm_on_demand/templates.rb +21 -0
  146. data/lib/fog/compute/models/voxel/image.rb +4 -1
  147. data/lib/fog/compute/models/voxel/server.rb +1 -0
  148. data/lib/fog/compute/parsers/aws/allocate_address.rb +1 -1
  149. data/lib/fog/compute/parsers/aws/attach_volume.rb +2 -2
  150. data/lib/fog/compute/parsers/aws/basic.rb +2 -2
  151. data/lib/fog/compute/parsers/aws/create_image.rb +1 -1
  152. data/lib/fog/compute/parsers/aws/create_key_pair.rb +1 -1
  153. data/lib/fog/compute/parsers/aws/create_snapshot.rb +4 -4
  154. data/lib/fog/compute/parsers/aws/create_volume.rb +3 -3
  155. data/lib/fog/compute/parsers/aws/deregister_image.rb +1 -1
  156. data/lib/fog/compute/parsers/aws/describe_addresses.rb +2 -2
  157. data/lib/fog/compute/parsers/aws/describe_availability_zones.rb +3 -3
  158. data/lib/fog/compute/parsers/aws/describe_images.rb +7 -7
  159. data/lib/fog/compute/parsers/aws/describe_instances.rb +17 -17
  160. data/lib/fog/compute/parsers/aws/describe_key_pairs.rb +2 -2
  161. data/lib/fog/compute/parsers/aws/describe_regions.rb +2 -2
  162. data/lib/fog/compute/parsers/aws/describe_reserved_instances.rb +5 -5
  163. data/lib/fog/compute/parsers/aws/describe_reserved_instances_offerings.rb +4 -4
  164. data/lib/fog/compute/parsers/aws/describe_security_groups.rb +8 -8
  165. data/lib/fog/compute/parsers/aws/describe_snapshots.rb +5 -5
  166. data/lib/fog/compute/parsers/aws/describe_tags.rb +2 -2
  167. data/lib/fog/compute/parsers/aws/describe_volumes.rb +8 -8
  168. data/lib/fog/compute/parsers/aws/detach_volume.rb +2 -2
  169. data/lib/fog/compute/parsers/aws/get_console_output.rb +3 -7
  170. data/lib/fog/compute/parsers/aws/import_key_pair.rb +1 -1
  171. data/lib/fog/compute/parsers/aws/monitor_unmonitor_instances.rb +3 -3
  172. data/lib/fog/compute/parsers/aws/register_image.rb +1 -1
  173. data/lib/fog/compute/parsers/aws/run_instances.rb +14 -22
  174. data/lib/fog/compute/parsers/aws/start_stop_instances.rb +3 -3
  175. data/lib/fog/compute/parsers/aws/terminate_instances.rb +6 -6
  176. data/lib/fog/compute/parsers/slicehost/create_slice.rb +4 -4
  177. data/lib/fog/compute/parsers/slicehost/get_backups.rb +3 -3
  178. data/lib/fog/compute/parsers/slicehost/get_flavor.rb +2 -2
  179. data/lib/fog/compute/parsers/slicehost/get_flavors.rb +2 -2
  180. data/lib/fog/compute/parsers/slicehost/get_image.rb +2 -2
  181. data/lib/fog/compute/parsers/slicehost/get_images.rb +2 -2
  182. data/lib/fog/compute/parsers/slicehost/get_slice.rb +4 -4
  183. data/lib/fog/compute/parsers/slicehost/get_slices.rb +4 -4
  184. data/lib/fog/compute/parsers/voxel/devices_list.rb +12 -12
  185. data/lib/fog/compute/parsers/voxel/images_list.rb +5 -5
  186. data/lib/fog/compute/parsers/voxel/voxcloud_create.rb +2 -2
  187. data/lib/fog/compute/parsers/voxel/voxcloud_status.rb +2 -2
  188. data/lib/fog/compute/requests/aws/describe_availability_zones.rb +17 -1
  189. data/lib/fog/compute/requests/aws/describe_instances.rb +6 -1
  190. data/lib/fog/compute/requests/storm_on_demand/add_balancer_node.rb +16 -0
  191. data/lib/fog/compute/requests/storm_on_demand/clone_server.rb +16 -0
  192. data/lib/fog/compute/requests/storm_on_demand/create_server.rb +16 -0
  193. data/lib/fog/compute/requests/storm_on_demand/delete_server.rb +16 -0
  194. data/lib/fog/compute/requests/storm_on_demand/get_server.rb +16 -0
  195. data/lib/fog/compute/requests/storm_on_demand/get_stats.rb +16 -0
  196. data/lib/fog/compute/requests/storm_on_demand/list_balancers.rb +16 -0
  197. data/lib/fog/compute/requests/storm_on_demand/list_configs.rb +16 -0
  198. data/lib/fog/compute/requests/storm_on_demand/list_images.rb +16 -0
  199. data/lib/fog/compute/requests/storm_on_demand/list_private_ips.rb +16 -0
  200. data/lib/fog/compute/requests/storm_on_demand/list_servers.rb +16 -0
  201. data/lib/fog/compute/requests/storm_on_demand/list_templates.rb +16 -0
  202. data/lib/fog/compute/requests/storm_on_demand/reboot_server.rb +16 -0
  203. data/lib/fog/compute/requests/storm_on_demand/remove_balancer_node.rb +16 -0
  204. data/lib/fog/compute/requests/storm_on_demand/resize_server.rb +16 -0
  205. data/lib/fog/compute/requests/voxel/images_list.rb +3 -3
  206. data/lib/fog/compute/storm_on_demand.rb +122 -0
  207. data/lib/fog/core/attributes.rb +12 -0
  208. data/lib/fog/core/credentials.rb +1 -52
  209. data/lib/fog/core/errors.rb +53 -0
  210. data/lib/fog/core/model.rb +10 -5
  211. data/lib/fog/core/parser.rb +8 -3
  212. data/lib/fog/dns/models/aws/records.rb +1 -1
  213. data/lib/fog/dns/models/aws/zones.rb +1 -1
  214. data/lib/fog/dns/parsers/aws/change_resource_record_sets.rb +2 -2
  215. data/lib/fog/dns/parsers/aws/create_hosted_zone.rb +5 -5
  216. data/lib/fog/dns/parsers/aws/delete_hosted_zone.rb +1 -1
  217. data/lib/fog/dns/parsers/aws/get_change.rb +2 -2
  218. data/lib/fog/dns/parsers/aws/get_hosted_zone.rb +3 -3
  219. data/lib/fog/dns/parsers/aws/list_hosted_zones.rb +4 -4
  220. data/lib/fog/dns/parsers/aws/list_resource_record_sets.rb +4 -4
  221. data/lib/fog/dns/parsers/bluebox/create_record.rb +2 -2
  222. data/lib/fog/dns/parsers/bluebox/create_zone.rb +2 -2
  223. data/lib/fog/dns/parsers/bluebox/get_record.rb +1 -1
  224. data/lib/fog/dns/parsers/bluebox/get_records.rb +1 -1
  225. data/lib/fog/dns/parsers/bluebox/get_zone.rb +2 -2
  226. data/lib/fog/dns/parsers/bluebox/get_zones.rb +2 -2
  227. data/lib/fog/dns/parsers/slicehost/create_record.rb +2 -2
  228. data/lib/fog/dns/parsers/slicehost/create_zone.rb +2 -2
  229. data/lib/fog/dns/parsers/slicehost/get_record.rb +2 -2
  230. data/lib/fog/dns/parsers/slicehost/get_records.rb +2 -2
  231. data/lib/fog/dns/parsers/slicehost/get_zone.rb +2 -2
  232. data/lib/fog/dns/parsers/slicehost/get_zones.rb +2 -2
  233. data/lib/fog/dns/parsers/zerigo/count_hosts.rb +1 -1
  234. data/lib/fog/dns/parsers/zerigo/count_zones.rb +1 -1
  235. data/lib/fog/dns/parsers/zerigo/create_host.rb +2 -2
  236. data/lib/fog/dns/parsers/zerigo/create_zone.rb +2 -2
  237. data/lib/fog/dns/parsers/zerigo/find_hosts.rb +2 -2
  238. data/lib/fog/dns/parsers/zerigo/get_host.rb +2 -2
  239. data/lib/fog/dns/parsers/zerigo/get_zone.rb +4 -4
  240. data/lib/fog/dns/parsers/zerigo/get_zone_stats.rb +2 -2
  241. data/lib/fog/dns/parsers/zerigo/list_hosts.rb +2 -2
  242. data/lib/fog/dns/parsers/zerigo/list_zones.rb +2 -2
  243. data/lib/fog/providers.rb +1 -0
  244. data/lib/fog/providers/aws.rb +5 -1
  245. data/lib/fog/providers/storm_on_demand.rb +12 -0
  246. data/lib/fog/storage/models/aws/files.rb +17 -0
  247. data/lib/fog/storage/models/google/files.rb +17 -0
  248. data/lib/fog/storage/models/rackspace/files.rb +17 -0
  249. data/lib/fog/storage/parsers/aws/access_control_list.rb +4 -4
  250. data/lib/fog/storage/parsers/aws/complete_multipart_upload.rb +1 -1
  251. data/lib/fog/storage/parsers/aws/copy_object.rb +2 -2
  252. data/lib/fog/storage/parsers/aws/get_bucket.rb +10 -10
  253. data/lib/fog/storage/parsers/aws/get_bucket_location.rb +1 -1
  254. data/lib/fog/storage/parsers/aws/get_bucket_logging.rb +5 -5
  255. data/lib/fog/storage/parsers/aws/get_bucket_object_versions.rb +8 -8
  256. data/lib/fog/storage/parsers/aws/get_bucket_versioning.rb +1 -1
  257. data/lib/fog/storage/parsers/aws/get_bucket_website.rb +2 -2
  258. data/lib/fog/storage/parsers/aws/get_request_payment.rb +1 -1
  259. data/lib/fog/storage/parsers/aws/get_service.rb +3 -3
  260. data/lib/fog/storage/parsers/aws/initiate_multipart_upload.rb +1 -1
  261. data/lib/fog/storage/parsers/aws/list_multipart_uploads.rb +7 -7
  262. data/lib/fog/storage/parsers/aws/list_parts.rb +7 -7
  263. data/lib/fog/storage/parsers/google/access_control_list.rb +3 -3
  264. data/lib/fog/storage/parsers/google/copy_object.rb +2 -2
  265. data/lib/fog/storage/parsers/google/get_bucket.rb +10 -10
  266. data/lib/fog/storage/parsers/google/get_bucket_logging.rb +5 -5
  267. data/lib/fog/storage/parsers/google/get_bucket_object_versions.rb +9 -9
  268. data/lib/fog/storage/parsers/google/get_bucket_versioning.rb +1 -1
  269. data/lib/fog/storage/parsers/google/get_request_payment.rb +1 -1
  270. data/lib/fog/storage/parsers/google/get_service.rb +3 -3
  271. data/lib/fog/storage/requests/aws/get_object.rb +1 -1
  272. data/lib/fog/terremark/parsers/shared/get_catalog.rb +1 -1
  273. data/lib/fog/terremark/parsers/shared/get_catalog_item.rb +1 -1
  274. data/lib/fog/terremark/parsers/shared/get_internet_services.rb +7 -7
  275. data/lib/fog/terremark/parsers/shared/get_network_ips.rb +1 -1
  276. data/lib/fog/terremark/parsers/shared/get_node_services.rb +3 -3
  277. data/lib/fog/terremark/parsers/shared/get_organization.rb +1 -1
  278. data/lib/fog/terremark/parsers/shared/get_public_ips.rb +2 -2
  279. data/lib/fog/terremark/parsers/shared/get_vapp_template.rb +1 -1
  280. data/lib/fog/terremark/parsers/shared/get_vdc.rb +6 -6
  281. data/lib/fog/terremark/parsers/shared/internet_service.rb +7 -7
  282. data/lib/fog/terremark/parsers/shared/network.rb +1 -1
  283. data/lib/fog/terremark/parsers/shared/node_service.rb +3 -3
  284. data/lib/fog/terremark/parsers/shared/public_ip.rb +2 -2
  285. data/lib/fog/terremark/parsers/shared/vapp.rb +7 -7
  286. data/spec/ecloud/spec_helper.rb +1 -1
  287. data/tests/aws/requests/cloud_formation/stack_tests.rb +2 -0
  288. data/tests/aws/requests/elb/helper.rb +44 -0
  289. data/tests/aws/requests/elb/load_balancer_tests.rb +82 -0
  290. data/tests/aws/requests/elb/model_tests.rb +187 -0
  291. data/tests/aws/requests/iam/helper.rb +41 -0
  292. data/tests/aws/requests/iam/login_profile_tests.rb +1 -1
  293. data/tests/aws/requests/iam/server_certificate_tests.rb +36 -0
  294. data/tests/aws/requests/rds/instance_tests.rb +63 -66
  295. data/tests/aws/requests/simpledb/attributes_tests.rb +4 -4
  296. data/tests/aws/signed_params_tests.rb +3 -0
  297. data/tests/compute/helper.rb +2 -2
  298. data/tests/compute/models/aws/address_tests.rb +2 -2
  299. data/tests/compute/models/aws/security_group_tests.rb +12 -0
  300. data/tests/compute/models/aws/server_tests.rb +8 -1
  301. data/tests/compute/models/aws/snapshot_tests.rb +2 -2
  302. data/tests/compute/models/aws/volume_tests.rb +3 -3
  303. data/tests/compute/requests/aws/address_tests.rb +1 -1
  304. data/tests/compute/requests/aws/instance_tests.rb +1 -1
  305. data/tests/compute/requests/aws/key_pair_tests.rb +5 -1
  306. data/tests/compute/requests/aws/snapshot_tests.rb +1 -1
  307. data/tests/compute/requests/aws/tag_tests.rb +1 -1
  308. data/tests/compute/requests/aws/volume_tests.rb +3 -3
  309. data/tests/compute/requests/bluebox/block_tests.rb +14 -13
  310. data/tests/compute/requests/brightbox/helper.rb +1 -2
  311. data/tests/compute/requests/storm_on_demand/server_tests.rb +64 -0
  312. data/tests/compute/requests/voxel/image_tests.rb +30 -24
  313. data/tests/compute/requests/voxel/server_tests.rb +1 -1
  314. data/tests/dns/requests/aws/dns_tests.rb +1 -1
  315. data/tests/helper.rb +1 -1
  316. data/tests/storage/requests/aws/multipart_upload_tests.rb +1 -1
  317. data/tests/storage/requests/google/bucket_tests.rb +0 -1
  318. data/tests/storage/requests/rackspace/object_tests.rb +1 -0
  319. metadata +125 -66
  320. data/docs/_posts/2011-01-01-start.markdown +0 -21
@@ -23,13 +23,13 @@ module Fog
23
23
 
24
24
  def end_element(name)
25
25
  case name
26
- when 'DBSecurityGroupDescription' then @security_group['DBSecurityGroupDescription'] = @value
27
- when 'DBSecurityGroupName' then @security_group['DBSecurityGroupName'] = @value
28
- when 'OwnerId' then @security_group['OwnerId'] = @value
26
+ when 'DBSecurityGroupDescription' then @security_group['DBSecurityGroupDescription'] = value
27
+ when 'DBSecurityGroupName' then @security_group['DBSecurityGroupName'] = value
28
+ when 'OwnerId' then @security_group['OwnerId'] = value
29
29
  when 'EC2SecurityGroup', 'IPRange'
30
30
  @security_group["#{name}s"] << @ingress unless @ingress.empty?
31
31
  when 'EC2SecurityGroupName', 'EC2SecurityGroupOwnerId', 'CIDRIP', 'Status'
32
- @ingress[name] = @value
32
+ @ingress[name] = value
33
33
  end
34
34
  end
35
35
  end
@@ -20,17 +20,17 @@ module Fog
20
20
 
21
21
  def end_element(name)
22
22
  case name
23
- when 'AllocatedStorage' then @db_snapshot['AllocatedStorage'] = @value.to_i
24
- when 'AvailabilityZone' then @db_snapshot['AvailabilityZone'] = @value
25
- when 'DBInstanceIdentifier' then @db_snapshot['DBInstanceIdentifier'] = @value
26
- when 'DBSnapshotIdentifier' then @db_snapshot['DBSnapshotIdentifier'] = @value
27
- when 'Engine' then @db_snapshot['Engine'] = @value
28
- when 'EngineVersion' then @db_snapshot['EngineVersion'] = @value
29
- when 'InstanceCreateTime' then @db_snapshot['InstanceCreateTime'] = Time.parse @value
30
- when 'MasterUsername' then @db_snapshot['MasterUsername'] = @value
31
- when 'Port' then @db_snapshot['Port'] = @value.to_i
32
- when 'SnapshotCreateTime' then @db_snapshot['SnapshotCreateTime'] = Time.parse @value
33
- when 'Status' then @db_snapshot['Status'] = @value
23
+ when 'AllocatedStorage' then @db_snapshot['AllocatedStorage'] = value.to_i
24
+ when 'AvailabilityZone' then @db_snapshot['AvailabilityZone'] = value
25
+ when 'DBInstanceIdentifier' then @db_snapshot['DBInstanceIdentifier'] = value
26
+ when 'DBSnapshotIdentifier' then @db_snapshot['DBSnapshotIdentifier'] = value
27
+ when 'Engine' then @db_snapshot['Engine'] = value
28
+ when 'EngineVersion' then @db_snapshot['EngineVersion'] = value
29
+ when 'InstanceCreateTime' then @db_snapshot['InstanceCreateTime'] = Time.parse value
30
+ when 'MasterUsername' then @db_snapshot['MasterUsername'] = value
31
+ when 'Port' then @db_snapshot['Port'] = value.to_i
32
+ when 'SnapshotCreateTime' then @db_snapshot['SnapshotCreateTime'] = Time.parse value
33
+ when 'Status' then @db_snapshot['Status'] = value
34
34
  end
35
35
  end
36
36
  end
@@ -12,7 +12,7 @@ module Fog
12
12
  def end_element(name)
13
13
  case name
14
14
  when 'RequestId'
15
- @response['ResponseMetadata'][name] = @value
15
+ @response['ResponseMetadata'][name] = value
16
16
  end
17
17
  end
18
18
 
@@ -12,9 +12,9 @@ module Fog
12
12
  def end_element(name)
13
13
  case name
14
14
  when "Max24HourSend", "MaxSendRate", "SentLast24Hours"
15
- @response[name] = @value
15
+ @response[name] = value
16
16
  when 'RequestId'
17
- @response['ResponseMetadata'][name] = @value
17
+ @response['ResponseMetadata'][name] = value
18
18
  end
19
19
  end
20
20
 
@@ -13,12 +13,12 @@ module Fog
13
13
  def end_element(name)
14
14
  case name
15
15
  when "Bounces", "Complaints", "DeliveryAttempts", "Rejects", "Timestamp"
16
- @send_data_point[name] = @value
16
+ @send_data_point[name] = value
17
17
  when 'member'
18
18
  @response['SendDataPoints'] << @send_data_point
19
19
  @send_data_point = {}
20
20
  when 'RequestId'
21
- @response['ResponseMetadata'][name] = @value
21
+ @response['ResponseMetadata'][name] = value
22
22
  end
23
23
  end
24
24
  end
@@ -12,9 +12,9 @@ module Fog
12
12
  def end_element(name)
13
13
  case name
14
14
  when 'member'
15
- @response['VerifiedEmailAddresses'] << @value
15
+ @response['VerifiedEmailAddresses'] << value
16
16
  when 'RequestId'
17
- @response['ResponseMetadata'][name] = @value
17
+ @response['ResponseMetadata'][name] = value
18
18
  end
19
19
  end
20
20
  end
@@ -12,9 +12,9 @@ module Fog
12
12
  def end_element(name)
13
13
  case name
14
14
  when 'MessageId'
15
- @response[name] = @value
15
+ @response[name] = value
16
16
  when 'RequestId'
17
- @response['ResponseMetadata'][name] = @value
17
+ @response['ResponseMetadata'][name] = value
18
18
  end
19
19
  end
20
20
 
@@ -12,9 +12,9 @@ module Fog
12
12
  def end_element(name)
13
13
  case name
14
14
  when 'MessageId'
15
- @response[name] = @value
15
+ @response[name] = value
16
16
  when 'RequestId'
17
- @response['ResponseMetadata'][name] = @value
17
+ @response['ResponseMetadata'][name] = value
18
18
  end
19
19
  end
20
20
 
@@ -12,7 +12,7 @@ module Fog
12
12
  def end_element(name)
13
13
  case name
14
14
  when 'RequestId'
15
- @response['ResponseMetadata'][name] = @value
15
+ @response['ResponseMetadata'][name] = value
16
16
  end
17
17
  end
18
18
 
@@ -13,9 +13,9 @@ module Fog
13
13
  def end_element(name)
14
14
  case(name)
15
15
  when 'BoxUsage'
16
- response[name] = @value.to_f
16
+ response[name] = value.to_f
17
17
  when 'RequestId'
18
- response[name] = @value
18
+ response[name] = value
19
19
  end
20
20
  end
21
21
 
@@ -14,13 +14,13 @@ module Fog
14
14
  def end_element(name)
15
15
  case name
16
16
  when 'AttributeNameCount', 'AttributeNamesSizeBytes', 'AttributeValueCount', 'AttributeValuesSizeBytes', 'ItemCount', 'ItemNamesSizeBytes'
17
- response[name] = @value.to_i
17
+ response[name] = value.to_i
18
18
  when 'BoxUsage'
19
- response[name] = @value.to_f
19
+ response[name] = value.to_f
20
20
  when 'RequestId'
21
- response[name] = @value
21
+ response[name] = value
22
22
  when 'Timestamp'
23
- response[name] = Time.at(@value.to_i)
23
+ response[name] = Time.at(value.to_i)
24
24
  end
25
25
  end
26
26
 
@@ -17,14 +17,14 @@ module Fog
17
17
  when 'Attribute'
18
18
  @attribute = nil
19
19
  when 'BoxUsage'
20
- response[name] = @value.to_f
20
+ response[name] = value.to_f
21
21
  when 'Name'
22
- @attribute = @value
22
+ @attribute = value
23
23
  response['Attributes'][@attribute] ||= []
24
24
  when 'RequestId'
25
- response[name] = @value
25
+ response[name] = value
26
26
  when 'Value'
27
- response['Attributes'][@attribute] << sdb_decode(@value)
27
+ response['Attributes'][@attribute] << sdb_decode(value)
28
28
  end
29
29
  end
30
30
 
@@ -14,11 +14,11 @@ module Fog
14
14
  def end_element(name)
15
15
  case(name)
16
16
  when 'BoxUsage'
17
- response[name] = @value.to_f
17
+ response[name] = value.to_f
18
18
  when 'DomainName'
19
- response['Domains'] << @value
19
+ response['Domains'] << value
20
20
  when 'NextToken', 'RequestId'
21
- response[name] = @value
21
+ response[name] = value
22
22
  end
23
23
  end
24
24
 
@@ -15,21 +15,21 @@ module Fog
15
15
  def end_element(name)
16
16
  case name
17
17
  when 'BoxUsage'
18
- response[name] = @value.to_f
18
+ response[name] = value.to_f
19
19
  when 'Item'
20
20
  @item_name = @attribute_name = nil
21
21
  when 'Name'
22
22
  if @item_name.nil?
23
- @item_name = @value
23
+ @item_name = value
24
24
  response['Items'][@item_name] = {}
25
25
  else
26
- @attribute_name = @value
26
+ @attribute_name = value
27
27
  response['Items'][@item_name][@attribute_name] ||= []
28
28
  end
29
29
  when 'NextToken', 'RequestId'
30
- response[name] = @value
30
+ response[name] = value
31
31
  when 'Value'
32
- response['Items'][@item_name][@attribute_name] << sdb_decode(@value)
32
+ response['Items'][@item_name][@attribute_name] << sdb_decode(value)
33
33
  end
34
34
  end
35
35
 
data/lib/fog/aws/rds.rb CHANGED
@@ -2,7 +2,6 @@ module Fog
2
2
  module AWS
3
3
  class RDS < Fog::Service
4
4
 
5
- class NotFound < Fog::Errors::Error; end
6
5
  class IdentifierTaken < Fog::Errors::Error; end
7
6
 
8
7
  requires :aws_access_key_id, :aws_secret_access_key
@@ -38,7 +37,7 @@ module Fog
38
37
  request :restore_db_instance_from_db_snapshot
39
38
  request :restore_db_instance_to_point_in_time
40
39
 
41
- model_path 'fog/aws/rds/models'
40
+ model_path 'fog/aws/models/rds'
42
41
  model :server
43
42
  collection :servers
44
43
  model :snapshot
@@ -140,7 +139,7 @@ module Fog
140
139
  rescue Excon::Errors::HTTPStatusError => error
141
140
  if match = error.message.match(/<Code>(.*)<\/Code>[\s\\\w]+<Message>(.*)<\/Message>/m)
142
141
  case match[1].split('.').last
143
- when 'DBInstanceNotFound', 'DBParameterGroupNotFound', 'DBSnapshotNotFound'
142
+ when 'DBInstanceNotFound', 'DBParameterGroupNotFound', 'DBSnapshotNotFound', 'DBSecurityGroupNotFound'
144
143
  raise Fog::AWS::RDS::NotFound.slurp(error, match[2])
145
144
  when 'DBParameterGroupAlreadyExists'
146
145
  raise Fog::AWS::RDS::IdentifierTaken.slurp(error, match[2])
@@ -0,0 +1,41 @@
1
+ module Fog
2
+ module AWS
3
+ class ELB
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elb/configure_health_check'
7
+
8
+ # Enables the client to define an application healthcheck for the instances.
9
+ # See http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference/index.html?API_ConfigureHealthCheck.html
10
+ #
11
+ # ==== Parameters
12
+ # * lb_name<~String> - Name of the ELB
13
+ # * health_check<~Hash> - A hash of parameters describing the health check
14
+ # * 'HealthyThreshold'<~Integer> - Specifies the number of consecutive
15
+ # health probe successes required before moving the instance to the Healthy state.
16
+ # * 'Interval'<~Integer> - Specifies the approximate interval, in seconds,
17
+ # between health checks of an individual instance.
18
+ # * 'Target'<~String> - Specifies the instance being checked.
19
+ # The protocol is either TCP or HTTP. The range of valid ports is one (1) through 65535.
20
+ # * 'Timeout'<~Integer> - Specifies the amount of time, in seconds,
21
+ # during which no response means a failed health probe.
22
+ # * 'UnhealthyThreshold'<~Integer> - Specifies the number of consecutive
23
+ # health probe failures required before moving the instance to the Unhealthy state.
24
+ #
25
+ # ==== Returns
26
+ # * response<~Excon::Response>:
27
+ # * body<~Hash>:
28
+ def configure_health_check(lb_name, health_check)
29
+ params = {'LoadBalancerName' => lb_name}
30
+ health_check.each {|key, value| params["HealthCheck.#{key}"] = value }
31
+
32
+ request({
33
+ 'Action' => 'ConfigureHealthCheck',
34
+ :parser => Fog::Parsers::AWS::ELB::ConfigureHealthCheck.new
35
+ }.merge!(params))
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,33 @@
1
+ module Fog
2
+ module AWS
3
+ class ELB
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elb/empty'
7
+
8
+ # Create an app cookie stickiness policy
9
+ #
10
+ # ==== Parameters
11
+ # * lb_name<~String> - Name of the ELB
12
+ # * policy_name<~String> - The name of the policy being created.
13
+ # The name must be unique within the set of policies for this Load Balancer.
14
+ # * cookie_name<~String> - Name of the application cookie used for stickiness.
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * 'ResponseMetadata'<~Hash>:
19
+ # * 'RequestId'<~String> - Id of request
20
+ def create_app_cookie_stickiness_policy(lb_name, policy_name, cookie_name)
21
+ params = {'CookieName' => cookie_name, 'PolicyName' => policy_name}
22
+
23
+ request({
24
+ 'Action' => 'CreateAppCookieStickinessPolicy',
25
+ 'LoadBalancerName' => lb_name,
26
+ :parser => Fog::Parsers::AWS::ELB::Empty.new
27
+ }.merge!(params))
28
+ end
29
+
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,35 @@
1
+ module Fog
2
+ module AWS
3
+ class ELB
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elb/empty'
7
+
8
+ # Create a Load Balancer Cookie Stickiness Policy
9
+ #
10
+ # ==== Parameters
11
+ # * lb_name<~String> - Name of the ELB
12
+ # * policy_name<~String> - The name of the policy being created. The name
13
+ # must be unique within the set of policies for this Load Balancer.
14
+ # * cookie_expiration_period<~Integer> - The time period in seconds after
15
+ # which the cookie should be considered stale. Not specifying this
16
+ # parameter indicates that the sticky session will last for the duration of the browser session.
17
+ # ==== Returns
18
+ # * response<~Excon::Response>:
19
+ # * body<~Hash>:
20
+ # * 'ResponseMetadata'<~Hash>:
21
+ # * 'RequestId'<~String> - Id of request
22
+ def create_lb_cookie_stickiness_policy(lb_name, policy_name, cookie_expiration_period=nil)
23
+ params = {'PolicyName' => policy_name, 'CookieExpirationPeriod' => cookie_expiration_period}
24
+
25
+ request({
26
+ 'Action' => 'CreateLBCookieStickinessPolicy',
27
+ 'LoadBalancerName' => lb_name,
28
+ :parser => Fog::Parsers::AWS::ELB::Empty.new
29
+ }.merge!(params))
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,51 @@
1
+ module Fog
2
+ module AWS
3
+ class ELB
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elb/empty'
7
+
8
+ # Create Elastic Load Balancer Listeners
9
+ #
10
+ # ==== Parameters
11
+ # * lb_name<~String> - Name for the new ELB -- must be unique
12
+ # * listeners<~Array> - Array of Hashes describing ELB listeners to add to the ELB
13
+ # * 'Protocol'<~String> - Protocol to use. Either HTTP or TCP.
14
+ # * 'LoadBalancerPort'<~Integer> - The port that the ELB will listen to for outside traffic
15
+ # * 'InstancePort'<~Integer> - The port on the instance that the ELB will forward traffic to
16
+ # * 'SSLCertificateId'<~String> - ARN of the server certificate
17
+ # ==== Returns
18
+ # * response<~Excon::Response>:
19
+ # * body<~Hash>:
20
+ # * 'ResponseMetadata'<~Hash>:
21
+ # * 'RequestId'<~String> - Id of request
22
+ def create_load_balancer_listeners(lb_name, listeners)
23
+ params = {}
24
+
25
+ listener_protocol = []
26
+ listener_lb_port = []
27
+ listener_instance_port = []
28
+ listener_ssl_certificate_id = []
29
+ listeners.each do |listener|
30
+ listener_protocol.push(listener['Protocol'])
31
+ listener_lb_port.push(listener['LoadBalancerPort'])
32
+ listener_instance_port.push(listener['InstancePort'])
33
+ listener_ssl_certificate_id.push(listener['SSLCertificateId'])
34
+ end
35
+
36
+ params.merge!(AWS.indexed_param('Listeners.member.%d.Protocol', listener_protocol))
37
+ params.merge!(AWS.indexed_param('Listeners.member.%d.LoadBalancerPort', listener_lb_port))
38
+ params.merge!(AWS.indexed_param('Listeners.member.%d.InstancePort', listener_instance_port))
39
+ params.merge!(AWS.indexed_param('Listeners.member.%d.SSLCertificateId', listener_ssl_certificate_id))
40
+
41
+ request({
42
+ 'Action' => 'CreateLoadBalancerListeners',
43
+ 'LoadBalancerName' => lb_name,
44
+ :parser => Fog::Parsers::AWS::ELB::Empty.new
45
+ }.merge!(params))
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module AWS
3
+ class ELB
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elb/empty'
7
+
8
+ # Delet Elastic Load Balancer Listeners
9
+ #
10
+ # ==== Parameters
11
+ # * lb_name<~String> - Name for the new ELB -- must be unique
12
+ # * load_balancer_ports<~Array> - Array of client port numbers of the LoadBalancerListeners to remove
13
+ # ==== Returns
14
+ # * response<~Excon::Response>:
15
+ # * body<~Hash>:
16
+ # * 'ResponseMetadata'<~Hash>:
17
+ # * 'RequestId'<~String> - Id of request
18
+ def delete_load_balancer_listeners(lb_name, load_balancer_ports)
19
+ params = AWS.indexed_param('LoadBalancerPorts.memeber.%d', load_balancer_ports)
20
+
21
+ request({
22
+ 'Action' => 'DeleteLoadBalancerListeners',
23
+ 'LoadBalancerName' => lb_name,
24
+ :parser => Fog::Parsers::AWS::ELB::Empty.new
25
+ }.merge!(params))
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end