phpfog-fog 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (888) hide show
  1. data/.document +3 -0
  2. data/.gitignore +11 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +45 -0
  5. data/README.rdoc +176 -0
  6. data/Rakefile +132 -0
  7. data/benchs/fog_vs.rb +106 -0
  8. data/benchs/params.rb +43 -0
  9. data/benchs/parse_vs_push.rb +60 -0
  10. data/bin/fog +46 -0
  11. data/examples/dns_tests.rb +76 -0
  12. data/examples/storage_tests.rb +103 -0
  13. data/fog.gemspec +62 -0
  14. data/lib/fog/aws/elb.rb +106 -0
  15. data/lib/fog/aws/iam.rb +105 -0
  16. data/lib/fog/aws/parsers/elb/create_load_balancer.rb +26 -0
  17. data/lib/fog/aws/parsers/elb/delete_load_balancer.rb +24 -0
  18. data/lib/fog/aws/parsers/elb/deregister_instances_from_load_balancer.rb +26 -0
  19. data/lib/fog/aws/parsers/elb/describe_instance_health.rb +30 -0
  20. data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +101 -0
  21. data/lib/fog/aws/parsers/elb/disable_availability_zones_for_load_balancer.rb +26 -0
  22. data/lib/fog/aws/parsers/elb/enable_availability_zones_for_load_balancer.rb +26 -0
  23. data/lib/fog/aws/parsers/elb/register_instances_with_load_balancer.rb +26 -0
  24. data/lib/fog/aws/parsers/iam/basic.rb +19 -0
  25. data/lib/fog/aws/parsers/iam/create_access_key.rb +26 -0
  26. data/lib/fog/aws/parsers/iam/create_group.rb +26 -0
  27. data/lib/fog/aws/parsers/iam/create_user.rb +26 -0
  28. data/lib/fog/aws/parsers/iam/get_user.rb +27 -0
  29. data/lib/fog/aws/parsers/iam/list_access_keys.rb +32 -0
  30. data/lib/fog/aws/parsers/iam/list_groups.rb +32 -0
  31. data/lib/fog/aws/parsers/iam/list_policies.rb +28 -0
  32. data/lib/fog/aws/parsers/iam/list_users.rb +32 -0
  33. data/lib/fog/aws/parsers/ses/delete_verified_email_address.rb +24 -0
  34. data/lib/fog/aws/parsers/ses/get_send_quota.rb +26 -0
  35. data/lib/fog/aws/parsers/ses/get_send_statistics.rb +29 -0
  36. data/lib/fog/aws/parsers/ses/list_verified_email_addresses.rb +25 -0
  37. data/lib/fog/aws/parsers/ses/send_email.rb +26 -0
  38. data/lib/fog/aws/parsers/ses/send_raw_email.rb +26 -0
  39. data/lib/fog/aws/parsers/ses/verify_email_address.rb +24 -0
  40. data/lib/fog/aws/parsers/simpledb/basic.rb +31 -0
  41. data/lib/fog/aws/parsers/simpledb/domain_metadata.rb +32 -0
  42. data/lib/fog/aws/parsers/simpledb/get_attributes.rb +36 -0
  43. data/lib/fog/aws/parsers/simpledb/list_domains.rb +30 -0
  44. data/lib/fog/aws/parsers/simpledb/select.rb +41 -0
  45. data/lib/fog/aws/requests/elb/create_load_balancer.rb +59 -0
  46. data/lib/fog/aws/requests/elb/delete_load_balancer.rb +42 -0
  47. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +47 -0
  48. data/lib/fog/aws/requests/elb/describe_instance_health.rb +46 -0
  49. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +59 -0
  50. data/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb +46 -0
  51. data/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb +46 -0
  52. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +47 -0
  53. data/lib/fog/aws/requests/iam/add_user_to_group.rb +42 -0
  54. data/lib/fog/aws/requests/iam/create_access_key.rb +45 -0
  55. data/lib/fog/aws/requests/iam/create_group.rb +47 -0
  56. data/lib/fog/aws/requests/iam/create_user.rb +47 -0
  57. data/lib/fog/aws/requests/iam/delete_access_key.rb +42 -0
  58. data/lib/fog/aws/requests/iam/delete_group.rb +40 -0
  59. data/lib/fog/aws/requests/iam/delete_group_policy.rb +42 -0
  60. data/lib/fog/aws/requests/iam/delete_user.rb +40 -0
  61. data/lib/fog/aws/requests/iam/delete_user_policy.rb +42 -0
  62. data/lib/fog/aws/requests/iam/get_user.rb +44 -0
  63. data/lib/fog/aws/requests/iam/list_access_keys.rb +48 -0
  64. data/lib/fog/aws/requests/iam/list_group_policies.rb +47 -0
  65. data/lib/fog/aws/requests/iam/list_groups.rb +50 -0
  66. data/lib/fog/aws/requests/iam/list_user_policies.rb +47 -0
  67. data/lib/fog/aws/requests/iam/list_users.rb +50 -0
  68. data/lib/fog/aws/requests/iam/put_group_policy.rb +44 -0
  69. data/lib/fog/aws/requests/iam/put_user_policy.rb +44 -0
  70. data/lib/fog/aws/requests/iam/remove_user_from_group.rb +42 -0
  71. data/lib/fog/aws/requests/iam/update_access_key.rb +44 -0
  72. data/lib/fog/aws/requests/ses/delete_verified_email_address.rb +38 -0
  73. data/lib/fog/aws/requests/ses/get_send_quota.rb +40 -0
  74. data/lib/fog/aws/requests/ses/get_send_statistics.rb +43 -0
  75. data/lib/fog/aws/requests/ses/list_verified_email_addresses.rb +38 -0
  76. data/lib/fog/aws/requests/ses/send_email.rb +58 -0
  77. data/lib/fog/aws/requests/ses/send_raw_email.rb +44 -0
  78. data/lib/fog/aws/requests/ses/verify_email_address.rb +38 -0
  79. data/lib/fog/aws/requests/simpledb/batch_put_attributes.rb +64 -0
  80. data/lib/fog/aws/requests/simpledb/create_domain.rb +44 -0
  81. data/lib/fog/aws/requests/simpledb/delete_attributes.rb +63 -0
  82. data/lib/fog/aws/requests/simpledb/delete_domain.rb +45 -0
  83. data/lib/fog/aws/requests/simpledb/domain_metadata.rb +76 -0
  84. data/lib/fog/aws/requests/simpledb/get_attributes.rb +72 -0
  85. data/lib/fog/aws/requests/simpledb/list_domains.rb +59 -0
  86. data/lib/fog/aws/requests/simpledb/put_attributes.rb +78 -0
  87. data/lib/fog/aws/requests/simpledb/select.rb +43 -0
  88. data/lib/fog/aws/ses.rb +99 -0
  89. data/lib/fog/aws/simpledb.rb +172 -0
  90. data/lib/fog/bin/aws.rb +71 -0
  91. data/lib/fog/bin/bluebox.rb +36 -0
  92. data/lib/fog/bin/brightbox.rb +34 -0
  93. data/lib/fog/bin/go_grid.rb +36 -0
  94. data/lib/fog/bin/google.rb +30 -0
  95. data/lib/fog/bin/linode.rb +40 -0
  96. data/lib/fog/bin/local.rb +36 -0
  97. data/lib/fog/bin/new_servers.rb +36 -0
  98. data/lib/fog/bin/rackspace.rb +52 -0
  99. data/lib/fog/bin/slicehost.rb +40 -0
  100. data/lib/fog/bin/terremark.rb +36 -0
  101. data/lib/fog/bin/terremark_ecloud.rb +28 -0
  102. data/lib/fog/bin/vcloud.rb +59 -0
  103. data/lib/fog/bin/zerigo.rb +30 -0
  104. data/lib/fog/bin.rb +89 -0
  105. data/lib/fog/cdn/aws.rb +115 -0
  106. data/lib/fog/cdn/parsers/aws/distribution.rb +59 -0
  107. data/lib/fog/cdn/parsers/aws/get_distribution_list.rb +61 -0
  108. data/lib/fog/cdn/parsers/aws/post_invalidation.rb +28 -0
  109. data/lib/fog/cdn/rackspace.rb +97 -0
  110. data/lib/fog/cdn/requests/aws/delete_distribution.rb +36 -0
  111. data/lib/fog/cdn/requests/aws/get_distribution.rb +65 -0
  112. data/lib/fog/cdn/requests/aws/get_distribution_list.rb +67 -0
  113. data/lib/fog/cdn/requests/aws/post_distribution.rb +99 -0
  114. data/lib/fog/cdn/requests/aws/post_invalidation.rb +59 -0
  115. data/lib/fog/cdn/requests/aws/put_distribution_config.rb +102 -0
  116. data/lib/fog/cdn/requests/rackspace/get_containers.rb +39 -0
  117. data/lib/fog/cdn/requests/rackspace/head_container.rb +41 -0
  118. data/lib/fog/cdn/requests/rackspace/put_container.rb +38 -0
  119. data/lib/fog/cdn.rb +19 -0
  120. data/lib/fog/compute/aws.rb +273 -0
  121. data/lib/fog/compute/bluebox.rb +104 -0
  122. data/lib/fog/compute/brightbox.rb +159 -0
  123. data/lib/fog/compute/go_grid.rb +118 -0
  124. data/lib/fog/compute/linode.rb +100 -0
  125. data/lib/fog/compute/models/aws/address.rb +69 -0
  126. data/lib/fog/compute/models/aws/addresses.rb +100 -0
  127. data/lib/fog/compute/models/aws/flavor.rb +21 -0
  128. data/lib/fog/compute/models/aws/flavors.rb +166 -0
  129. data/lib/fog/compute/models/aws/image.rb +43 -0
  130. data/lib/fog/compute/models/aws/images.rb +62 -0
  131. data/lib/fog/compute/models/aws/key_pair.rb +44 -0
  132. data/lib/fog/compute/models/aws/key_pairs.rb +88 -0
  133. data/lib/fog/compute/models/aws/security_group.rb +205 -0
  134. data/lib/fog/compute/models/aws/security_groups.rb +95 -0
  135. data/lib/fog/compute/models/aws/server.rb +212 -0
  136. data/lib/fog/compute/models/aws/servers.rb +158 -0
  137. data/lib/fog/compute/models/aws/snapshot.rb +58 -0
  138. data/lib/fog/compute/models/aws/snapshots.rb +52 -0
  139. data/lib/fog/compute/models/aws/tag.rb +36 -0
  140. data/lib/fog/compute/models/aws/tags.rb +34 -0
  141. data/lib/fog/compute/models/aws/volume.rb +109 -0
  142. data/lib/fog/compute/models/aws/volumes.rb +121 -0
  143. data/lib/fog/compute/models/bluebox/flavor.rb +45 -0
  144. data/lib/fog/compute/models/bluebox/flavors.rb +28 -0
  145. data/lib/fog/compute/models/bluebox/image.rb +19 -0
  146. data/lib/fog/compute/models/bluebox/images.rb +28 -0
  147. data/lib/fog/compute/models/bluebox/server.rb +126 -0
  148. data/lib/fog/compute/models/bluebox/servers.rb +36 -0
  149. data/lib/fog/compute/models/brightbox/account.rb +51 -0
  150. data/lib/fog/compute/models/brightbox/cloud_ip.rb +47 -0
  151. data/lib/fog/compute/models/brightbox/cloud_ips.rb +34 -0
  152. data/lib/fog/compute/models/brightbox/flavor.rb +33 -0
  153. data/lib/fog/compute/models/brightbox/flavors.rb +28 -0
  154. data/lib/fog/compute/models/brightbox/image.rb +56 -0
  155. data/lib/fog/compute/models/brightbox/images.rb +28 -0
  156. data/lib/fog/compute/models/brightbox/load_balancer.rb +50 -0
  157. data/lib/fog/compute/models/brightbox/load_balancers.rb +28 -0
  158. data/lib/fog/compute/models/brightbox/server.rb +94 -0
  159. data/lib/fog/compute/models/brightbox/servers.rb +29 -0
  160. data/lib/fog/compute/models/brightbox/user.rb +39 -0
  161. data/lib/fog/compute/models/brightbox/users.rb +29 -0
  162. data/lib/fog/compute/models/brightbox/zone.rb +21 -0
  163. data/lib/fog/compute/models/brightbox/zones.rb +29 -0
  164. data/lib/fog/compute/models/go_grid/image.rb +60 -0
  165. data/lib/fog/compute/models/go_grid/images.rb +33 -0
  166. data/lib/fog/compute/models/go_grid/server.rb +56 -0
  167. data/lib/fog/compute/models/go_grid/servers.rb +35 -0
  168. data/lib/fog/compute/models/rackspace/flavor.rb +43 -0
  169. data/lib/fog/compute/models/rackspace/flavors.rb +28 -0
  170. data/lib/fog/compute/models/rackspace/image.rb +48 -0
  171. data/lib/fog/compute/models/rackspace/images.rb +33 -0
  172. data/lib/fog/compute/models/rackspace/server.rb +129 -0
  173. data/lib/fog/compute/models/rackspace/servers.rb +36 -0
  174. data/lib/fog/compute/models/slicehost/flavor.rb +45 -0
  175. data/lib/fog/compute/models/slicehost/flavors.rb +28 -0
  176. data/lib/fog/compute/models/slicehost/image.rb +17 -0
  177. data/lib/fog/compute/models/slicehost/images.rb +27 -0
  178. data/lib/fog/compute/models/slicehost/server.rb +112 -0
  179. data/lib/fog/compute/models/slicehost/servers.rb +38 -0
  180. data/lib/fog/compute/new_servers.rb +103 -0
  181. data/lib/fog/compute/parsers/aws/allocate_address.rb +19 -0
  182. data/lib/fog/compute/parsers/aws/attach_volume.rb +22 -0
  183. data/lib/fog/compute/parsers/aws/basic.rb +25 -0
  184. data/lib/fog/compute/parsers/aws/create_image.rb +20 -0
  185. data/lib/fog/compute/parsers/aws/create_key_pair.rb +20 -0
  186. data/lib/fog/compute/parsers/aws/create_snapshot.rb +26 -0
  187. data/lib/fog/compute/parsers/aws/create_volume.rb +24 -0
  188. data/lib/fog/compute/parsers/aws/deregister_image.rb +20 -0
  189. data/lib/fog/compute/parsers/aws/describe_addresses.rb +30 -0
  190. data/lib/fog/compute/parsers/aws/describe_availability_zones.rb +32 -0
  191. data/lib/fog/compute/parsers/aws/describe_images.rb +72 -0
  192. data/lib/fog/compute/parsers/aws/describe_instances.rb +119 -0
  193. data/lib/fog/compute/parsers/aws/describe_key_pairs.rb +30 -0
  194. data/lib/fog/compute/parsers/aws/describe_regions.rb +30 -0
  195. data/lib/fog/compute/parsers/aws/describe_reserved_instances.rb +36 -0
  196. data/lib/fog/compute/parsers/aws/describe_security_groups.rb +76 -0
  197. data/lib/fog/compute/parsers/aws/describe_snapshots.rb +54 -0
  198. data/lib/fog/compute/parsers/aws/describe_tags.rb +30 -0
  199. data/lib/fog/compute/parsers/aws/describe_volumes.rb +73 -0
  200. data/lib/fog/compute/parsers/aws/detach_volume.rb +22 -0
  201. data/lib/fog/compute/parsers/aws/get_console_output.rb +32 -0
  202. data/lib/fog/compute/parsers/aws/import_key_pair.rb +20 -0
  203. data/lib/fog/compute/parsers/aws/register_image.rb +20 -0
  204. data/lib/fog/compute/parsers/aws/run_instances.rb +89 -0
  205. data/lib/fog/compute/parsers/aws/start_stop_instances.rb +41 -0
  206. data/lib/fog/compute/parsers/aws/terminate_instances.rb +55 -0
  207. data/lib/fog/compute/parsers/slicehost/create_slice.rb +31 -0
  208. data/lib/fog/compute/parsers/slicehost/get_backups.rb +32 -0
  209. data/lib/fog/compute/parsers/slicehost/get_flavor.rb +26 -0
  210. data/lib/fog/compute/parsers/slicehost/get_flavors.rb +30 -0
  211. data/lib/fog/compute/parsers/slicehost/get_image.rb +26 -0
  212. data/lib/fog/compute/parsers/slicehost/get_images.rb +30 -0
  213. data/lib/fog/compute/parsers/slicehost/get_slice.rb +31 -0
  214. data/lib/fog/compute/parsers/slicehost/get_slices.rb +35 -0
  215. data/lib/fog/compute/parsers/terremark_ecloud/get_catalog.rb +36 -0
  216. data/lib/fog/compute/parsers/terremark_ecloud/get_catalog_item.rb +43 -0
  217. data/lib/fog/compute/parsers/terremark_ecloud/get_ip_addresses.rb +27 -0
  218. data/lib/fog/compute/parsers/terremark_ecloud/get_network.rb +59 -0
  219. data/lib/fog/compute/parsers/terremark_ecloud/get_organization.rb +35 -0
  220. data/lib/fog/compute/parsers/terremark_ecloud/get_vdc.rb +110 -0
  221. data/lib/fog/compute/parsers/terremark_ecloud/get_versions.rb +28 -0
  222. data/lib/fog/compute/parsers/terremark_ecloud/login.rb +27 -0
  223. data/lib/fog/compute/rackspace.rb +144 -0
  224. data/lib/fog/compute/requests/aws/allocate_address.rb +51 -0
  225. data/lib/fog/compute/requests/aws/associate_address.rb +57 -0
  226. data/lib/fog/compute/requests/aws/attach_volume.rb +81 -0
  227. data/lib/fog/compute/requests/aws/authorize_security_group_ingress.rb +86 -0
  228. data/lib/fog/compute/requests/aws/create_image.rb +64 -0
  229. data/lib/fog/compute/requests/aws/create_key_pair.rb +54 -0
  230. data/lib/fog/compute/requests/aws/create_security_group.rb +53 -0
  231. data/lib/fog/compute/requests/aws/create_snapshot.rb +71 -0
  232. data/lib/fog/compute/requests/aws/create_tags.rb +78 -0
  233. data/lib/fog/compute/requests/aws/create_volume.rb +74 -0
  234. data/lib/fog/compute/requests/aws/delete_key_pair.rb +43 -0
  235. data/lib/fog/compute/requests/aws/delete_security_group.rb +45 -0
  236. data/lib/fog/compute/requests/aws/delete_snapshot.rb +46 -0
  237. data/lib/fog/compute/requests/aws/delete_tags.rb +45 -0
  238. data/lib/fog/compute/requests/aws/delete_volume.rb +52 -0
  239. data/lib/fog/compute/requests/aws/deregister_image.rb +51 -0
  240. data/lib/fog/compute/requests/aws/describe_addresses.rb +64 -0
  241. data/lib/fog/compute/requests/aws/describe_availability_zones.rb +70 -0
  242. data/lib/fog/compute/requests/aws/describe_images.rb +112 -0
  243. data/lib/fog/compute/requests/aws/describe_instances.rb +201 -0
  244. data/lib/fog/compute/requests/aws/describe_key_pairs.rb +66 -0
  245. data/lib/fog/compute/requests/aws/describe_regions.rb +66 -0
  246. data/lib/fog/compute/requests/aws/describe_reserved_instances.rb +52 -0
  247. data/lib/fog/compute/requests/aws/describe_security_groups.rb +95 -0
  248. data/lib/fog/compute/requests/aws/describe_snapshots.rb +120 -0
  249. data/lib/fog/compute/requests/aws/describe_tags.rb +42 -0
  250. data/lib/fog/compute/requests/aws/describe_volumes.rb +118 -0
  251. data/lib/fog/compute/requests/aws/detach_volume.rb +58 -0
  252. data/lib/fog/compute/requests/aws/disassociate_address.rb +52 -0
  253. data/lib/fog/compute/requests/aws/get_console_output.rb +52 -0
  254. data/lib/fog/compute/requests/aws/import_key_pair.rb +54 -0
  255. data/lib/fog/compute/requests/aws/modify_image_attributes.rb +39 -0
  256. data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +38 -0
  257. data/lib/fog/compute/requests/aws/reboot_instances.rb +50 -0
  258. data/lib/fog/compute/requests/aws/register_image.rb +89 -0
  259. data/lib/fog/compute/requests/aws/release_address.rb +43 -0
  260. data/lib/fog/compute/requests/aws/revoke_security_group_ingress.rb +74 -0
  261. data/lib/fog/compute/requests/aws/run_instances.rb +167 -0
  262. data/lib/fog/compute/requests/aws/start_instances.rb +38 -0
  263. data/lib/fog/compute/requests/aws/stop_instances.rb +38 -0
  264. data/lib/fog/compute/requests/aws/terminate_instances.rb +94 -0
  265. data/lib/fog/compute/requests/bluebox/create_block.rb +41 -0
  266. data/lib/fog/compute/requests/bluebox/destroy_block.rb +34 -0
  267. data/lib/fog/compute/requests/bluebox/get_block.rb +34 -0
  268. data/lib/fog/compute/requests/bluebox/get_blocks.rb +36 -0
  269. data/lib/fog/compute/requests/bluebox/get_product.rb +34 -0
  270. data/lib/fog/compute/requests/bluebox/get_products.rb +33 -0
  271. data/lib/fog/compute/requests/bluebox/get_template.rb +34 -0
  272. data/lib/fog/compute/requests/bluebox/get_templates.rb +34 -0
  273. data/lib/fog/compute/requests/bluebox/reboot_block.rb +35 -0
  274. data/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +28 -0
  275. data/lib/fog/compute/requests/brightbox/create_api_client.rb +27 -0
  276. data/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +27 -0
  277. data/lib/fog/compute/requests/brightbox/create_image.rb +27 -0
  278. data/lib/fog/compute/requests/brightbox/create_load_balancer.rb +27 -0
  279. data/lib/fog/compute/requests/brightbox/create_server.rb +27 -0
  280. data/lib/fog/compute/requests/brightbox/destroy_api_client.rb +28 -0
  281. data/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +28 -0
  282. data/lib/fog/compute/requests/brightbox/destroy_image.rb +28 -0
  283. data/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +28 -0
  284. data/lib/fog/compute/requests/brightbox/destroy_server.rb +28 -0
  285. data/lib/fog/compute/requests/brightbox/get_account.rb +27 -0
  286. data/lib/fog/compute/requests/brightbox/get_api_client.rb +28 -0
  287. data/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +28 -0
  288. data/lib/fog/compute/requests/brightbox/get_image.rb +28 -0
  289. data/lib/fog/compute/requests/brightbox/get_interface.rb +28 -0
  290. data/lib/fog/compute/requests/brightbox/get_load_balancer.rb +28 -0
  291. data/lib/fog/compute/requests/brightbox/get_server.rb +28 -0
  292. data/lib/fog/compute/requests/brightbox/get_server_type.rb +28 -0
  293. data/lib/fog/compute/requests/brightbox/get_user.rb +28 -0
  294. data/lib/fog/compute/requests/brightbox/get_zone.rb +28 -0
  295. data/lib/fog/compute/requests/brightbox/list_api_clients.rb +27 -0
  296. data/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +27 -0
  297. data/lib/fog/compute/requests/brightbox/list_images.rb +27 -0
  298. data/lib/fog/compute/requests/brightbox/list_load_balancers.rb +27 -0
  299. data/lib/fog/compute/requests/brightbox/list_server_types.rb +27 -0
  300. data/lib/fog/compute/requests/brightbox/list_servers.rb +27 -0
  301. data/lib/fog/compute/requests/brightbox/list_users.rb +27 -0
  302. data/lib/fog/compute/requests/brightbox/list_zones.rb +27 -0
  303. data/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +28 -0
  304. data/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +28 -0
  305. data/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +27 -0
  306. data/lib/fog/compute/requests/brightbox/resize_server.rb +27 -0
  307. data/lib/fog/compute/requests/brightbox/shutdown_server.rb +28 -0
  308. data/lib/fog/compute/requests/brightbox/snapshot_server.rb +28 -0
  309. data/lib/fog/compute/requests/brightbox/start_server.rb +28 -0
  310. data/lib/fog/compute/requests/brightbox/stop_server.rb +28 -0
  311. data/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +28 -0
  312. data/lib/fog/compute/requests/brightbox/update_account.rb +28 -0
  313. data/lib/fog/compute/requests/brightbox/update_api_client.rb +29 -0
  314. data/lib/fog/compute/requests/brightbox/update_image.rb +29 -0
  315. data/lib/fog/compute/requests/brightbox/update_load_balancer.rb +29 -0
  316. data/lib/fog/compute/requests/brightbox/update_server.rb +29 -0
  317. data/lib/fog/compute/requests/brightbox/update_user.rb +29 -0
  318. data/lib/fog/compute/requests/go_grid/common_lookup_list.rb +36 -0
  319. data/lib/fog/compute/requests/go_grid/grid_image_get.rb +41 -0
  320. data/lib/fog/compute/requests/go_grid/grid_image_list.rb +44 -0
  321. data/lib/fog/compute/requests/go_grid/grid_ip_list.rb +38 -0
  322. data/lib/fog/compute/requests/go_grid/grid_loadbalancer_list.rb +36 -0
  323. data/lib/fog/compute/requests/go_grid/grid_server_add.rb +44 -0
  324. data/lib/fog/compute/requests/go_grid/grid_server_delete.rb +33 -0
  325. data/lib/fog/compute/requests/go_grid/grid_server_get.rb +33 -0
  326. data/lib/fog/compute/requests/go_grid/grid_server_list.rb +38 -0
  327. data/lib/fog/compute/requests/go_grid/grid_server_power.rb +34 -0
  328. data/lib/fog/compute/requests/linode/avail_datacenters.rb +31 -0
  329. data/lib/fog/compute/requests/linode/avail_distributions.rb +38 -0
  330. data/lib/fog/compute/requests/linode/avail_kernels.rb +36 -0
  331. data/lib/fog/compute/requests/linode/avail_linodeplans.rb +35 -0
  332. data/lib/fog/compute/requests/linode/avail_stackscripts.rb +37 -0
  333. data/lib/fog/compute/requests/linode/linode_create.rb +41 -0
  334. data/lib/fog/compute/requests/linode/linode_delete.rb +36 -0
  335. data/lib/fog/compute/requests/linode/linode_list.rb +38 -0
  336. data/lib/fog/compute/requests/linode/linode_reboot.rb +36 -0
  337. data/lib/fog/compute/requests/new_servers/add_server.rb +41 -0
  338. data/lib/fog/compute/requests/new_servers/cancel_server.rb +38 -0
  339. data/lib/fog/compute/requests/new_servers/get_server.rb +44 -0
  340. data/lib/fog/compute/requests/new_servers/list_images.rb +35 -0
  341. data/lib/fog/compute/requests/new_servers/list_plans.rb +38 -0
  342. data/lib/fog/compute/requests/new_servers/list_servers.rb +44 -0
  343. data/lib/fog/compute/requests/new_servers/reboot_server.rb +32 -0
  344. data/lib/fog/compute/requests/rackspace/confirm_resized_server.rb +34 -0
  345. data/lib/fog/compute/requests/rackspace/create_image.rb +62 -0
  346. data/lib/fog/compute/requests/rackspace/create_server.rb +94 -0
  347. data/lib/fog/compute/requests/rackspace/delete_image.rb +45 -0
  348. data/lib/fog/compute/requests/rackspace/delete_server.rb +43 -0
  349. data/lib/fog/compute/requests/rackspace/get_flavor_details.rb +52 -0
  350. data/lib/fog/compute/requests/rackspace/get_image_details.rb +35 -0
  351. data/lib/fog/compute/requests/rackspace/get_server_details.rb +52 -0
  352. data/lib/fog/compute/requests/rackspace/list_addresses.rb +43 -0
  353. data/lib/fog/compute/requests/rackspace/list_flavors.rb +45 -0
  354. data/lib/fog/compute/requests/rackspace/list_flavors_detail.rb +47 -0
  355. data/lib/fog/compute/requests/rackspace/list_images.rb +40 -0
  356. data/lib/fog/compute/requests/rackspace/list_images_detail.rb +49 -0
  357. data/lib/fog/compute/requests/rackspace/list_private_addresses.rb +41 -0
  358. data/lib/fog/compute/requests/rackspace/list_public_addresses.rb +41 -0
  359. data/lib/fog/compute/requests/rackspace/list_servers.rb +41 -0
  360. data/lib/fog/compute/requests/rackspace/list_servers_detail.rb +56 -0
  361. data/lib/fog/compute/requests/rackspace/reboot_server.rb +30 -0
  362. data/lib/fog/compute/requests/rackspace/resize_server.rb +39 -0
  363. data/lib/fog/compute/requests/rackspace/revert_resized_server.rb +35 -0
  364. data/lib/fog/compute/requests/rackspace/server_action.rb +33 -0
  365. data/lib/fog/compute/requests/rackspace/update_server.rb +45 -0
  366. data/lib/fog/compute/requests/slicehost/create_slice.rb +49 -0
  367. data/lib/fog/compute/requests/slicehost/delete_slice.rb +31 -0
  368. data/lib/fog/compute/requests/slicehost/get_backups.rb +37 -0
  369. data/lib/fog/compute/requests/slicehost/get_flavor.rb +40 -0
  370. data/lib/fog/compute/requests/slicehost/get_flavors.rb +37 -0
  371. data/lib/fog/compute/requests/slicehost/get_image.rb +38 -0
  372. data/lib/fog/compute/requests/slicehost/get_images.rb +35 -0
  373. data/lib/fog/compute/requests/slicehost/get_slice.rb +46 -0
  374. data/lib/fog/compute/requests/slicehost/get_slices.rb +43 -0
  375. data/lib/fog/compute/requests/slicehost/reboot_slice.rb +44 -0
  376. data/lib/fog/compute/requests/terremark_ecloud/get_catalog.rb +27 -0
  377. data/lib/fog/compute/requests/terremark_ecloud/get_catalog_item.rb +27 -0
  378. data/lib/fog/compute/requests/terremark_ecloud/get_ip_addresses.rb +27 -0
  379. data/lib/fog/compute/requests/terremark_ecloud/get_network.rb +27 -0
  380. data/lib/fog/compute/requests/terremark_ecloud/get_organization.rb +27 -0
  381. data/lib/fog/compute/requests/terremark_ecloud/get_vdc.rb +27 -0
  382. data/lib/fog/compute/requests/terremark_ecloud/get_versions.rb +32 -0
  383. data/lib/fog/compute/slicehost.rb +107 -0
  384. data/lib/fog/compute/terremark_ecloud.rb +109 -0
  385. data/lib/fog/compute.rb +40 -0
  386. data/lib/fog/core/attributes.rb +178 -0
  387. data/lib/fog/core/collection.rb +126 -0
  388. data/lib/fog/core/connection.rb +35 -0
  389. data/lib/fog/core/credentials.rb +88 -0
  390. data/lib/fog/core/deprecation.rb +23 -0
  391. data/lib/fog/core/errors.rb +20 -0
  392. data/lib/fog/core/hmac.rb +48 -0
  393. data/lib/fog/core/mock.rb +68 -0
  394. data/lib/fog/core/model.rb +56 -0
  395. data/lib/fog/core/parser.rb +97 -0
  396. data/lib/fog/core/provider.rb +14 -0
  397. data/lib/fog/core/service.rb +158 -0
  398. data/lib/fog/core/ssh.rb +120 -0
  399. data/lib/fog/core/time.rb +21 -0
  400. data/lib/fog/core/wait_for.rb +17 -0
  401. data/lib/fog/core.rb +31 -0
  402. data/lib/fog/dns/aws.rb +120 -0
  403. data/lib/fog/dns/linode.rb +99 -0
  404. data/lib/fog/dns/models/aws/record.rb +64 -0
  405. data/lib/fog/dns/models/aws/records.rb +49 -0
  406. data/lib/fog/dns/models/aws/zone.rb +53 -0
  407. data/lib/fog/dns/models/aws/zones.rb +33 -0
  408. data/lib/fog/dns/models/linode/record.rb +69 -0
  409. data/lib/fog/dns/models/linode/records.rb +37 -0
  410. data/lib/fog/dns/models/linode/zone.rb +84 -0
  411. data/lib/fog/dns/models/linode/zones.rb +29 -0
  412. data/lib/fog/dns/models/slicehost/record.rb +66 -0
  413. data/lib/fog/dns/models/slicehost/records.rb +36 -0
  414. data/lib/fog/dns/models/slicehost/zone.rb +69 -0
  415. data/lib/fog/dns/models/slicehost/zones.rb +28 -0
  416. data/lib/fog/dns/models/zerigo/record.rb +65 -0
  417. data/lib/fog/dns/models/zerigo/records.rb +41 -0
  418. data/lib/fog/dns/models/zerigo/zone.rb +88 -0
  419. data/lib/fog/dns/models/zerigo/zones.rb +30 -0
  420. data/lib/fog/dns/parsers/aws/change_resource_record_sets.rb +26 -0
  421. data/lib/fog/dns/parsers/aws/create_hosted_zone.rb +55 -0
  422. data/lib/fog/dns/parsers/aws/delete_hosted_zone.rb +25 -0
  423. data/lib/fog/dns/parsers/aws/get_change.rb +26 -0
  424. data/lib/fog/dns/parsers/aws/get_hosted_zone.rb +43 -0
  425. data/lib/fog/dns/parsers/aws/list_hosted_zones.rb +37 -0
  426. data/lib/fog/dns/parsers/aws/list_resource_record_sets.rb +46 -0
  427. data/lib/fog/dns/parsers/slicehost/create_record.rb +26 -0
  428. data/lib/fog/dns/parsers/slicehost/create_zone.rb +26 -0
  429. data/lib/fog/dns/parsers/slicehost/get_record.rb +26 -0
  430. data/lib/fog/dns/parsers/slicehost/get_records.rb +30 -0
  431. data/lib/fog/dns/parsers/slicehost/get_zone.rb +26 -0
  432. data/lib/fog/dns/parsers/slicehost/get_zones.rb +30 -0
  433. data/lib/fog/dns/parsers/zerigo/count_hosts.rb +24 -0
  434. data/lib/fog/dns/parsers/zerigo/count_zones.rb +24 -0
  435. data/lib/fog/dns/parsers/zerigo/create_host.rb +26 -0
  436. data/lib/fog/dns/parsers/zerigo/create_zone.rb +26 -0
  437. data/lib/fog/dns/parsers/zerigo/find_hosts.rb +30 -0
  438. data/lib/fog/dns/parsers/zerigo/get_host.rb +26 -0
  439. data/lib/fog/dns/parsers/zerigo/get_zone.rb +56 -0
  440. data/lib/fog/dns/parsers/zerigo/get_zone_stats.rb +26 -0
  441. data/lib/fog/dns/parsers/zerigo/list_hosts.rb +30 -0
  442. data/lib/fog/dns/parsers/zerigo/list_zones.rb +30 -0
  443. data/lib/fog/dns/requests/aws/change_resource_record_sets.rb +90 -0
  444. data/lib/fog/dns/requests/aws/create_hosted_zone.rb +68 -0
  445. data/lib/fog/dns/requests/aws/delete_hosted_zone.rb +48 -0
  446. data/lib/fog/dns/requests/aws/get_change.rb +47 -0
  447. data/lib/fog/dns/requests/aws/get_hosted_zone.rb +51 -0
  448. data/lib/fog/dns/requests/aws/list_hosted_zones.rb +63 -0
  449. data/lib/fog/dns/requests/aws/list_resource_record_sets.rb +68 -0
  450. data/lib/fog/dns/requests/linode/domain_create.rb +51 -0
  451. data/lib/fog/dns/requests/linode/domain_delete.rb +35 -0
  452. data/lib/fog/dns/requests/linode/domain_list.rb +50 -0
  453. data/lib/fog/dns/requests/linode/domain_resource_create.rb +52 -0
  454. data/lib/fog/dns/requests/linode/domain_resource_delete.rb +36 -0
  455. data/lib/fog/dns/requests/linode/domain_resource_list.rb +51 -0
  456. data/lib/fog/dns/requests/linode/domain_resource_update.rb +54 -0
  457. data/lib/fog/dns/requests/linode/domain_update.rb +48 -0
  458. data/lib/fog/dns/requests/slicehost/create_record.rb +60 -0
  459. data/lib/fog/dns/requests/slicehost/create_zone.rb +54 -0
  460. data/lib/fog/dns/requests/slicehost/delete_record.rb +31 -0
  461. data/lib/fog/dns/requests/slicehost/delete_zone.rb +31 -0
  462. data/lib/fog/dns/requests/slicehost/get_record.rb +40 -0
  463. data/lib/fog/dns/requests/slicehost/get_records.rb +41 -0
  464. data/lib/fog/dns/requests/slicehost/get_zone.rb +40 -0
  465. data/lib/fog/dns/requests/slicehost/get_zones.rb +38 -0
  466. data/lib/fog/dns/requests/zerigo/count_hosts.rb +36 -0
  467. data/lib/fog/dns/requests/zerigo/count_zones.rb +36 -0
  468. data/lib/fog/dns/requests/zerigo/create_host.rb +70 -0
  469. data/lib/fog/dns/requests/zerigo/create_zone.rb +97 -0
  470. data/lib/fog/dns/requests/zerigo/delete_host.rb +32 -0
  471. data/lib/fog/dns/requests/zerigo/delete_zone.rb +33 -0
  472. data/lib/fog/dns/requests/zerigo/find_hosts.rb +63 -0
  473. data/lib/fog/dns/requests/zerigo/get_host.rb +47 -0
  474. data/lib/fog/dns/requests/zerigo/get_zone.rb +57 -0
  475. data/lib/fog/dns/requests/zerigo/get_zone_stats.rb +44 -0
  476. data/lib/fog/dns/requests/zerigo/list_hosts.rb +48 -0
  477. data/lib/fog/dns/requests/zerigo/list_zones.rb +53 -0
  478. data/lib/fog/dns/requests/zerigo/update_host.rb +60 -0
  479. data/lib/fog/dns/requests/zerigo/update_zone.rb +78 -0
  480. data/lib/fog/dns/slicehost.rb +103 -0
  481. data/lib/fog/dns/zerigo.rb +113 -0
  482. data/lib/fog/dns.rb +25 -0
  483. data/lib/fog/providers/aws.rb +181 -0
  484. data/lib/fog/providers/bluebox.rb +19 -0
  485. data/lib/fog/providers/brightbox.rb +9 -0
  486. data/lib/fog/providers/go_grid.rb +19 -0
  487. data/lib/fog/providers/google.rb +26 -0
  488. data/lib/fog/providers/linode.rb +21 -0
  489. data/lib/fog/providers/local.rb +19 -0
  490. data/lib/fog/providers/new_servers.rb +22 -0
  491. data/lib/fog/providers/rackspace.rb +35 -0
  492. data/lib/fog/providers/slicehost.rb +23 -0
  493. data/lib/fog/providers/terremark_ecloud.rb +17 -0
  494. data/lib/fog/providers/zerigo.rb +14 -0
  495. data/lib/fog/providers.rb +12 -0
  496. data/lib/fog/storage/aws.rb +362 -0
  497. data/lib/fog/storage/google.rb +277 -0
  498. data/lib/fog/storage/local.rb +75 -0
  499. data/lib/fog/storage/models/aws/directories.rb +43 -0
  500. data/lib/fog/storage/models/aws/directory.rb +103 -0
  501. data/lib/fog/storage/models/aws/file.rb +147 -0
  502. data/lib/fog/storage/models/aws/files.rb +79 -0
  503. data/lib/fog/storage/models/google/directories.rb +43 -0
  504. data/lib/fog/storage/models/google/directory.rb +81 -0
  505. data/lib/fog/storage/models/google/file.rb +148 -0
  506. data/lib/fog/storage/models/google/files.rb +79 -0
  507. data/lib/fog/storage/models/local/directories.rb +33 -0
  508. data/lib/fog/storage/models/local/directory.rb +60 -0
  509. data/lib/fog/storage/models/local/file.rb +75 -0
  510. data/lib/fog/storage/models/local/files.rb +84 -0
  511. data/lib/fog/storage/models/rackspace/directories.rb +39 -0
  512. data/lib/fog/storage/models/rackspace/directory.rb +66 -0
  513. data/lib/fog/storage/models/rackspace/file.rb +80 -0
  514. data/lib/fog/storage/models/rackspace/files.rb +75 -0
  515. data/lib/fog/storage/parsers/aws/access_control_list.rb +46 -0
  516. data/lib/fog/storage/parsers/aws/complete_multipart_upload.rb +24 -0
  517. data/lib/fog/storage/parsers/aws/copy_object.rb +22 -0
  518. data/lib/fog/storage/parsers/aws/get_bucket.rb +62 -0
  519. data/lib/fog/storage/parsers/aws/get_bucket_location.rb +20 -0
  520. data/lib/fog/storage/parsers/aws/get_bucket_logging.rb +40 -0
  521. data/lib/fog/storage/parsers/aws/get_bucket_object_versions.rb +88 -0
  522. data/lib/fog/storage/parsers/aws/get_bucket_versioning.rb +24 -0
  523. data/lib/fog/storage/parsers/aws/get_request_payment.rb +20 -0
  524. data/lib/fog/storage/parsers/aws/get_service.rb +32 -0
  525. data/lib/fog/storage/parsers/aws/initiate_multipart_upload.rb +24 -0
  526. data/lib/fog/storage/parsers/aws/list_multipart_uploads.rb +56 -0
  527. data/lib/fog/storage/parsers/aws/list_parts.rb +40 -0
  528. data/lib/fog/storage/parsers/google/access_control_list.rb +48 -0
  529. data/lib/fog/storage/parsers/google/copy_object.rb +22 -0
  530. data/lib/fog/storage/parsers/google/get_bucket.rb +62 -0
  531. data/lib/fog/storage/parsers/google/get_bucket_logging.rb +40 -0
  532. data/lib/fog/storage/parsers/google/get_bucket_object_versions.rb +88 -0
  533. data/lib/fog/storage/parsers/google/get_bucket_versioning.rb +24 -0
  534. data/lib/fog/storage/parsers/google/get_request_payment.rb +20 -0
  535. data/lib/fog/storage/parsers/google/get_service.rb +32 -0
  536. data/lib/fog/storage/rackspace.rb +164 -0
  537. data/lib/fog/storage/requests/aws/abort_multipart_upload.rb +38 -0
  538. data/lib/fog/storage/requests/aws/complete_multipart_upload.rb +60 -0
  539. data/lib/fog/storage/requests/aws/copy_object.rb +75 -0
  540. data/lib/fog/storage/requests/aws/delete_bucket.rb +50 -0
  541. data/lib/fog/storage/requests/aws/delete_object.rb +49 -0
  542. data/lib/fog/storage/requests/aws/get_bucket.rb +111 -0
  543. data/lib/fog/storage/requests/aws/get_bucket_acl.rb +66 -0
  544. data/lib/fog/storage/requests/aws/get_bucket_location.rb +52 -0
  545. data/lib/fog/storage/requests/aws/get_bucket_logging.rb +58 -0
  546. data/lib/fog/storage/requests/aws/get_bucket_object_versions.rb +83 -0
  547. data/lib/fog/storage/requests/aws/get_bucket_versioning.rb +48 -0
  548. data/lib/fog/storage/requests/aws/get_object.rb +107 -0
  549. data/lib/fog/storage/requests/aws/get_object_acl.rb +77 -0
  550. data/lib/fog/storage/requests/aws/get_object_torrent.rb +58 -0
  551. data/lib/fog/storage/requests/aws/get_object_url.rb +57 -0
  552. data/lib/fog/storage/requests/aws/get_request_payment.rb +52 -0
  553. data/lib/fog/storage/requests/aws/get_service.rb +57 -0
  554. data/lib/fog/storage/requests/aws/head_object.rb +68 -0
  555. data/lib/fog/storage/requests/aws/initiate_multipart_upload.rb +55 -0
  556. data/lib/fog/storage/requests/aws/list_multipart_uploads.rb +68 -0
  557. data/lib/fog/storage/requests/aws/list_parts.rb +67 -0
  558. data/lib/fog/storage/requests/aws/post_object_hidden_fields.rb +50 -0
  559. data/lib/fog/storage/requests/aws/put_bucket.rb +77 -0
  560. data/lib/fog/storage/requests/aws/put_bucket_acl.rb +84 -0
  561. data/lib/fog/storage/requests/aws/put_bucket_logging.rb +91 -0
  562. data/lib/fog/storage/requests/aws/put_bucket_versioning.rb +44 -0
  563. data/lib/fog/storage/requests/aws/put_object.rb +91 -0
  564. data/lib/fog/storage/requests/aws/put_object_acl.rb +93 -0
  565. data/lib/fog/storage/requests/aws/put_object_url.rb +57 -0
  566. data/lib/fog/storage/requests/aws/put_request_payment.rb +51 -0
  567. data/lib/fog/storage/requests/aws/sync_clock.rb +28 -0
  568. data/lib/fog/storage/requests/aws/upload_part.rb +51 -0
  569. data/lib/fog/storage/requests/google/copy_object.rb +72 -0
  570. data/lib/fog/storage/requests/google/delete_bucket.rb +46 -0
  571. data/lib/fog/storage/requests/google/delete_object.rb +50 -0
  572. data/lib/fog/storage/requests/google/get_bucket.rb +111 -0
  573. data/lib/fog/storage/requests/google/get_bucket_acl.rb +63 -0
  574. data/lib/fog/storage/requests/google/get_object.rb +104 -0
  575. data/lib/fog/storage/requests/google/get_object_acl.rb +74 -0
  576. data/lib/fog/storage/requests/google/get_object_torrent.rb +55 -0
  577. data/lib/fog/storage/requests/google/get_object_url.rb +54 -0
  578. data/lib/fog/storage/requests/google/get_service.rb +53 -0
  579. data/lib/fog/storage/requests/google/head_object.rb +64 -0
  580. data/lib/fog/storage/requests/google/put_bucket.rb +75 -0
  581. data/lib/fog/storage/requests/google/put_bucket_acl.rb +81 -0
  582. data/lib/fog/storage/requests/google/put_object.rb +86 -0
  583. data/lib/fog/storage/requests/google/put_object_url.rb +54 -0
  584. data/lib/fog/storage/requests/rackspace/delete_container.rb +31 -0
  585. data/lib/fog/storage/requests/rackspace/delete_object.rb +32 -0
  586. data/lib/fog/storage/requests/rackspace/get_container.rb +52 -0
  587. data/lib/fog/storage/requests/rackspace/get_containers.rb +41 -0
  588. data/lib/fog/storage/requests/rackspace/get_object.rb +33 -0
  589. data/lib/fog/storage/requests/rackspace/head_container.rb +37 -0
  590. data/lib/fog/storage/requests/rackspace/head_containers.rb +34 -0
  591. data/lib/fog/storage/requests/rackspace/head_object.rb +32 -0
  592. data/lib/fog/storage/requests/rackspace/put_container.rb +31 -0
  593. data/lib/fog/storage/requests/rackspace/put_object.rb +35 -0
  594. data/lib/fog/storage.rb +25 -0
  595. data/lib/fog/terremark/ecloud.rb +73 -0
  596. data/lib/fog/terremark/models/shared/address.rb +29 -0
  597. data/lib/fog/terremark/models/shared/addresses.rb +49 -0
  598. data/lib/fog/terremark/models/shared/network.rb +35 -0
  599. data/lib/fog/terremark/models/shared/networks.rb +52 -0
  600. data/lib/fog/terremark/models/shared/server.rb +110 -0
  601. data/lib/fog/terremark/models/shared/servers.rb +55 -0
  602. data/lib/fog/terremark/models/shared/task.rb +50 -0
  603. data/lib/fog/terremark/models/shared/tasks.rb +58 -0
  604. data/lib/fog/terremark/models/shared/vdc.rb +39 -0
  605. data/lib/fog/terremark/models/shared/vdcs.rb +52 -0
  606. data/lib/fog/terremark/parser.rb +19 -0
  607. data/lib/fog/terremark/parsers/shared/get_catalog.rb +46 -0
  608. data/lib/fog/terremark/parsers/shared/get_catalog_item.rb +46 -0
  609. data/lib/fog/terremark/parsers/shared/get_internet_services.rb +60 -0
  610. data/lib/fog/terremark/parsers/shared/get_network_ips.rb +29 -0
  611. data/lib/fog/terremark/parsers/shared/get_node_services.rb +36 -0
  612. data/lib/fog/terremark/parsers/shared/get_organization.rb +52 -0
  613. data/lib/fog/terremark/parsers/shared/get_organizations.rb +32 -0
  614. data/lib/fog/terremark/parsers/shared/get_public_ips.rb +30 -0
  615. data/lib/fog/terremark/parsers/shared/get_tasks_list.rb +52 -0
  616. data/lib/fog/terremark/parsers/shared/get_vapp_template.rb +46 -0
  617. data/lib/fog/terremark/parsers/shared/get_vdc.rb +123 -0
  618. data/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb +41 -0
  619. data/lib/fog/terremark/parsers/shared/internet_service.rb +65 -0
  620. data/lib/fog/terremark/parsers/shared/network.rb +51 -0
  621. data/lib/fog/terremark/parsers/shared/node_service.rb +32 -0
  622. data/lib/fog/terremark/parsers/shared/public_ip.rb +26 -0
  623. data/lib/fog/terremark/parsers/shared/task.rb +40 -0
  624. data/lib/fog/terremark/parsers/shared/vapp.rb +77 -0
  625. data/lib/fog/terremark/requests/shared/add_internet_service.rb +63 -0
  626. data/lib/fog/terremark/requests/shared/add_node_service.rb +63 -0
  627. data/lib/fog/terremark/requests/shared/create_internet_service.rb +63 -0
  628. data/lib/fog/terremark/requests/shared/delete_internet_service.rb +30 -0
  629. data/lib/fog/terremark/requests/shared/delete_node_service.rb +30 -0
  630. data/lib/fog/terremark/requests/shared/delete_public_ip.rb +30 -0
  631. data/lib/fog/terremark/requests/shared/delete_vapp.rb +30 -0
  632. data/lib/fog/terremark/requests/shared/deploy_vapp.rb +43 -0
  633. data/lib/fog/terremark/requests/shared/get_catalog.rb +40 -0
  634. data/lib/fog/terremark/requests/shared/get_catalog_item.rb +43 -0
  635. data/lib/fog/terremark/requests/shared/get_internet_services.rb +43 -0
  636. data/lib/fog/terremark/requests/shared/get_network.rb +73 -0
  637. data/lib/fog/terremark/requests/shared/get_network_ips.rb +40 -0
  638. data/lib/fog/terremark/requests/shared/get_node_services.rb +38 -0
  639. data/lib/fog/terremark/requests/shared/get_organization.rb +86 -0
  640. data/lib/fog/terremark/requests/shared/get_organizations.rb +49 -0
  641. data/lib/fog/terremark/requests/shared/get_public_ip.rb +41 -0
  642. data/lib/fog/terremark/requests/shared/get_public_ips.rb +72 -0
  643. data/lib/fog/terremark/requests/shared/get_task.rb +47 -0
  644. data/lib/fog/terremark/requests/shared/get_tasks_list.rb +40 -0
  645. data/lib/fog/terremark/requests/shared/get_vapp.rb +50 -0
  646. data/lib/fog/terremark/requests/shared/get_vapp_template.rb +43 -0
  647. data/lib/fog/terremark/requests/shared/get_vdc.rb +125 -0
  648. data/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb +79 -0
  649. data/lib/fog/terremark/requests/shared/power_off.rb +43 -0
  650. data/lib/fog/terremark/requests/shared/power_on.rb +43 -0
  651. data/lib/fog/terremark/requests/shared/power_reset.rb +43 -0
  652. data/lib/fog/terremark/requests/shared/power_shutdown.rb +32 -0
  653. data/lib/fog/terremark/shared.rb +289 -0
  654. data/lib/fog/terremark/vcloud.rb +117 -0
  655. data/lib/fog/terremark.rb +16 -0
  656. data/lib/fog/vcloud/collection.rb +30 -0
  657. data/lib/fog/vcloud/generators.rb +33 -0
  658. data/lib/fog/vcloud/mock_data_classes.rb +767 -0
  659. data/lib/fog/vcloud/model.rb +22 -0
  660. data/lib/fog/vcloud/models/vdc.rb +26 -0
  661. data/lib/fog/vcloud/models/vdcs.rb +35 -0
  662. data/lib/fog/vcloud/requests/get_network.rb +47 -0
  663. data/lib/fog/vcloud/requests/get_organization.rb +47 -0
  664. data/lib/fog/vcloud/requests/get_vdc.rb +82 -0
  665. data/lib/fog/vcloud/requests/get_versions.rb +34 -0
  666. data/lib/fog/vcloud/requests/login.rb +46 -0
  667. data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_service.rb +60 -0
  668. data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_services.rb +36 -0
  669. data/lib/fog/vcloud/terremark/ecloud/models/catalog.rb +31 -0
  670. data/lib/fog/vcloud/terremark/ecloud/models/catalog_item.rb +31 -0
  671. data/lib/fog/vcloud/terremark/ecloud/models/firewall_acl.rb +28 -0
  672. data/lib/fog/vcloud/terremark/ecloud/models/firewall_acls.rb +34 -0
  673. data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +99 -0
  674. data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +36 -0
  675. data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +51 -0
  676. data/lib/fog/vcloud/terremark/ecloud/models/ips.rb +35 -0
  677. data/lib/fog/vcloud/terremark/ecloud/models/network.rb +77 -0
  678. data/lib/fog/vcloud/terremark/ecloud/models/networks.rb +36 -0
  679. data/lib/fog/vcloud/terremark/ecloud/models/node.rb +47 -0
  680. data/lib/fog/vcloud/terremark/ecloud/models/nodes.rb +33 -0
  681. data/lib/fog/vcloud/terremark/ecloud/models/public_ip.rb +25 -0
  682. data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +39 -0
  683. data/lib/fog/vcloud/terremark/ecloud/models/server.rb +211 -0
  684. data/lib/fog/vcloud/terremark/ecloud/models/servers.rb +57 -0
  685. data/lib/fog/vcloud/terremark/ecloud/models/task.rb +23 -0
  686. data/lib/fog/vcloud/terremark/ecloud/models/tasks.rb +33 -0
  687. data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +83 -0
  688. data/lib/fog/vcloud/terremark/ecloud/models/vdcs.rb +42 -0
  689. data/lib/fog/vcloud/terremark/ecloud/requests/add_backup_internet_service.rb +111 -0
  690. data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +140 -0
  691. data/lib/fog/vcloud/terremark/ecloud/requests/add_node.rb +64 -0
  692. data/lib/fog/vcloud/terremark/ecloud/requests/clone_vapp.rb +50 -0
  693. data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +110 -0
  694. data/lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb +53 -0
  695. data/lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb +68 -0
  696. data/lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb +58 -0
  697. data/lib/fog/vcloud/terremark/ecloud/requests/configure_vapp.rb +147 -0
  698. data/lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb +25 -0
  699. data/lib/fog/vcloud/terremark/ecloud/requests/delete_node.rb +24 -0
  700. data/lib/fog/vcloud/terremark/ecloud/requests/delete_vapp.rb +32 -0
  701. data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog.rb +46 -0
  702. data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog_item.rb +49 -0
  703. data/lib/fog/vcloud/terremark/ecloud/requests/get_customization_options.rb +24 -0
  704. data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acl.rb +18 -0
  705. data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acls.rb +18 -0
  706. data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +84 -0
  707. data/lib/fog/vcloud/terremark/ecloud/requests/get_network.rb +47 -0
  708. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_extensions.rb +35 -0
  709. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ip.rb +45 -0
  710. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +37 -0
  711. data/lib/fog/vcloud/terremark/ecloud/requests/get_node.rb +42 -0
  712. data/lib/fog/vcloud/terremark/ecloud/requests/get_nodes.rb +43 -0
  713. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb +36 -0
  714. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb +41 -0
  715. data/lib/fog/vcloud/terremark/ecloud/requests/get_task.rb +18 -0
  716. data/lib/fog/vcloud/terremark/ecloud/requests/get_task_list.rb +19 -0
  717. data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp.rb +101 -0
  718. data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp_template.rb +18 -0
  719. data/lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb +87 -0
  720. data/lib/fog/vcloud/terremark/ecloud/requests/instantiate_vapp_template.rb +144 -0
  721. data/lib/fog/vcloud/terremark/ecloud/requests/power_off.rb +25 -0
  722. data/lib/fog/vcloud/terremark/ecloud/requests/power_on.rb +25 -0
  723. data/lib/fog/vcloud/terremark/ecloud/requests/power_reset.rb +18 -0
  724. data/lib/fog/vcloud/terremark/ecloud/requests/power_shutdown.rb +18 -0
  725. data/lib/fog/vcloud/terremark/ecloud.rb +187 -0
  726. data/lib/fog/vcloud/terremark/vcloud/requests/get_vdc.rb +57 -0
  727. data/lib/fog/vcloud/terremark/vcloud.rb +39 -0
  728. data/lib/fog/vcloud.rb +337 -0
  729. data/lib/fog.rb +19 -0
  730. data/spec/aws/models/compute/address_spec.rb +103 -0
  731. data/spec/aws/models/compute/addresses_spec.rb +70 -0
  732. data/spec/aws/models/compute/key_pair_spec.rb +86 -0
  733. data/spec/aws/models/compute/key_pairs_spec.rb +71 -0
  734. data/spec/aws/models/compute/security_group_spec.rb +88 -0
  735. data/spec/aws/models/compute/security_groups_spec.rb +71 -0
  736. data/spec/aws/models/compute/server_spec.rb +105 -0
  737. data/spec/aws/models/compute/snapshot_spec.rb +79 -0
  738. data/spec/aws/models/compute/snapshots_spec.rb +85 -0
  739. data/spec/aws/models/compute/volume_spec.rb +174 -0
  740. data/spec/aws/models/compute/volumes_spec.rb +71 -0
  741. data/spec/spec_helper.rb +13 -0
  742. data/spec/vcloud/bin_spec.rb +28 -0
  743. data/spec/vcloud/models/vdc_spec.rb +52 -0
  744. data/spec/vcloud/models/vdcs_spec.rb +1 -0
  745. data/spec/vcloud/requests/get_network_spec.rb +44 -0
  746. data/spec/vcloud/requests/get_organization_spec.rb +53 -0
  747. data/spec/vcloud/requests/get_vdc_spec.rb +63 -0
  748. data/spec/vcloud/requests/get_versions_spec.rb +54 -0
  749. data/spec/vcloud/requests/login_spec.rb +24 -0
  750. data/spec/vcloud/spec_helper.rb +398 -0
  751. data/spec/vcloud/terremark/ecloud/models/backup_internet_service_spec.rb +49 -0
  752. data/spec/vcloud/terremark/ecloud/models/backup_internet_services_spec.rb +29 -0
  753. data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +81 -0
  754. data/spec/vcloud/terremark/ecloud/models/internet_services_spec.rb +29 -0
  755. data/spec/vcloud/terremark/ecloud/models/ip_spec.rb +33 -0
  756. data/spec/vcloud/terremark/ecloud/models/ips_spec.rb +28 -0
  757. data/spec/vcloud/terremark/ecloud/models/network_spec.rb +71 -0
  758. data/spec/vcloud/terremark/ecloud/models/networks_spec.rb +27 -0
  759. data/spec/vcloud/terremark/ecloud/models/node_spec.rb +38 -0
  760. data/spec/vcloud/terremark/ecloud/models/nodes_spec.rb +29 -0
  761. data/spec/vcloud/terremark/ecloud/models/public_ip_spec.rb +36 -0
  762. data/spec/vcloud/terremark/ecloud/models/public_ips_spec.rb +27 -0
  763. data/spec/vcloud/terremark/ecloud/models/server_spec.rb +62 -0
  764. data/spec/vcloud/terremark/ecloud/models/vdc_spec.rb +63 -0
  765. data/spec/vcloud/terremark/ecloud/models/vdcs_spec.rb +28 -0
  766. data/spec/vcloud/terremark/ecloud/requests/add_backup_internet_service_spec.rb +60 -0
  767. data/spec/vcloud/terremark/ecloud/requests/add_internet_service_spec.rb +65 -0
  768. data/spec/vcloud/terremark/ecloud/requests/add_node_spec.rb +56 -0
  769. data/spec/vcloud/terremark/ecloud/requests/configure_internet_service_spec.rb +61 -0
  770. data/spec/vcloud/terremark/ecloud/requests/configure_network_ip_spec.rb +55 -0
  771. data/spec/vcloud/terremark/ecloud/requests/configure_node_spec.rb +52 -0
  772. data/spec/vcloud/terremark/ecloud/requests/configure_vapp_spec.rb +71 -0
  773. data/spec/vcloud/terremark/ecloud/requests/delete_internet_service_spec.rb +34 -0
  774. data/spec/vcloud/terremark/ecloud/requests/delete_node_spec.rb +30 -0
  775. data/spec/vcloud/terremark/ecloud/requests/delete_vapp_spec.rb +92 -0
  776. data/spec/vcloud/terremark/ecloud/requests/get_catalog_item_spec.rb +63 -0
  777. data/spec/vcloud/terremark/ecloud/requests/get_catalog_spec.rb +44 -0
  778. data/spec/vcloud/terremark/ecloud/requests/get_customization_options_spec.rb +39 -0
  779. data/spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb +150 -0
  780. data/spec/vcloud/terremark/ecloud/requests/get_network_ip_spec.rb +40 -0
  781. data/spec/vcloud/terremark/ecloud/requests/get_network_ips_spec.rb +59 -0
  782. data/spec/vcloud/terremark/ecloud/requests/get_network_spec.rb +49 -0
  783. data/spec/vcloud/terremark/ecloud/requests/get_node_spec.rb +41 -0
  784. data/spec/vcloud/terremark/ecloud/requests/get_nodes_spec.rb +58 -0
  785. data/spec/vcloud/terremark/ecloud/requests/get_public_ip_spec.rb +38 -0
  786. data/spec/vcloud/terremark/ecloud/requests/get_public_ips_spec.rb +52 -0
  787. data/spec/vcloud/terremark/ecloud/requests/get_vapp_spec.rb +126 -0
  788. data/spec/vcloud/terremark/ecloud/requests/get_vdc_spec.rb +113 -0
  789. data/spec/vcloud/terremark/ecloud/requests/instantiate_vapp_template_spec.rb +96 -0
  790. data/spec/vcloud/terremark/ecloud/requests/login_spec.rb +10 -0
  791. data/spec/vcloud/terremark/ecloud/requests/power_off_spec.rb +34 -0
  792. data/spec/vcloud/terremark/ecloud/requests/power_on_spec.rb +34 -0
  793. data/spec/vcloud/vcloud_spec.rb +18 -0
  794. data/tests/aws/requests/iam/access_key_tests.rb +60 -0
  795. data/tests/aws/requests/iam/group_policy_tests.rb +42 -0
  796. data/tests/aws/requests/iam/group_tests.rb +47 -0
  797. data/tests/aws/requests/iam/helper.rb +15 -0
  798. data/tests/aws/requests/iam/user_policy_tests.rb +42 -0
  799. data/tests/aws/requests/iam/user_tests.rb +65 -0
  800. data/tests/aws/requests/simpledb/attributes_tests.rb +75 -0
  801. data/tests/aws/requests/simpledb/domain_tests.rb +51 -0
  802. data/tests/aws/requests/simpledb/helper.rb +16 -0
  803. data/tests/compute/helper.rb +36 -0
  804. data/tests/compute/models/flavors_tests.rb +9 -0
  805. data/tests/compute/models/server_tests.rb +9 -0
  806. data/tests/compute/models/servers_tests.rb +9 -0
  807. data/tests/compute/requests/aws/address_tests.rb +76 -0
  808. data/tests/compute/requests/aws/availability_zone_tests.rb +25 -0
  809. data/tests/compute/requests/aws/helper.rb +20 -0
  810. data/tests/compute/requests/aws/image_tests.rb +37 -0
  811. data/tests/compute/requests/aws/instance_tests.rb +121 -0
  812. data/tests/compute/requests/aws/key_pair_tests.rb +63 -0
  813. data/tests/compute/requests/aws/region_tests.rb +23 -0
  814. data/tests/compute/requests/aws/security_group_tests.rb +124 -0
  815. data/tests/compute/requests/aws/snapshot_tests.rb +57 -0
  816. data/tests/compute/requests/aws/tag_tests.rb +49 -0
  817. data/tests/compute/requests/aws/volume_tests.rb +102 -0
  818. data/tests/compute/requests/bluebox/block_tests.rb +80 -0
  819. data/tests/compute/requests/bluebox/helper.rb +17 -0
  820. data/tests/compute/requests/bluebox/product_tests.rb +28 -0
  821. data/tests/compute/requests/bluebox/template_tests.rb +35 -0
  822. data/tests/compute/requests/brightbox/account_tests.rb +40 -0
  823. data/tests/compute/requests/brightbox/api_client_tests.rb +49 -0
  824. data/tests/compute/requests/brightbox/cloud_ip_tests.rb +71 -0
  825. data/tests/compute/requests/brightbox/helper.rb +418 -0
  826. data/tests/compute/requests/brightbox/image_tests.rb +57 -0
  827. data/tests/compute/requests/brightbox/interface_tests.rb +30 -0
  828. data/tests/compute/requests/brightbox/load_balancer_tests.rb +74 -0
  829. data/tests/compute/requests/brightbox/server_tests.rb +70 -0
  830. data/tests/compute/requests/brightbox/server_type_tests.rb +33 -0
  831. data/tests/compute/requests/brightbox/user_tests.rb +41 -0
  832. data/tests/compute/requests/brightbox/zone_tests.rb +33 -0
  833. data/tests/compute/requests/go_grid/image_tests.rb +0 -0
  834. data/tests/compute/requests/linode/datacenter_tests.rb +19 -0
  835. data/tests/compute/requests/linode/distribution_tests.rb +32 -0
  836. data/tests/compute/requests/linode/helper.rb +16 -0
  837. data/tests/compute/requests/linode/linode_tests.rb +85 -0
  838. data/tests/compute/requests/linode/linodeplans_tests.rb +39 -0
  839. data/tests/compute/requests/rackspace/address_tests.rb +40 -0
  840. data/tests/compute/requests/rackspace/flavor_tests.rb +38 -0
  841. data/tests/compute/requests/rackspace/helper.rb +16 -0
  842. data/tests/compute/requests/rackspace/image_tests.rb +68 -0
  843. data/tests/compute/requests/rackspace/resize_tests.rb +33 -0
  844. data/tests/compute/requests/rackspace/server_tests.rb +92 -0
  845. data/tests/compute/requests/slicehost/backup_tests.rb +18 -0
  846. data/tests/compute/requests/slicehost/flavor_tests.rb +33 -0
  847. data/tests/compute/requests/slicehost/image_tests.rb +31 -0
  848. data/tests/compute/requests/slicehost/slice_tests.rb +75 -0
  849. data/tests/compute/requests/terremark_ecloud/catalog_tests.rb +47 -0
  850. data/tests/compute/requests/terremark_ecloud/helper.rb +45 -0
  851. data/tests/compute/requests/terremark_ecloud/network_tests.rb +30 -0
  852. data/tests/compute/requests/terremark_ecloud/organization_tests.rb +23 -0
  853. data/tests/compute/requests/terremark_ecloud/vdc_tests.rb +60 -0
  854. data/tests/core/attribute_tests.rb +45 -0
  855. data/tests/dns/helper.rb +19 -0
  856. data/tests/dns/models/record_tests.rb +25 -0
  857. data/tests/dns/models/records_tests.rb +25 -0
  858. data/tests/dns/models/zone_tests.rb +13 -0
  859. data/tests/dns/models/zones_tests.rb +13 -0
  860. data/tests/dns/requests/aws/dns_tests.rb +276 -0
  861. data/tests/dns/requests/linode/dns_tests.rb +262 -0
  862. data/tests/dns/requests/slicehost/dns_tests.rb +279 -0
  863. data/tests/dns/requests/zerigo/dns_tests.rb +374 -0
  864. data/tests/helper.rb +17 -0
  865. data/tests/helpers/collection_helper.rb +51 -0
  866. data/tests/helpers/compute/flavors_helper.rb +34 -0
  867. data/tests/helpers/compute/server_helper.rb +19 -0
  868. data/tests/helpers/compute/servers_helper.rb +11 -0
  869. data/tests/helpers/formats_helper.rb +70 -0
  870. data/tests/helpers/formats_helper_tests.rb +43 -0
  871. data/tests/helpers/mock_helper.rb +33 -0
  872. data/tests/helpers/model_helper.rb +28 -0
  873. data/tests/helpers/responds_to_helper.rb +13 -0
  874. data/tests/helpers/succeeds_helper.rb +12 -0
  875. data/tests/lorem.txt +1 -0
  876. data/tests/storage/helper.rb +16 -0
  877. data/tests/storage/models/directories_tests.rb +13 -0
  878. data/tests/storage/models/directory_test.rb +24 -0
  879. data/tests/storage/models/file_tests.rb +41 -0
  880. data/tests/storage/models/files_tests.rb +26 -0
  881. data/tests/storage/requests/aws/bucket_tests.rb +104 -0
  882. data/tests/storage/requests/aws/multipart_upload_tests.rb +135 -0
  883. data/tests/storage/requests/aws/object_tests.rb +81 -0
  884. data/tests/storage/requests/google/bucket_tests.rb +79 -0
  885. data/tests/storage/requests/google/object_tests.rb +81 -0
  886. data/tests/storage/requests/rackspace/container_tests.rb +64 -0
  887. data/tests/storage/requests/rackspace/object_tests.rb +69 -0
  888. metadata +1275 -0
data/.document ADDED
@@ -0,0 +1,3 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ *.gem
2
+ *.rbc
3
+ *.sw?
4
+ .bundle
5
+ .DS_Store
6
+ _site/*
7
+ coverage
8
+ doc/*
9
+ rdoc
10
+ pkg
11
+ spec/credentials.yml
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,45 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ fog (0.4.1)
5
+ builder
6
+ excon (>= 0.4.0)
7
+ formatador (>= 0.0.16)
8
+ json
9
+ mime-types
10
+ net-ssh (>= 2.0.23)
11
+ nokogiri (>= 1.4.4)
12
+ ruby-hmac
13
+
14
+ GEM
15
+ remote: http://rubygems.org/
16
+ specs:
17
+ builder (3.0.0)
18
+ excon (0.4.0)
19
+ formatador (0.0.16)
20
+ json (1.4.6)
21
+ mime-types (1.16)
22
+ net-ssh (2.0.23)
23
+ nokogiri (1.4.4)
24
+ rake (0.8.7)
25
+ rspec (1.3.1)
26
+ ruby-hmac (0.4.0)
27
+ shindo (0.2.0)
28
+ formatador (>= 0.0.16)
29
+
30
+ PLATFORMS
31
+ ruby
32
+
33
+ DEPENDENCIES
34
+ builder
35
+ excon (>= 0.4.0)
36
+ fog!
37
+ formatador (>= 0.0.16)
38
+ json
39
+ mime-types
40
+ net-ssh (>= 2.0.23)
41
+ nokogiri (>= 1.4.4)
42
+ rake
43
+ rspec (= 1.3.1)
44
+ ruby-hmac
45
+ shindo (= 0.2.0)
data/README.rdoc ADDED
@@ -0,0 +1,176 @@
1
+ http://geemus.s3.amazonaws.com/fog.png
2
+
3
+ fog is the Ruby cloud computing library, top to bottom:
4
+
5
+ * Collections provide a simplified interface, making clouds easier to work with and switch between.
6
+ * Requests allow power users to get the most out of the features of each individual cloud.
7
+ * Mocks make testing and integrating a breeze.
8
+
9
+ == Getting Started
10
+
11
+ sudo gem install fog
12
+
13
+ Now type 'fog' to try stuff, confident that fog will let you know what to do. Here is an example of wading through server creation for Amazon Elastic Compute Cloud:
14
+
15
+ >> server = AWS.servers.create
16
+ ArgumentError: image_id is required for this operation
17
+
18
+ >> server = AWS.servers.create(:image_id => 'ami-5ee70037')
19
+ <Fog::AWS::EC2::Server [...]>
20
+
21
+ >> server.destroy # cleanup after yourself or regret it, trust me
22
+ true
23
+
24
+ == Collections
25
+
26
+ A high level interface to each cloud is provided through collections, such as `images` and `servers`.
27
+ You can see a list of available collections by calling `collections` on the connection object. You can try it out using the `fog` command:
28
+
29
+ >> AWS.collections
30
+ [:addresses, :directories, ..., :volumes, :zones]
31
+
32
+ Some collections are available across multiple providers:
33
+
34
+ * compute providers have +flavors+, +images+ and +servers+
35
+ * dns providers have +zones+ and +records+
36
+ * storage providers have +directories+ and +files+
37
+
38
+ Collections share basic CRUD type operations, such as:
39
+ * +all+ - fetch every object of that type from the provider.
40
+ * +create+ - initialize a new record locally and a remote resource with the provider.
41
+ * +get+ - fetch a single object by it's identity from the provider.
42
+ * +new+ - initialize a new record locally, but do not create a remote resource with the provider.
43
+
44
+ As an example, we'll try initializing and persisting a Rackspace Cloud server:
45
+
46
+ require 'fog'
47
+
48
+ compute = Fog::Compute.new(
49
+ :provider => 'Rackspace',
50
+ :rackspace_api_key => key,
51
+ :rackspace_username => username
52
+ )
53
+
54
+ # boot a gentoo server (flavor 1 = 256, image 3 = gentoo 2008.0)
55
+ server = compute.servers.create(:flavor_id => 1, :image_id => 3, :name => 'my_server')
56
+ server.wait_for { ready? } # give server time to boot
57
+
58
+ # DO STUFF
59
+
60
+ server.destroy # cleanup after yourself or regret it, trust me
61
+
62
+ == Models
63
+
64
+ Many of the collection methods return individual objects, which also provide common methods:
65
+ * +destroy+ - will destroy the persisted object from the provider
66
+ * +save+ - persist the object to the provider
67
+ * +wait_for+ - takes a block and waits for either the block to return true for the object or for a timeout (defaults to 10 minutes)
68
+
69
+ == Mocks
70
+
71
+ As you might imagine, testing code using Fog can be slow and expensive, constantly turning on and and shutting down instances.
72
+ Mocking allows skipping this overhead by providing an in memory representation resources as you make requests.
73
+ Enabling mocking easy to use, before you run other commands, simply run:
74
+
75
+ Fog.mock!
76
+
77
+ Then proceed as usual, if you run into unimplemented mocks fog will raise an error and as always contributions are welcome!
78
+
79
+ == Requests
80
+
81
+ Requests allow you to dive deeper when the models just can't cut it.
82
+ You can see a list of available requests by calling #requests on the connection object.
83
+
84
+ For instance, ec2 provides methods related to reserved instances that don't have any models (yet). Here is how you can lookup your reserved instances:
85
+
86
+ $ fog
87
+ >> AWS[:ec2].describe_reserved_instances
88
+ #<Excon::Response [...]>
89
+
90
+ It will return an {excon}[http://github.com/geemus/excon] response, which has `body`, `headers` and `status`. Both return nice hashes.
91
+
92
+ == Go forth and conquer
93
+
94
+ Play around and use the console to explore or check out the {getting started guide}[http://wiki.github.com/geemus/fog/getting-started-with-fog] for more details. Once you are reading to start scripting fog, here is a quick hint on how to make connections without the command line thing to help you.
95
+
96
+ # create a compute connection
97
+ compute = Fog::Compute.new(:provider => 'AWS', :aws_access_key_id => ACCESS_KEY_ID, :aws_secret_access_key => SECRET_ACCESS_KEY)
98
+ # compute operations go here
99
+
100
+ # create a storage connection
101
+ storage = Fog::Storage.new(:provider => 'AWS', :aws_access_key_id => ACCESS_KEY_ID, :aws_secret_access_key => SECRET_ACCESS_KEY)
102
+ # storage operations go here
103
+
104
+ geemus says: "That should give you everything you need to get started, but let me know if there is anything I can do to help!"
105
+
106
+ == Providers
107
+
108
+ You should try out the (varying) support fog has for:
109
+ * {AWS}[http://aws.amazon.com] [{Compute}[http://aws.amazon.com/ec2], {DNS}[http://aws.amazon.com/route53], {ELB}[http://aws.amazon.com/elasticloadbalancing], {Storage}[http://aws.amazon.com/s3], {SimpleDB}[http://aws.amazon.com/simpledb]]
110
+ * <b><em>{Blue Box Group}[http://www.bluebox.net]</em></b> [{Compute}[http://www.bluebox.net/blocks]]
111
+ * <b><em>{Brightbox}[http://www.brightbox.co.uk]</em></b> [{Compute}[http://beta.brightbox.com/]]
112
+ * {Google}[http://www.google.com] [{Storage}[http://code.google.com/apis/storage]]
113
+ * {Linode}[http://www.linode.com] [{DNS}[http://www.linode.com]]
114
+ * Local [Storage]
115
+ * {Rackspace}[http://www.rackspace.com] [{Compute}[http://www.rackspacecloud.com/cloud_hosting_products/servers], {Storage}[http://www.rackspacecloud.com/cloud_hosting_products/files]]
116
+ * {Slicehost}[http://www.slicehost.com] [{Compute}[http://www.slicehost.com], {DNS}[http://www.slicehost.com]]
117
+ * {Terremark}[http://www.terremark.com] [{vCloud Express}[http://vcloudexpress.terremark.com]]
118
+ * {Zerigo}[http://www.zerigo.com] [{DNS}[http://www.zerigo.com/managed-dns]]
119
+
120
+ There are also the basics of these providers (that could use your love):
121
+ * <b><em>{GoGrid}[http://www.gogrid.com]</b></em> [{Compute}[http://www.gogrid.com]]
122
+ * {Linode}[http://www.linode.com] [{Compute}[http://www.linode.com]]
123
+ * {New Servers}[http://www.newservers.com] [{Compute}[http://www.newservers.com]]
124
+
125
+ Special thanks to providers listed in <b><em>bold italics</em></b> for donating resources for fog tests!
126
+
127
+ == Additional Resources
128
+
129
+ Enjoy, and let me know what I can do to continue improving fog!
130
+
131
+ * Follow {@fog}[http://twitter.com/fog] and/or {@geemus}[http://twitter.com/geemus] on Twitter
132
+ * Discuss in irc on the {#ruby-fog}[irc://irc.freenode.net/ruby-fog] channel on Freenode
133
+ * Discuss via email on the {mailing list}[http://groups.google.com/group/ruby-fog] (note: release notes appear on this list)
134
+ * Report bugs or find stuff to work on in {issues}[http://github.com/geemus/fog/issues]
135
+ * Learn about {contributing}[http://github.com/geemus/fog/wiki/contributor-guide] or find more info about the {Providers}[http://github.com/geemus/fog/wiki/Providers] (including some todo items)
136
+ * See what already uses fog and add your own stuff to {the list}[http://wiki.github.com/geemus/fog/in-the-wild]
137
+ * Check out blog posts and other mentions from elsewhere {press}[http://wiki.github.com/geemus/fog/press]
138
+
139
+ == Sponsorship
140
+
141
+ http://www.engineyard.com/images/logo.png
142
+
143
+ All new work on fog is sponsored by {Engine Yard}[http://engineyard.com]
144
+
145
+ == T-Shirts
146
+
147
+ Wonder how you can get a shirt? Look no further!
148
+
149
+ * Blue shirts go to people who have contributed indirectly, where contribution is a judgement call on geemus's part (but he is a pretty nice guy).
150
+ * Grey shirts and a follow from @fog go to people who have made it on to the {contributors list}[https://github.com/geemus/fog/contributors] by submitting code.
151
+ * Black shirts go to people who have made it on to the {collaborators list}[https://github.com/api/v2/json/repos/show/geemus/fog/collaborators] by coercing geemus into adding them (geemus is currently the only member of this list).
152
+
153
+ == Copyright
154
+
155
+ (The MIT License)
156
+
157
+ Copyright (c) 2010 {geemus (Wesley Beary)}[http://github.com/geemus]
158
+
159
+ Permission is hereby granted, free of charge, to any person obtaining
160
+ a copy of this software and associated documentation files (the
161
+ "Software"), to deal in the Software without restriction, including
162
+ without limitation the rights to use, copy, modify, merge, publish,
163
+ distribute, sublicense, and/or sell copies of the Software, and to
164
+ permit persons to whom the Software is furnished to do so, subject to
165
+ the following conditions:
166
+
167
+ The above copyright notice and this permission notice shall be
168
+ included in all copies or substantial portions of the Software.
169
+
170
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
171
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
172
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
173
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
174
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
175
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
176
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,132 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'date'
4
+
5
+ #############################################################################
6
+ #
7
+ # Helper functions
8
+ #
9
+ #############################################################################
10
+
11
+ def name
12
+ @name ||= Dir['*.gemspec'].first.split('.').first
13
+ end
14
+
15
+ def version
16
+ line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
17
+ line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
18
+ end
19
+
20
+ def date
21
+ Date.today.to_s
22
+ end
23
+
24
+ def rubyforge_project
25
+ name
26
+ end
27
+
28
+ def gemspec_file
29
+ "#{name}.gemspec"
30
+ end
31
+
32
+ def gem_file
33
+ "#{name}-#{version}.gem"
34
+ end
35
+
36
+ def replace_header(head, header_name)
37
+ head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
38
+ end
39
+
40
+ #############################################################################
41
+ #
42
+ # Standard tasks
43
+ #
44
+ #############################################################################
45
+
46
+ task :default => :test
47
+
48
+ task :examples do
49
+ sh("export FOG_MOCK=false && bundle exec shindont examples")
50
+ # some don't provide mocks so we'll leave this out for now
51
+ # sh("export FOG_MOCK=true && bundle exec shindont examples")
52
+ end
53
+
54
+ task :test => :examples do
55
+ sh("export FOG_MOCK=true && bundle exec spec spec") &&
56
+ sh("export FOG_MOCK=true && bundle exec shindont tests") &&
57
+ sh("export FOG_MOCK=false && bundle exec spec spec") &&
58
+ sh("export FOG_MOCK=false && bundle exec shindont tests")
59
+ end
60
+
61
+ desc "Generate RCov test coverage and open in your browser"
62
+ task :coverage do
63
+ require 'rcov'
64
+ sh "rm -fr coverage"
65
+ sh "rcov test/test_*.rb"
66
+ sh "open coverage/index.html"
67
+ end
68
+
69
+ require 'rake/rdoctask'
70
+ Rake::RDocTask.new do |rdoc|
71
+ rdoc.rdoc_dir = 'rdoc'
72
+ rdoc.title = "#{name} #{version}"
73
+ rdoc.rdoc_files.include('README*')
74
+ rdoc.rdoc_files.include('lib/**/*.rb')
75
+ end
76
+
77
+ desc "Open an irb session preloaded with this library"
78
+ task :console do
79
+ sh "irb -rubygems -r ./lib/#{name}.rb"
80
+ end
81
+
82
+ #############################################################################
83
+ #
84
+ # Packaging tasks
85
+ #
86
+ #############################################################################
87
+
88
+ task :release => :build do
89
+ unless `git branch` =~ /^\* master$/
90
+ puts "You must be on the master branch to release!"
91
+ exit!
92
+ end
93
+ sh "gem install pkg/#{name}-#{version}.gem"
94
+ sh "git commit --allow-empty -a -m 'Release #{version}'"
95
+ sh "git tag v#{version}"
96
+ sh "git push origin master"
97
+ sh "git push origin v#{version}"
98
+ sh "gem push pkg/#{name}-#{version}.gem"
99
+ end
100
+
101
+ task :build => :gemspec do
102
+ sh "mkdir -p pkg"
103
+ sh "gem build #{gemspec_file}"
104
+ sh "mv #{gem_file} pkg"
105
+ end
106
+
107
+ task :gemspec => :validate do
108
+ # read spec file and split out manifest section
109
+ spec = File.read(gemspec_file)
110
+
111
+ # replace name version and date
112
+ replace_header(spec, :name)
113
+ replace_header(spec, :version)
114
+ replace_header(spec, :date)
115
+ #comment this out if your rubyforge_project has a different name
116
+ replace_header(spec, :rubyforge_project)
117
+
118
+ File.open(gemspec_file, 'w') { |io| io.write(spec) }
119
+ puts "Updated #{gemspec_file}"
120
+ end
121
+
122
+ task :validate do
123
+ libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}"]
124
+ unless libfiles.empty?
125
+ puts "Directory `lib` should only contain a `#{name}.rb` file and `#{name}` dir."
126
+ exit!
127
+ end
128
+ unless Dir['VERSION*'].empty?
129
+ puts "A `VERSION` file at root level violates Gem best practices."
130
+ exit!
131
+ end
132
+ end
data/benchs/fog_vs.rb ADDED
@@ -0,0 +1,106 @@
1
+ require 'rubygems'
2
+ require 'aws/s3'
3
+ require 'benchmark'
4
+ require 'right_aws'
5
+
6
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
7
+
8
+ data = File.open(File.expand_path('~/.fog')).read
9
+ config = YAML.load(data)[:default]
10
+ fog = Fog::AWS::S3.new(
11
+ :aws_access_key_id => config[:aws_access_key_id],
12
+ :aws_secret_access_key => config[:aws_secret_access_key]
13
+ )
14
+ raws = RightAws::S3Interface.new(
15
+ config[:aws_access_key_id],
16
+ config[:aws_secret_access_key]
17
+ )
18
+ raws.logger.level = 3 # ERROR
19
+ awss3 = AWS::S3::Base.establish_connection!(
20
+ :access_key_id => config[:aws_access_key_id],
21
+ :secret_access_key => config[:aws_secret_access_key],
22
+ :persistent => true
23
+ )
24
+
25
+ TIMES = 10
26
+
27
+ Benchmark.bmbm(25) do |bench|
28
+ bench.report('fog.put_bucket') do
29
+ TIMES.times do |x|
30
+ fog.put_bucket("fogbench#{x}")
31
+ end
32
+ end
33
+ bench.report('raws.create_bucket') do
34
+ TIMES.times do |x|
35
+ raws.create_bucket("rawsbench#{x}")
36
+ end
37
+ end
38
+ bench.report('awss3::Bucket.create') do
39
+ TIMES.times do |x|
40
+ AWS::S3::Bucket.create("awss3bench#{x}")
41
+ end
42
+ end
43
+
44
+ bench.report('fog.put_object') do
45
+ TIMES.times do |x|
46
+ TIMES.times do |y|
47
+ file = File.open(File.dirname(__FILE__) + '/../spec/lorem.txt', 'r')
48
+ fog.put_object("fogbench#{x}", "lorem_#{y}", file)
49
+ end
50
+ end
51
+ end
52
+ bench.report('raws.put') do
53
+ TIMES.times do |x|
54
+ TIMES.times do |y|
55
+ file = File.open(File.dirname(__FILE__) + '/../spec/lorem.txt', 'r')
56
+ raws.put("rawsbench#{x}", "lorem_#{y}", file)
57
+ end
58
+ end
59
+ end
60
+ bench.report('awss3::S3Object.create') do
61
+ TIMES.times do |x|
62
+ TIMES.times do |y|
63
+ file = File.open(File.dirname(__FILE__) + '/../spec/lorem.txt', 'r')
64
+ AWS::S3::S3Object.create("lorem_#{y}", file, "awss3bench#{x}")
65
+ end
66
+ end
67
+ end
68
+
69
+ bench.report('fog.delete_object') do
70
+ TIMES.times do |x|
71
+ TIMES.times do |y|
72
+ fog.delete_object("fogbench#{x}", "lorem_#{y}")
73
+ end
74
+ end
75
+ end
76
+ bench.report('raws.delete') do
77
+ TIMES.times do |x|
78
+ TIMES.times do |y|
79
+ raws.delete("rawsbench#{x}", "lorem_#{y}")
80
+ end
81
+ end
82
+ end
83
+ bench.report('awss3::S3Object.delete') do
84
+ TIMES.times do |x|
85
+ TIMES.times do |y|
86
+ AWS::S3::S3Object.delete("lorem_#{y}", "awss3bench#{x}")
87
+ end
88
+ end
89
+ end
90
+
91
+ bench.report('fog.delete_bucket') do
92
+ TIMES.times do |x|
93
+ fog.delete_bucket("fogbench#{x}")
94
+ end
95
+ end
96
+ bench.report('raws.delete_bucket') do
97
+ TIMES.times do |x|
98
+ raws.delete_bucket("rawsbench#{x}")
99
+ end
100
+ end
101
+ bench.report('awss3::Bucket.delete') do
102
+ TIMES.times do |x|
103
+ AWS::S3::Bucket.delete("awss3bench#{x}")
104
+ end
105
+ end
106
+ end
data/benchs/params.rb ADDED
@@ -0,0 +1,43 @@
1
+ require 'benchmark'
2
+
3
+ def hash(options)
4
+ result = "#{options.delete(:name)}"
5
+ for key, value in options
6
+ result << " #{key} => #{value} "
7
+ end
8
+ result
9
+ end
10
+
11
+ def optional(name, a = nil, b = nil, c = nil)
12
+ result = "#{name}"
13
+ options = { :a => a, :b => b, :c => c }
14
+ for key, value in options
15
+ result << " #{key} => #{value} "
16
+ end
17
+ result
18
+ end
19
+
20
+ COUNT = 100_000
21
+ data = "Content-Length: 100"
22
+ Benchmark.bmbm(25) do |bench|
23
+ bench.report('hash') do
24
+ COUNT.times do
25
+ hash({:name => 'name'})
26
+ end
27
+ end
28
+ bench.report('optional') do
29
+ COUNT.times do
30
+ optional('name')
31
+ end
32
+ end
33
+ bench.report('hash_with_option') do
34
+ COUNT.times do
35
+ hash({:name => 'name', :a => 'a', :b => 'b', :c => 'c'})
36
+ end
37
+ end
38
+ bench.report('optional_with_option') do
39
+ COUNT.times do
40
+ optional('name', :a => 'a', :b => 'b', :c => 'c')
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,60 @@
1
+ require 'benchmark'
2
+ require 'rubygems'
3
+ require 'nokogiri'
4
+
5
+ class Parser < Nokogiri::XML::SAX::Document
6
+
7
+ attr_reader :response
8
+
9
+ def initialize
10
+ reset
11
+ end
12
+
13
+ def reset
14
+ @item = {}
15
+ @response = { :items => [] }
16
+ end
17
+
18
+ def characters(string)
19
+ @value << string.strip
20
+ end
21
+
22
+ def start_element(name, attrs = [])
23
+ @value = nil
24
+ end
25
+
26
+ def end_element(name)
27
+ case name
28
+ when 'item'
29
+ @response[:items] << @item
30
+ @item = {}
31
+ when 'key'
32
+ @item[:key] = @value
33
+ end
34
+ end
35
+
36
+ end
37
+
38
+ data = <<-DATA
39
+ <items>
40
+ <item>
41
+ <key>value</key>
42
+ </item>
43
+ </items>
44
+ DATA
45
+
46
+ COUNT = 100
47
+
48
+ Benchmark.bmbm(25) do |bench|
49
+ bench.report('parse') do
50
+ parser = Parser.new
51
+ Nokogiri::XML::SAX::Parser.new(parser).parse(data)
52
+ parser.response
53
+ end
54
+
55
+ bench.report('push') do
56
+ parser = Parser.new
57
+ Nokogiri::XML::SAX::PushParser.new(parser).write(data, true)
58
+ parser.response
59
+ end
60
+ end
data/bin/fog ADDED
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'fog'))
3
+ require 'irb'
4
+ require 'yaml'
5
+ Fog.credential = ARGV.first ? ARGV.first.to_sym : nil
6
+ Fog.mock! if ENV['FOG_MOCK']
7
+ unless Fog.credentials
8
+ exit
9
+ end
10
+
11
+ require 'fog/bin'
12
+
13
+ providers = Fog.providers.map{|provider| provider.to_s}
14
+ providers = if providers.length > 1
15
+ providers[0...-1].join(', ') << ' and ' << providers[-1]
16
+ else
17
+ providers.first
18
+ end
19
+
20
+ if ARGV.length > 1
21
+
22
+ puts(instance_eval(ARGV[1..-1].join(' ')).to_json)
23
+
24
+ else
25
+
26
+ ARGV.clear # Avoid passing args to IRB
27
+ IRB.setup(nil)
28
+ @irb = IRB::Irb.new(nil)
29
+ IRB.conf[:MAIN_CONTEXT] = @irb.context
30
+ IRB.conf[:PROMPT][:FOG] = IRB.conf[:PROMPT][:SIMPLE].dup
31
+ IRB.conf[:PROMPT][:FOG][:RETURN] = "%s\n"
32
+ @irb.context.prompt_mode = :FOG
33
+ @irb.context.workspace = IRB::WorkSpace.new(binding)
34
+
35
+ Formatador.display_line('Welcome to fog interactive!')
36
+ Formatador.display_line(":#{Fog.credential} provides #{providers}")
37
+ providers = Fog.providers
38
+ Fog.modules.each do |_module_|
39
+ if _module_.respond_to?(:startup_notice)
40
+ _module_.send(:startup_notice)
41
+ end
42
+ end
43
+
44
+ catch(:IRB_EXIT) { @irb.eval_input }
45
+
46
+ end