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
@@ -0,0 +1,129 @@
1
+ require 'fog/core/model'
2
+ module Fog
3
+ module AWS
4
+ class ELB
5
+
6
+ class LoadBalancer < Fog::Model
7
+
8
+ identity :id, :aliases => 'LoadBalancerName'
9
+ attribute :created_at, :aliases => 'CreatedTime'
10
+ attribute :health_check, :aliases => 'HealthCheck'
11
+ attribute :dns_name, :aliases => 'DNSName'
12
+ attribute :availability_zones, :aliases => 'AvailabilityZones'
13
+ attribute :instances, :aliases => 'Instances'
14
+
15
+ def initialize(attributes={})
16
+ attributes[:availability_zones] ||= %w(us-east-1a us-east-1b us-east-1c us-east-1d)
17
+ attributes['ListenerDescriptions'] ||= [{
18
+ 'Listener' => {'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'http'},
19
+ 'PolicyNames' => []
20
+ }]
21
+ attributes['Policies'] ||= {'AppCookieStickinessPolicies' => [], 'LBCookieStickinessPolicies' => []}
22
+ super
23
+ end
24
+
25
+ def register_instances(instances)
26
+ requires :id
27
+ data = connection.register_instances_with_load_balancer(instances, id).body['RegisterInstancesWithLoadBalancerResult']
28
+ data['Instances'].map!{|h| h['InstanceId']}
29
+ merge_attributes(data)
30
+ end
31
+
32
+ def deregister_instances(instances)
33
+ requires :id
34
+ data = connection.deregister_instances_from_load_balancer(instances, id).body['DeregisterInstancesFromLoadBalancerResult']
35
+ data['Instances'].map!{|h| h['InstanceId']}
36
+ merge_attributes(data)
37
+ end
38
+
39
+ def enable_availability_zones(zones)
40
+ requires :id
41
+ data = connection.enable_availability_zones_for_load_balancer(zones, id).body['EnableAvailabilityZonesForLoadBalancerResult']
42
+ merge_attributes(data)
43
+ end
44
+
45
+ def disable_availability_zones(zones)
46
+ requires :id
47
+ data = connection.disable_availability_zones_for_load_balancer(zones, id).body['DisableAvailabilityZonesForLoadBalancerResult']
48
+ merge_attributes(data)
49
+ end
50
+
51
+ def instance_health
52
+ requires :id
53
+ @instance_health ||= connection.describe_instance_health(id).body['DescribeInstanceHealthResult']['InstanceStates']
54
+ end
55
+
56
+ def instances_in_service
57
+ instance_health.select{|hash| hash['State'] == 'InService'}.map{|hash| hash['InstanceId']}
58
+ end
59
+
60
+ def instances_out_of_service
61
+ instance_health.select{|hash| hash['State'] == 'OutOfService'}.map{|hash| hash['InstanceId']}
62
+ end
63
+
64
+ def configure_health_check(health_check)
65
+ requires :id
66
+ data = connection.configure_health_check(id, health_check).body['ConfigureHealthCheckResult']['HealthCheck']
67
+ merge_attributes(:health_check => data)
68
+ end
69
+
70
+ def listeners
71
+ Fog::AWS::ELB::Listeners.new({
72
+ :data => attributes['ListenerDescriptions'],
73
+ :connection => connection,
74
+ :load_balancer => self
75
+ })
76
+ end
77
+
78
+ def policies
79
+ Fog::AWS::ELB::Policies.new({
80
+ :data => attributes['Policies'],
81
+ :connection => connection,
82
+ :load_balancer => self
83
+ })
84
+ end
85
+
86
+ def set_listener_policy(port, policy_name)
87
+ requires :id
88
+ policy_name = [policy_name].flatten
89
+ connection.set_load_balancer_policies_of_listener(id, port, policy_name)
90
+ reload
91
+ end
92
+
93
+ def unset_listener_policy(port)
94
+ set_listener_policy(port, [])
95
+ end
96
+
97
+ def ready?
98
+ # ELB requests are synchronous
99
+ true
100
+ end
101
+
102
+ def save
103
+ requires :id
104
+ requires :listeners
105
+ requires :availability_zones
106
+
107
+ connection.create_load_balancer(availability_zones, id, listeners.map{|l| l.to_params})
108
+
109
+ # reload instead of merge attributes b/c some attrs (like HealthCheck)
110
+ # may be set, but only the DNS name is returned in the create_load_balance
111
+ # API call
112
+ reload
113
+ end
114
+
115
+ def reload
116
+ super
117
+ @instance_health = nil
118
+ self
119
+ end
120
+
121
+ def destroy
122
+ requires :id
123
+ connection.delete_load_balancer(id)
124
+ end
125
+
126
+ end
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,28 @@
1
+ require 'fog/aws/models/elb/load_balancer'
2
+ module Fog
3
+ module AWS
4
+ class ELB
5
+ class LoadBalancers < Fog::Collection
6
+ model Fog::AWS::ELB::LoadBalancer
7
+
8
+ # Creates a new load balancer
9
+ def initialize(attributes={})
10
+ super
11
+ end
12
+
13
+ def all
14
+ data = connection.describe_load_balancers.body['DescribeLoadBalancersResult']['LoadBalancerDescriptions']
15
+ load(data)
16
+ end
17
+
18
+ def get(identity)
19
+ data = connection.describe_load_balancers(identity).body['DescribeLoadBalancersResult']['LoadBalancerDescriptions'].first
20
+ new(data)
21
+ rescue Fog::AWS::ELB::NotFound
22
+ nil
23
+ end
24
+
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,40 @@
1
+ require 'fog/aws/models/elb/policy'
2
+ module Fog
3
+ module AWS
4
+ class ELB
5
+ class Policies < Fog::Collection
6
+
7
+ model Fog::AWS::ELB::Policy
8
+
9
+ attr_accessor :data, :load_balancer
10
+
11
+ def all
12
+ load(munged_data)
13
+ end
14
+
15
+ def get(id)
16
+ all.detect{|policy| id == policy.id}
17
+ end
18
+
19
+ private
20
+ # Munge a hash like:
21
+ # {'LBCookieStickinessPolicies' => [policies...],
22
+ # 'AppCookieStickinessPolicies' => [policies...]}
23
+ # to a single array of policies with a cookie_stickiness value
24
+ def munged_data
25
+ munged_data = []
26
+ data['LBCookieStickinessPolicies'].each do |policy|
27
+ munged_data << policy.merge(:cookie_stickiness => :lb)
28
+ end
29
+ data['AppCookieStickinessPolicies'].each do |policy|
30
+ munged_data << policy.merge(:cookie_stickiness => :app)
31
+ end
32
+ munged_data
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+
@@ -0,0 +1,52 @@
1
+ require 'fog/core/model'
2
+ module Fog
3
+ module AWS
4
+ class ELB
5
+
6
+ class Policy < Fog::Model
7
+ identity :id, :aliases => 'PolicyName'
8
+
9
+ attribute :cookie, :aliases => 'CookieName'
10
+ attribute :expiration, :aliases => 'CookieExpirationPeriod'
11
+
12
+ attr_accessor :cookie_stickiness # Either :app or :lb
13
+
14
+ def save
15
+ requires :id, :load_balancer, :cookie_stickiness
16
+ connection_method = nil
17
+ args = [load_balancer.id, id]
18
+ case cookie_stickiness
19
+ when :app
20
+ requires :cookie
21
+ method = :create_app_cookie_stickiness_policy
22
+ args << cookie
23
+ when :lb
24
+ method = :create_lb_cookie_stickiness_policy
25
+ args << expiration if expiration
26
+ else
27
+ raise ArgumentError.new('cookie_stickiness must be :app or :lb')
28
+ end
29
+
30
+ connection.send(method, *args)
31
+ reload
32
+ end
33
+
34
+ def destroy
35
+ requires :id, :load_balancer
36
+ connection.delete_load_balancer_policy(load_balancer.id, id)
37
+ reload
38
+ end
39
+
40
+ def reload
41
+ load_balancer.reload
42
+ end
43
+
44
+ def load_balancer
45
+ collection.load_balancer
46
+ end
47
+
48
+ end
49
+
50
+ end
51
+ end
52
+ end
File without changes
@@ -1,5 +1,5 @@
1
1
  require 'fog/core/collection'
2
- require 'fog/aws/rds/models/parameter_group'
2
+ require 'fog/aws/models/rds/parameter_group'
3
3
 
4
4
  module Fog
5
5
  module AWS
@@ -1,5 +1,5 @@
1
1
  require 'fog/core/collection'
2
- require 'fog/aws/rds/models/parameter'
2
+ require 'fog/aws/models/rds/parameter'
3
3
 
4
4
  module Fog
5
5
  module AWS
@@ -1,5 +1,5 @@
1
1
  require 'fog/core/collection'
2
- require 'fog/aws/rds/models/security_group'
2
+ require 'fog/aws/models/rds/security_group'
3
3
 
4
4
  module Fog
5
5
  module AWS
File without changes
@@ -1,5 +1,5 @@
1
1
  require 'fog/core/collection'
2
- require 'fog/aws/rds/models/server'
2
+ require 'fog/aws/models/rds/server'
3
3
 
4
4
  module Fog
5
5
  module AWS
File without changes
@@ -1,5 +1,5 @@
1
1
  require 'fog/core/collection'
2
- require 'fog/aws/rds/models/snapshot'
2
+ require 'fog/aws/models/rds/snapshot'
3
3
 
4
4
  module Fog
5
5
  module AWS
@@ -8,7 +8,7 @@ module Fog
8
8
  def end_element(name)
9
9
  case name
10
10
  when 'RequestId', 'StackId'
11
- @response[name] = @value
11
+ @response[name] = value
12
12
  end
13
13
  end
14
14
 
@@ -13,14 +13,14 @@ module Fog
13
13
  def end_element(name)
14
14
  case name
15
15
  when 'EventId', 'LogicalResourceId', 'PhysicalResourceId', 'ResourceProperties', 'ResourceStatus', 'ResourceStatusReason', 'ResourceType', 'StackId', 'StackName'
16
- @event[name] = @value
16
+ @event[name] = value
17
17
  when 'member'
18
18
  @response['StackEvents'] << @event
19
19
  @event = {}
20
20
  when 'RequestId'
21
- @response[name] = @value
21
+ @response[name] = value
22
22
  when 'Timestamp'
23
- @event[name] = Time.parse(@value)
23
+ @event[name] = Time.parse(value)
24
24
  end
25
25
  end
26
26
 
@@ -13,14 +13,14 @@ module Fog
13
13
  def end_element(name)
14
14
  case name
15
15
  when 'StackId', 'StackName', 'LogicalResourceId', 'PhysicalResourceId', 'ResourceType', 'ResourceStatus'
16
- @resource[name] = @value
16
+ @resource[name] = value
17
17
  when 'member'
18
18
  @response['StackResources'] << @resource
19
19
  @resource = {}
20
20
  when 'RequestId'
21
- @response[name] = @value
21
+ @response[name] = value
22
22
  when 'Timestamp'
23
- @resource[name] = Time.parse(@value)
23
+ @resource[name] = Time.parse(value)
24
24
  end
25
25
  end
26
26
 
@@ -26,7 +26,7 @@ module Fog
26
26
  if @in_outputs
27
27
  case name
28
28
  when 'OutputKey', 'OutputValue'
29
- @output[name] = @value
29
+ @output[name] = value
30
30
  when 'member'
31
31
  @stack['Outputs'] << @output
32
32
  @output = {}
@@ -36,7 +36,7 @@ module Fog
36
36
  elsif @in_parameters
37
37
  case name
38
38
  when 'ParameterKey', 'ParameterValue'
39
- @parameter[name] = @value
39
+ @parameter[name] = value
40
40
  when 'member'
41
41
  @stack['Parameters'] << @parameter
42
42
  @parameter = {}
@@ -49,18 +49,18 @@ module Fog
49
49
  @response['Stacks'] << @stack
50
50
  @stack = { 'Outputs' => [], 'Parameters' => [] }
51
51
  when 'RequestId'
52
- @response[name] = @value
52
+ @response[name] = value
53
53
  when 'CreationTime'
54
- @stack[name] = Time.parse(@value)
54
+ @stack[name] = Time.parse(value)
55
55
  when 'DisableRollback'
56
- case @value
56
+ case value
57
57
  when 'false'
58
58
  @stack[name] = false
59
59
  when 'true'
60
60
  @stack[name] = true
61
61
  end
62
62
  when 'StackName', 'StackId', 'StackStatus'
63
- @stack[name] = @value
63
+ @stack[name] = value
64
64
  end
65
65
  end
66
66
  end
@@ -8,7 +8,7 @@ module Fog
8
8
  def end_element(name)
9
9
  case name
10
10
  when 'RequestId', 'TemplateBody'
11
- @response[name] = @value
11
+ @response[name] = value
12
12
  end
13
13
  end
14
14
 
@@ -21,20 +21,20 @@ module Fog
21
21
  def end_element(name)
22
22
  case name
23
23
  when 'DefaultValue', 'ParameterKey'
24
- @parameter[name] = @value
24
+ @parameter[name] = value
25
25
  when 'Description'
26
26
  if @in_parameters
27
- @parameter[name] = @value
27
+ @parameter[name] = value
28
28
  else
29
- @response[name] = @value
29
+ @response[name] = value
30
30
  end
31
31
  when 'RequestId'
32
- @response[name] = @value
32
+ @response[name] = value
33
33
  when 'member'
34
34
  @response['Parameters'] << @parameter
35
35
  @parameter = {}
36
36
  when 'NoEcho'
37
- case @value
37
+ case value
38
38
  when 'false'
39
39
  @parameter[name] = false
40
40
  when 'true'
@@ -0,0 +1,37 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module ELB
5
+
6
+ class ConfigureHealthCheck < Fog::Parsers::Base
7
+
8
+ def reset
9
+ @health_check = {}
10
+ @response = { 'ConfigureHealthCheckResult' => {}, 'ResponseMetadata' => {} }
11
+ end
12
+
13
+ def start_element(name, attrs = [])
14
+ super
15
+ end
16
+
17
+ def end_element(name)
18
+ case name
19
+ when 'Target'
20
+ @health_check[name] = value
21
+ when 'Interval', 'Timeout', 'UnhealthyThreshold', 'HealthyThreshold'
22
+ @health_check[name] = value.to_i
23
+
24
+ when 'HealthCheck'
25
+ @response['ConfigureHealthCheckResult'][name] = @health_check
26
+
27
+ when 'RequestId'
28
+ @response['ResponseMetadata'][name] = value
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end