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
@@ -90,15 +90,15 @@ module Fog
90
90
  case name
91
91
  when 'Allocated', 'Limit', 'Units', 'Used'
92
92
  if @in_cpu
93
- @response['ComputeCapacity']['Cpu'][name] = @value
93
+ @response['ComputeCapacity']['Cpu'][name] = value
94
94
  elsif @in_deployed_vms_quota
95
- @response['ComputeCapacity']['DeployedVmsQuota'][name] = @value
95
+ @response['ComputeCapacity']['DeployedVmsQuota'][name] = value
96
96
  elsif @in_instantiated_vms_quota
97
- @response['ComputeCapacity']['InstantiatedVmsQuota'][name] = @value
97
+ @response['ComputeCapacity']['InstantiatedVmsQuota'][name] = value
98
98
  elsif @in_memory
99
- @response['ComputeCapacity']['Memory'][name] = @value
99
+ @response['ComputeCapacity']['Memory'][name] = value
100
100
  elsif @in_storage_capacity
101
- @response['StorageCapacity'][name] = @value
101
+ @response['StorageCapacity'][name] = value
102
102
  end
103
103
  when 'Cpu'
104
104
  @in_cpu = false
@@ -111,7 +111,7 @@ module Fog
111
111
  when 'StorageCapacity'
112
112
  @in_storage_capacity = false
113
113
  when 'Type'
114
- @response[name] = @value
114
+ @response[name] = value
115
115
  end
116
116
  end
117
117
 
@@ -31,27 +31,27 @@ module Fog
31
31
  def end_element(name)
32
32
  case name
33
33
  when 'Description', 'Protocol'
34
- @response[name] = @value
34
+ @response[name] = value
35
35
  when 'Enabled'
36
- if @value == 'false'
36
+ if value == 'false'
37
37
  @response[name] = false
38
38
  else
39
39
  @response[name] = true
40
40
  end
41
41
  when 'Id'
42
42
  if @in_public_ip_address
43
- @response['PublicIpAddress'][name] = @value.to_i
43
+ @response['PublicIpAddress'][name] = value.to_i
44
44
  else
45
- @response[name] = @value.to_i
45
+ @response[name] = value.to_i
46
46
  end
47
47
  when 'Name'
48
48
  if @in_public_ip_address
49
- @response['PublicIpAddress'][name] = @value
49
+ @response['PublicIpAddress'][name] = value
50
50
  else
51
- @response[name] = @value
51
+ @response[name] = value
52
52
  end
53
53
  when 'Port', 'Timeout'
54
- @response[name] = @value.to_i
54
+ @response[name] = value.to_i
55
55
  when 'PublicIpAddress'
56
56
  @in_public_ip_address = false
57
57
  end
@@ -39,7 +39,7 @@ module Fog
39
39
  def end_element(name)
40
40
  case name
41
41
  when "Gateway", "Netmask", "FenceMode"
42
- @response[name.downcase] = @value
42
+ @response[name.downcase] = value
43
43
  end
44
44
  end
45
45
 
@@ -12,15 +12,15 @@ module Fog
12
12
  def end_element(name)
13
13
  case name
14
14
  when 'Description', 'Href', 'IpAddress', 'Name', 'Protocol'
15
- @response[name] = @value
15
+ @response[name] = value
16
16
  when 'Enabled'
17
- if @value == 'false'
17
+ if value == 'false'
18
18
  @response[name] = false
19
19
  else
20
20
  @response[name] = true
21
21
  end
22
22
  when 'Id', 'Port'
23
- @response[name] = @value.to_i
23
+ @response[name] = value.to_i
24
24
  end
25
25
  end
26
26
 
@@ -12,9 +12,9 @@ module Fog
12
12
  def end_element(name)
13
13
  case name
14
14
  when 'Href', 'Name'
15
- @response[name.downcase] = @value
15
+ @response[name.downcase] = value
16
16
  when 'Id'
17
- @response['id'] = @value.to_i
17
+ @response['id'] = value.to_i
18
18
  end
19
19
  end
20
20
 
@@ -39,15 +39,15 @@ module Fog
39
39
  def end_element(name)
40
40
  case name
41
41
  when 'IpAddress'
42
- @response['IpAddress'] = @value
42
+ @response['IpAddress'] = value
43
43
  when 'Description'
44
44
  if @in_operating_system
45
- @response['OperatingSystem'][name] = @value
45
+ @response['OperatingSystem'][name] = value
46
46
  @in_operating_system = false
47
47
  end
48
48
  when 'ResourceType'
49
- @resource_type = @value
50
- case @value
49
+ @resource_type = value
50
+ case value
51
51
  when '3'
52
52
  @get_cpu = true # cpu
53
53
  when '4' # memory
@@ -58,12 +58,12 @@ module Fog
58
58
  when 'VirtualQuantity'
59
59
  case @resource_type
60
60
  when '3'
61
- @response['VirtualHardware']['cpu'] = @value
61
+ @response['VirtualHardware']['cpu'] = value
62
62
  when '4'
63
- @response['VirtualHardware']['ram'] = @value
63
+ @response['VirtualHardware']['ram'] = value
64
64
  when '17'
65
65
  @response['VirtualHardware']['disks'] ||= []
66
- @response['VirtualHardware']['disks'] << @value
66
+ @response['VirtualHardware']['disks'] << value
67
67
  end
68
68
  end
69
69
  end
@@ -313,7 +313,7 @@ Spec::Matchers.define :have_key_with_array do |expected_key, expected_array|
313
313
  end
314
314
  failure_message_for_should do |actual|
315
315
  "Items not found in array:\n#{expected_array.select { |expected_item| !actual[expected_key].include?(expected_item) }.map { |item| item.inspect }.join("\n")}\n" +
316
- "Orignal items:\n#{actual[expected_key].map { |item| item.inspect }.join("\n") }\n"+
316
+ "Original items:\n#{actual[expected_key].map { |item| item.inspect }.join("\n") }\n"+
317
317
  "Length Difference: #{expected_array.length - actual[expected_key].length}"
318
318
  end
319
319
  end
@@ -113,6 +113,8 @@ Shindo.tests('AWS::CloudFormation | stack requests', ['aws', 'cloudformation'])
113
113
  AWS[:cloud_formation].describe_stacks.body
114
114
  end
115
115
 
116
+ sleep(1) # avoid throttling
117
+
116
118
  tests("describe_stack_events('#{@stack_name}')").formats(@describe_stack_events_format) do
117
119
  pending if Fog.mocking?
118
120
  AWS[:cloud_formation].describe_stack_events(@stack_name).body
@@ -0,0 +1,44 @@
1
+ class AWS
2
+ module ELB
3
+ module Formats
4
+
5
+ BASIC = {
6
+ 'ResponseMetadata' => {'RequestId' => String}
7
+ }
8
+
9
+ LOAD_BALANCER = {
10
+ "CreatedTime" => Time,
11
+ "ListenerDescriptions" => Array,
12
+ "HealthCheck" => {"HealthyThreshold" => Integer, "Timeout" => Integer, "UnhealthyThreshold" => Integer, "Interval" => Integer, "Target" => String},
13
+ "Policies" => {"LBCookieStickinessPolicies" => Array, "AppCookieStickinessPolicies" => Array},
14
+ "AvailabilityZones" => Array,
15
+ "DNSName" => String,
16
+ "LoadBalancerName"=> String,
17
+ "Instances"=> Array
18
+ }
19
+
20
+ CREATE_LOAD_BALANCER = BASIC.merge({
21
+ 'CreateLoadBalancerResult' => { 'DNSName' => String }
22
+ })
23
+
24
+ DESCRIBE_LOAD_BALANCERS = BASIC.merge({
25
+ 'DescribeLoadBalancersResult' => {'LoadBalancerDescriptions' => [LOAD_BALANCER]}
26
+ })
27
+
28
+ CONFIGURE_HEALTH_CHECK = BASIC.merge({
29
+ 'ConfigureHealthCheckResult' => {'HealthCheck' => {
30
+ 'Target' => String,
31
+ 'Interval' => Integer,
32
+ 'Timeout' => Integer,
33
+ 'UnhealthyThreshold' => Integer,
34
+ 'HealthyThreshold' => Integer
35
+ }}
36
+ })
37
+
38
+ DELETE_LOAD_BALANCER = BASIC.merge({
39
+ 'DeleteLoadBalancerResult' => NilClass
40
+ })
41
+
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,82 @@
1
+ Shindo.tests('AWS::ELB | load_balancer_tests', ['aws', 'elb']) do
2
+ @load_balancer_id = 'fog-test-elb'
3
+
4
+ tests('success') do
5
+ pending if Fog.mocking?
6
+
7
+ tests("#create_load_balancer").formats(AWS::ELB::Formats::CREATE_LOAD_BALANCER) do
8
+ zones = ['us-east-1a']
9
+ listeners = [{'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'http'}]
10
+ AWS[:elb].create_load_balancer(zones, @load_balancer_id, listeners).body
11
+ end
12
+
13
+ tests("#describe_load_balancers").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCERS) do
14
+ AWS[:elb].describe_load_balancers.body
15
+ end
16
+
17
+ tests('#describe_load_balancers with bad lb') do
18
+ raises(Fog::AWS::ELB::NotFound) { AWS[:elb].describe_load_balancers('none-such-lb') }
19
+ end
20
+
21
+ tests("#configure_health_check").formats(AWS::ELB::Formats::CONFIGURE_HEALTH_CHECK) do
22
+ health_check = {
23
+ 'Target' => 'HTTP:80/index.html',
24
+ 'Interval' => 10,
25
+ 'Timeout' => 5,
26
+ 'UnhealthyThreshold' => 2,
27
+ 'HealthyThreshold' => 3
28
+ }
29
+
30
+ AWS[:elb].configure_health_check(@load_balancer_id, health_check).body
31
+ end
32
+
33
+ tests("#create_app_cookie_stickiness_policy").formats(AWS::ELB::Formats::BASIC) do
34
+ cookie, policy = 'fog-app-cookie', 'fog-app-policy'
35
+ AWS[:elb].create_app_cookie_stickiness_policy(@load_balancer_id, policy, cookie).body
36
+ end
37
+
38
+ tests("#create_lb_cookie_stickiness_policy with expiry").formats(AWS::ELB::Formats::BASIC) do
39
+ policy = 'fog-lb-expiry'
40
+ expiry = 300
41
+ AWS[:elb].create_lb_cookie_stickiness_policy(@load_balancer_id, policy, expiry).body
42
+ end
43
+
44
+ tests("#create_lb_cookie_stickiness_policy without expiry").formats(AWS::ELB::Formats::BASIC) do
45
+ policy = 'fog-lb-no-expiry'
46
+ AWS[:elb].create_lb_cookie_stickiness_policy(@load_balancer_id, policy).body
47
+ end
48
+
49
+ tests("#delete_load_balancer_policy").formats(AWS::ELB::Formats::BASIC) do
50
+ policy = 'fog-lb-no-expiry'
51
+ AWS[:elb].delete_load_balancer_policy(@load_balancer_id, policy).body
52
+ end
53
+
54
+ tests("#create_load_balancer_listeners").formats(AWS::ELB::Formats::BASIC) do
55
+ listeners = [
56
+ {'Protocol' => 'tcp', 'LoadBalancerPort' => 443, 'InstancePort' => 443},
57
+ {'Protocol' => 'HTTP', 'LoadBalancerPort' => 80, 'InstancePort' => 80}
58
+ ]
59
+ AWS[:elb].create_load_balancer_listeners(@load_balancer_id, listeners).body
60
+ end
61
+
62
+ tests("#set_load_balancer_policies_of_listener adds policy").formats(AWS::ELB::Formats::BASIC) do
63
+ port, policies = 80, ['fog-lb-expiry']
64
+ body = AWS[:elb].set_load_balancer_policies_of_listener(@load_balancer_id, port, policies).body
65
+ end
66
+
67
+ tests("#set_load_balancer_policies_of_listener removes policy").formats(AWS::ELB::Formats::BASIC) do
68
+ port = 80
69
+ body = AWS[:elb].set_load_balancer_policies_of_listener(@load_balancer_id, port, []).body
70
+ end
71
+
72
+
73
+ tests("#delete_load_balancer_listeners").formats(AWS::ELB::Formats::BASIC) do
74
+ ports = [80, 443]
75
+ AWS[:elb].delete_load_balancer_listeners(@load_balancer_id, ports).body
76
+ end
77
+
78
+ tests("#delete_load_balancer").formats(AWS::ELB::Formats::DELETE_LOAD_BALANCER) do
79
+ AWS[:elb].delete_load_balancer(@load_balancer_id).body
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,187 @@
1
+ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
2
+
3
+
4
+ tests('success') do
5
+ pending if Fog.mocking?
6
+
7
+ tests('load_balancers') do
8
+ tests('getting a missing elb') do
9
+ returns(nil) { AWS[:elb].load_balancers.get('no-such-elb') }
10
+ end
11
+ end
12
+
13
+ elb = nil
14
+ elb_id = 'fog-test'
15
+
16
+ tests('create') do
17
+ elb = AWS[:elb].load_balancers.create(:id => elb_id)
18
+ tests("dns names is set").returns(true) { elb.dns_name.is_a?(String) }
19
+ tests("created_at is set").returns(true) { (Time.now-10..Time.now).include? elb.created_at }
20
+ tests("policies is empty").returns([]) { elb.policies }
21
+ end
22
+
23
+ tests('all') do
24
+ elb_ids = AWS[:elb].load_balancers.all.map{|e| e.id}
25
+ tests("contains elb").returns(true) { elb_ids.include? elb_id }
26
+ end
27
+
28
+ tests('get') do
29
+ elb2 = AWS[:elb].load_balancers.get(elb_id)
30
+ tests('ids match').returns(elb_id) { elb2.id }
31
+ end
32
+
33
+ tests('createing a duplicate elb') do
34
+ raises(Fog::AWS::ELB::IdentifierTaken) do
35
+ AWS[:elb].load_balancers.create(:id => elb_id, :availability_zones => ['us-east-1d'])
36
+ end
37
+ end
38
+
39
+ tests('registering an invalid instance') do
40
+ raises(Fog::AWS::ELB::InvalidInstance) { elb.register_instances('i-00000000') }
41
+ end
42
+
43
+ tests('deregistering an invalid instance') do
44
+ raises(Fog::AWS::ELB::InvalidInstance) { elb.deregister_instances('i-00000000') }
45
+ end
46
+
47
+ server = AWS[:compute].servers.create
48
+ tests('register instance') do
49
+ begin
50
+ elb.register_instances(server.id)
51
+ rescue Fog::AWS::ELB::InvalidInstance
52
+ # It may take a moment for a newly created instances to be visible to ELB requests
53
+ raise if @retried_registered_instance
54
+ @retried_registered_instance = true
55
+ sleep 1
56
+ retry
57
+ end
58
+
59
+ returns([server.id]) { elb.instances }
60
+ end
61
+
62
+ tests('instance_health') do
63
+ returns('OutOfService') do
64
+ elb.instance_health.detect{|hash| hash['InstanceId'] == server.id}['State']
65
+ end
66
+
67
+ returns([server.id]) { elb.instances_out_of_service }
68
+ end
69
+
70
+ tests('deregister instance') do
71
+ elb.deregister_instances(server.id)
72
+ returns([]) { elb.instances }
73
+ end
74
+ server.destroy
75
+
76
+ tests('disable_availability_zones') do
77
+ elb.disable_availability_zones(%w{us-east-1c us-east-1d})
78
+ returns(%w{us-east-1a us-east-1b}) { elb.availability_zones.sort }
79
+ end
80
+
81
+ tests('enable_availability_zones') do
82
+ elb.enable_availability_zones(%w{us-east-1c us-east-1d})
83
+ returns(%w{us-east-1a us-east-1b us-east-1c us-east-1d}) { elb.availability_zones.sort }
84
+ end
85
+
86
+ tests('default health check') do
87
+ default_health_check = {
88
+ "HealthyThreshold"=>10,
89
+ "Timeout"=>5,
90
+ "UnhealthyThreshold"=>2,
91
+ "Interval"=>30,
92
+ "Target"=>"TCP:80"
93
+ }
94
+ returns(default_health_check) { elb.health_check }
95
+ end
96
+
97
+ tests('configure_health_check') do
98
+ new_health_check = {
99
+ "HealthyThreshold"=>5,
100
+ "Timeout"=>10,
101
+ "UnhealthyThreshold"=>3,
102
+ "Interval"=>15,
103
+ "Target"=>"HTTP:80/index.html"
104
+ }
105
+ elb.configure_health_check(new_health_check)
106
+ returns(new_health_check) { elb.health_check }
107
+ end
108
+
109
+ tests('listeners') do
110
+ default_listener_description = [{"Listener"=>{"InstancePort"=>80, "Protocol"=>"HTTP", "LoadBalancerPort"=>80}, "PolicyNames"=>[]}]
111
+ tests('default') do
112
+ returns(1) { elb.listeners.size }
113
+
114
+ listener = elb.listeners.first
115
+ returns([80,80,'HTTP', []]) { [listener.instance_port, listener.lb_port, listener.protocol, listener.policy_names] }
116
+
117
+ end
118
+
119
+ tests('#get') do
120
+ returns(80) { elb.listeners.get(80).lb_port }
121
+ end
122
+
123
+ tests('create') do
124
+ new_listener = { 'InstancePort' => 443, 'LoadBalancerPort' => 443, 'Protocol' => 'TCP'}
125
+ elb.listeners.create(:instance_port => 443, :lb_port => 443, :protocol => 'TCP')
126
+ returns(2) { elb.listeners.size }
127
+ returns(443) { elb.listeners.get(443).lb_port }
128
+ end
129
+
130
+ tests('destroy') do
131
+ elb.listeners.get(443).destroy
132
+ returns(nil) { elb.listeners.get(443) }
133
+ end
134
+ end
135
+
136
+ tests('policies') do
137
+ app_policy_id = 'my-app-policy'
138
+
139
+ tests 'are empty' do
140
+ returns([]) { elb.policies.to_a }
141
+ end
142
+
143
+ tests('#all') do
144
+ returns([]) { elb.policies.all.to_a }
145
+ end
146
+
147
+ tests('create app policy') do
148
+ elb.policies.create(:id => app_policy_id, :cookie => 'my-app-cookie', :cookie_stickiness => :app)
149
+ returns(app_policy_id) { elb.policies.first.id }
150
+ end
151
+
152
+ tests('get policy') do
153
+ returns(app_policy_id) { elb.policies.get(app_policy_id).id }
154
+ end
155
+
156
+ tests('destroy app policy') do
157
+ elb.policies.first.destroy
158
+ returns([]) { elb.policies.to_a }
159
+ end
160
+
161
+ lb_policy_id = 'my-lb-policy'
162
+ tests('create lb policy') do
163
+ elb.policies.create(:id => lb_policy_id, :expiration => 600, :cookie_stickiness => :lb)
164
+ returns(lb_policy_id) { elb.policies.first.id }
165
+ end
166
+
167
+ tests('setting a listener policy') do
168
+ elb.set_listener_policy(80, lb_policy_id)
169
+ returns([lb_policy_id]) { elb.listeners.get(80).policy_names }
170
+ end
171
+
172
+ tests('unsetting a listener policy') do
173
+ elb.unset_listener_policy(80)
174
+ returns([]) { elb.listeners.get(80).policy_names }
175
+ end
176
+
177
+ tests('a malformed policy') do
178
+ raises(ArgumentError) { elb.policies.create(:id => 'foo', :cookie_stickiness => 'invalid stickiness') }
179
+ end
180
+ end
181
+
182
+ tests('destroy') do
183
+ elb.destroy
184
+ end
185
+ end
186
+
187
+ end