tecnh-fog 0.2.23.vpc

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 (562) hide show
  1. data/Gemfile +13 -0
  2. data/Gemfile.lock +75 -0
  3. data/README.rdoc +140 -0
  4. data/Rakefile +153 -0
  5. data/benchs/fog_vs.rb +106 -0
  6. data/benchs/params.rb +43 -0
  7. data/benchs/parse_vs_push.rb +60 -0
  8. data/bin/fog +42 -0
  9. data/examples/bluebox_create.rb +33 -0
  10. data/fog.gemspec +631 -0
  11. data/lib/fog.rb +86 -0
  12. data/lib/fog/attributes.rb +183 -0
  13. data/lib/fog/aws.rb +195 -0
  14. data/lib/fog/aws/bin.rb +73 -0
  15. data/lib/fog/aws/ec2.rb +221 -0
  16. data/lib/fog/aws/elb.rb +105 -0
  17. data/lib/fog/aws/models/ec2/address.rb +67 -0
  18. data/lib/fog/aws/models/ec2/addresses.rb +62 -0
  19. data/lib/fog/aws/models/ec2/flavor.rb +21 -0
  20. data/lib/fog/aws/models/ec2/flavors.rb +43 -0
  21. data/lib/fog/aws/models/ec2/image.rb +44 -0
  22. data/lib/fog/aws/models/ec2/images.rb +42 -0
  23. data/lib/fog/aws/models/ec2/key_pair.rb +34 -0
  24. data/lib/fog/aws/models/ec2/key_pairs.rb +43 -0
  25. data/lib/fog/aws/models/ec2/security_group.rb +55 -0
  26. data/lib/fog/aws/models/ec2/security_groups.rb +43 -0
  27. data/lib/fog/aws/models/ec2/server.rb +178 -0
  28. data/lib/fog/aws/models/ec2/servers.rb +49 -0
  29. data/lib/fog/aws/models/ec2/snapshot.rb +57 -0
  30. data/lib/fog/aws/models/ec2/snapshots.rb +65 -0
  31. data/lib/fog/aws/models/ec2/volume.rb +97 -0
  32. data/lib/fog/aws/models/ec2/volumes.rb +58 -0
  33. data/lib/fog/aws/models/s3/directories.rb +49 -0
  34. data/lib/fog/aws/models/s3/directory.rb +70 -0
  35. data/lib/fog/aws/models/s3/file.rb +84 -0
  36. data/lib/fog/aws/models/s3/files.rb +88 -0
  37. data/lib/fog/aws/parsers/ec2/allocate_address.rb +19 -0
  38. data/lib/fog/aws/parsers/ec2/attach_volume.rb +22 -0
  39. data/lib/fog/aws/parsers/ec2/basic.rb +25 -0
  40. data/lib/fog/aws/parsers/ec2/create_image.rb +20 -0
  41. data/lib/fog/aws/parsers/ec2/create_key_pair.rb +20 -0
  42. data/lib/fog/aws/parsers/ec2/create_snapshot.rb +26 -0
  43. data/lib/fog/aws/parsers/ec2/create_volume.rb +24 -0
  44. data/lib/fog/aws/parsers/ec2/deregister_image.rb +20 -0
  45. data/lib/fog/aws/parsers/ec2/describe_addresses.rb +30 -0
  46. data/lib/fog/aws/parsers/ec2/describe_availability_zones.rb +30 -0
  47. data/lib/fog/aws/parsers/ec2/describe_images.rb +60 -0
  48. data/lib/fog/aws/parsers/ec2/describe_instances.rb +93 -0
  49. data/lib/fog/aws/parsers/ec2/describe_key_pairs.rb +30 -0
  50. data/lib/fog/aws/parsers/ec2/describe_regions.rb +30 -0
  51. data/lib/fog/aws/parsers/ec2/describe_reserved_instances.rb +36 -0
  52. data/lib/fog/aws/parsers/ec2/describe_security_groups.rb +75 -0
  53. data/lib/fog/aws/parsers/ec2/describe_snapshots.rb +34 -0
  54. data/lib/fog/aws/parsers/ec2/describe_volumes.rb +57 -0
  55. data/lib/fog/aws/parsers/ec2/detach_volume.rb +22 -0
  56. data/lib/fog/aws/parsers/ec2/get_console_output.rb +32 -0
  57. data/lib/fog/aws/parsers/ec2/register_image.rb +20 -0
  58. data/lib/fog/aws/parsers/ec2/run_instances.rb +89 -0
  59. data/lib/fog/aws/parsers/ec2/start_stop_instances.rb +41 -0
  60. data/lib/fog/aws/parsers/ec2/terminate_instances.rb +55 -0
  61. data/lib/fog/aws/parsers/elb/create_load_balancer.rb +26 -0
  62. data/lib/fog/aws/parsers/elb/delete_load_balancer.rb +24 -0
  63. data/lib/fog/aws/parsers/elb/deregister_instances_from_load_balancer.rb +26 -0
  64. data/lib/fog/aws/parsers/elb/describe_instance_health.rb +30 -0
  65. data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +101 -0
  66. data/lib/fog/aws/parsers/elb/disable_availability_zones_for_load_balancer.rb +26 -0
  67. data/lib/fog/aws/parsers/elb/enable_availability_zones_for_load_balancer.rb +26 -0
  68. data/lib/fog/aws/parsers/elb/register_instances_with_load_balancer.rb +26 -0
  69. data/lib/fog/aws/parsers/s3/access_control_list.rb +46 -0
  70. data/lib/fog/aws/parsers/s3/copy_object.rb +22 -0
  71. data/lib/fog/aws/parsers/s3/get_bucket.rb +46 -0
  72. data/lib/fog/aws/parsers/s3/get_bucket_location.rb +20 -0
  73. data/lib/fog/aws/parsers/s3/get_bucket_logging.rb +40 -0
  74. data/lib/fog/aws/parsers/s3/get_bucket_object_versions.rb +88 -0
  75. data/lib/fog/aws/parsers/s3/get_bucket_versioning.rb +24 -0
  76. data/lib/fog/aws/parsers/s3/get_request_payment.rb +20 -0
  77. data/lib/fog/aws/parsers/s3/get_service.rb +32 -0
  78. data/lib/fog/aws/parsers/simpledb/basic.rb +31 -0
  79. data/lib/fog/aws/parsers/simpledb/domain_metadata.rb +32 -0
  80. data/lib/fog/aws/parsers/simpledb/get_attributes.rb +36 -0
  81. data/lib/fog/aws/parsers/simpledb/list_domains.rb +30 -0
  82. data/lib/fog/aws/parsers/simpledb/select.rb +41 -0
  83. data/lib/fog/aws/requests/ec2/allocate_address.rb +51 -0
  84. data/lib/fog/aws/requests/ec2/associate_address.rb +57 -0
  85. data/lib/fog/aws/requests/ec2/attach_volume.rb +81 -0
  86. data/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +86 -0
  87. data/lib/fog/aws/requests/ec2/create_image.rb +58 -0
  88. data/lib/fog/aws/requests/ec2/create_key_pair.rb +54 -0
  89. data/lib/fog/aws/requests/ec2/create_security_group.rb +53 -0
  90. data/lib/fog/aws/requests/ec2/create_snapshot.rb +64 -0
  91. data/lib/fog/aws/requests/ec2/create_volume.rb +73 -0
  92. data/lib/fog/aws/requests/ec2/delete_key_pair.rb +43 -0
  93. data/lib/fog/aws/requests/ec2/delete_security_group.rb +45 -0
  94. data/lib/fog/aws/requests/ec2/delete_snapshot.rb +46 -0
  95. data/lib/fog/aws/requests/ec2/delete_volume.rb +52 -0
  96. data/lib/fog/aws/requests/ec2/deregister_image.rb +51 -0
  97. data/lib/fog/aws/requests/ec2/describe_addresses.rb +56 -0
  98. data/lib/fog/aws/requests/ec2/describe_availability_zones.rb +64 -0
  99. data/lib/fog/aws/requests/ec2/describe_images.rb +70 -0
  100. data/lib/fog/aws/requests/ec2/describe_instances.rb +129 -0
  101. data/lib/fog/aws/requests/ec2/describe_key_pairs.rb +58 -0
  102. data/lib/fog/aws/requests/ec2/describe_regions.rb +61 -0
  103. data/lib/fog/aws/requests/ec2/describe_reserved_instances.rb +48 -0
  104. data/lib/fog/aws/requests/ec2/describe_security_groups.rb +66 -0
  105. data/lib/fog/aws/requests/ec2/describe_snapshots.rb +80 -0
  106. data/lib/fog/aws/requests/ec2/describe_volumes.rb +86 -0
  107. data/lib/fog/aws/requests/ec2/detach_volume.rb +58 -0
  108. data/lib/fog/aws/requests/ec2/disassociate_address.rb +52 -0
  109. data/lib/fog/aws/requests/ec2/get_console_output.rb +52 -0
  110. data/lib/fog/aws/requests/ec2/modify_image_attributes.rb +39 -0
  111. data/lib/fog/aws/requests/ec2/modify_snapshot_attribute.rb +38 -0
  112. data/lib/fog/aws/requests/ec2/reboot_instances.rb +50 -0
  113. data/lib/fog/aws/requests/ec2/register_image.rb +89 -0
  114. data/lib/fog/aws/requests/ec2/release_address.rb +43 -0
  115. data/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +74 -0
  116. data/lib/fog/aws/requests/ec2/run_instances.rb +159 -0
  117. data/lib/fog/aws/requests/ec2/start_instances.rb +38 -0
  118. data/lib/fog/aws/requests/ec2/stop_instances.rb +38 -0
  119. data/lib/fog/aws/requests/ec2/terminate_instances.rb +94 -0
  120. data/lib/fog/aws/requests/elb/create_load_balancer.rb +59 -0
  121. data/lib/fog/aws/requests/elb/delete_load_balancer.rb +42 -0
  122. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +47 -0
  123. data/lib/fog/aws/requests/elb/describe_instance_health.rb +46 -0
  124. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +59 -0
  125. data/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb +46 -0
  126. data/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb +46 -0
  127. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +47 -0
  128. data/lib/fog/aws/requests/s3/copy_object.rb +72 -0
  129. data/lib/fog/aws/requests/s3/delete_bucket.rb +46 -0
  130. data/lib/fog/aws/requests/s3/delete_object.rb +45 -0
  131. data/lib/fog/aws/requests/s3/get_bucket.rb +98 -0
  132. data/lib/fog/aws/requests/s3/get_bucket_acl.rb +55 -0
  133. data/lib/fog/aws/requests/s3/get_bucket_location.rb +48 -0
  134. data/lib/fog/aws/requests/s3/get_bucket_logging.rb +55 -0
  135. data/lib/fog/aws/requests/s3/get_bucket_object_versions.rb +80 -0
  136. data/lib/fog/aws/requests/s3/get_bucket_versioning.rb +45 -0
  137. data/lib/fog/aws/requests/s3/get_object.rb +104 -0
  138. data/lib/fog/aws/requests/s3/get_object_acl.rb +66 -0
  139. data/lib/fog/aws/requests/s3/get_object_torrent.rb +55 -0
  140. data/lib/fog/aws/requests/s3/get_object_url.rb +54 -0
  141. data/lib/fog/aws/requests/s3/get_request_payment.rb +48 -0
  142. data/lib/fog/aws/requests/s3/get_service.rb +53 -0
  143. data/lib/fog/aws/requests/s3/head_object.rb +64 -0
  144. data/lib/fog/aws/requests/s3/put_bucket.rb +65 -0
  145. data/lib/fog/aws/requests/s3/put_bucket_acl.rb +80 -0
  146. data/lib/fog/aws/requests/s3/put_bucket_logging.rb +87 -0
  147. data/lib/fog/aws/requests/s3/put_bucket_versioning.rb +40 -0
  148. data/lib/fog/aws/requests/s3/put_object.rb +71 -0
  149. data/lib/fog/aws/requests/s3/put_object_url.rb +54 -0
  150. data/lib/fog/aws/requests/s3/put_request_payment.rb +47 -0
  151. data/lib/fog/aws/requests/simpledb/batch_put_attributes.rb +64 -0
  152. data/lib/fog/aws/requests/simpledb/create_domain.rb +43 -0
  153. data/lib/fog/aws/requests/simpledb/delete_attributes.rb +65 -0
  154. data/lib/fog/aws/requests/simpledb/delete_domain.rb +44 -0
  155. data/lib/fog/aws/requests/simpledb/domain_metadata.rb +75 -0
  156. data/lib/fog/aws/requests/simpledb/get_attributes.rb +71 -0
  157. data/lib/fog/aws/requests/simpledb/list_domains.rb +58 -0
  158. data/lib/fog/aws/requests/simpledb/put_attributes.rb +78 -0
  159. data/lib/fog/aws/requests/simpledb/select.rb +42 -0
  160. data/lib/fog/aws/s3.rb +209 -0
  161. data/lib/fog/aws/simpledb.rb +171 -0
  162. data/lib/fog/bin.rb +68 -0
  163. data/lib/fog/bluebox.rb +87 -0
  164. data/lib/fog/bluebox/bin.rb +43 -0
  165. data/lib/fog/bluebox/models/flavor.rb +43 -0
  166. data/lib/fog/bluebox/models/flavors.rb +32 -0
  167. data/lib/fog/bluebox/models/image.rb +17 -0
  168. data/lib/fog/bluebox/models/images.rb +34 -0
  169. data/lib/fog/bluebox/models/server.rb +79 -0
  170. data/lib/fog/bluebox/models/servers.rb +33 -0
  171. data/lib/fog/bluebox/requests/create_block.rb +39 -0
  172. data/lib/fog/bluebox/requests/destroy_block.rb +32 -0
  173. data/lib/fog/bluebox/requests/get_block.rb +32 -0
  174. data/lib/fog/bluebox/requests/get_blocks.rb +34 -0
  175. data/lib/fog/bluebox/requests/get_product.rb +32 -0
  176. data/lib/fog/bluebox/requests/get_products.rb +31 -0
  177. data/lib/fog/bluebox/requests/get_template.rb +32 -0
  178. data/lib/fog/bluebox/requests/get_templates.rb +32 -0
  179. data/lib/fog/bluebox/requests/reboot_block.rb +33 -0
  180. data/lib/fog/collection.rb +121 -0
  181. data/lib/fog/connection.rb +35 -0
  182. data/lib/fog/credentials.rb +56 -0
  183. data/lib/fog/deprecation.rb +17 -0
  184. data/lib/fog/errors.rb +20 -0
  185. data/lib/fog/go_grid.rb +97 -0
  186. data/lib/fog/go_grid/bin.rb +30 -0
  187. data/lib/fog/go_grid/requests/common_lookup_list.rb +34 -0
  188. data/lib/fog/go_grid/requests/grid_image_list.rb +37 -0
  189. data/lib/fog/go_grid/requests/grid_ip_list.rb +36 -0
  190. data/lib/fog/go_grid/requests/grid_loadbalancer_list.rb +34 -0
  191. data/lib/fog/go_grid/requests/grid_server_add.rb +42 -0
  192. data/lib/fog/go_grid/requests/grid_server_delete.rb +31 -0
  193. data/lib/fog/go_grid/requests/grid_server_get.rb +31 -0
  194. data/lib/fog/go_grid/requests/grid_server_list.rb +36 -0
  195. data/lib/fog/go_grid/requests/grid_server_power.rb +32 -0
  196. data/lib/fog/hmac.rb +48 -0
  197. data/lib/fog/linode.rb +80 -0
  198. data/lib/fog/linode/bin.rb +30 -0
  199. data/lib/fog/linode/requests/avail_datacenters.rb +29 -0
  200. data/lib/fog/linode/requests/avail_distributions.rb +36 -0
  201. data/lib/fog/linode/requests/avail_kernels.rb +34 -0
  202. data/lib/fog/linode/requests/avail_linodeplans.rb +33 -0
  203. data/lib/fog/linode/requests/avail_stackscripts.rb +35 -0
  204. data/lib/fog/linode/requests/linode_create.rb +39 -0
  205. data/lib/fog/linode/requests/linode_delete.rb +34 -0
  206. data/lib/fog/linode/requests/linode_list.rb +36 -0
  207. data/lib/fog/linode/requests/linode_reboot.rb +34 -0
  208. data/lib/fog/local.rb +59 -0
  209. data/lib/fog/local/bin.rb +34 -0
  210. data/lib/fog/local/models/directories.rb +37 -0
  211. data/lib/fog/local/models/directory.rb +50 -0
  212. data/lib/fog/local/models/file.rb +58 -0
  213. data/lib/fog/local/models/files.rb +74 -0
  214. data/lib/fog/model.rb +57 -0
  215. data/lib/fog/new_servers.rb +89 -0
  216. data/lib/fog/new_servers/bin.rb +30 -0
  217. data/lib/fog/new_servers/requests/add_server.rb +39 -0
  218. data/lib/fog/new_servers/requests/cancel_server.rb +36 -0
  219. data/lib/fog/new_servers/requests/get_server.rb +42 -0
  220. data/lib/fog/new_servers/requests/list_images.rb +33 -0
  221. data/lib/fog/new_servers/requests/list_plans.rb +36 -0
  222. data/lib/fog/new_servers/requests/list_servers.rb +43 -0
  223. data/lib/fog/new_servers/requests/reboot_server.rb +30 -0
  224. data/lib/fog/parser.rb +93 -0
  225. data/lib/fog/rackspace.rb +27 -0
  226. data/lib/fog/rackspace/bin.rb +48 -0
  227. data/lib/fog/rackspace/files.rb +134 -0
  228. data/lib/fog/rackspace/models/files/directories.rb +40 -0
  229. data/lib/fog/rackspace/models/files/directory.rb +45 -0
  230. data/lib/fog/rackspace/models/files/file.rb +61 -0
  231. data/lib/fog/rackspace/models/files/files.rb +87 -0
  232. data/lib/fog/rackspace/models/servers/flavor.rb +45 -0
  233. data/lib/fog/rackspace/models/servers/flavors.rb +34 -0
  234. data/lib/fog/rackspace/models/servers/image.rb +47 -0
  235. data/lib/fog/rackspace/models/servers/images.rb +41 -0
  236. data/lib/fog/rackspace/models/servers/server.rb +111 -0
  237. data/lib/fog/rackspace/models/servers/servers.rb +42 -0
  238. data/lib/fog/rackspace/requests/files/delete_container.rb +31 -0
  239. data/lib/fog/rackspace/requests/files/delete_object.rb +32 -0
  240. data/lib/fog/rackspace/requests/files/get_container.rb +52 -0
  241. data/lib/fog/rackspace/requests/files/get_containers.rb +41 -0
  242. data/lib/fog/rackspace/requests/files/get_object.rb +33 -0
  243. data/lib/fog/rackspace/requests/files/head_container.rb +37 -0
  244. data/lib/fog/rackspace/requests/files/head_containers.rb +34 -0
  245. data/lib/fog/rackspace/requests/files/head_object.rb +32 -0
  246. data/lib/fog/rackspace/requests/files/put_container.rb +31 -0
  247. data/lib/fog/rackspace/requests/files/put_object.rb +34 -0
  248. data/lib/fog/rackspace/requests/servers/create_image.rb +62 -0
  249. data/lib/fog/rackspace/requests/servers/create_server.rb +94 -0
  250. data/lib/fog/rackspace/requests/servers/delete_image.rb +45 -0
  251. data/lib/fog/rackspace/requests/servers/delete_server.rb +43 -0
  252. data/lib/fog/rackspace/requests/servers/get_flavor_details.rb +34 -0
  253. data/lib/fog/rackspace/requests/servers/get_image_details.rb +35 -0
  254. data/lib/fog/rackspace/requests/servers/get_server_details.rb +52 -0
  255. data/lib/fog/rackspace/requests/servers/list_addresses.rb +43 -0
  256. data/lib/fog/rackspace/requests/servers/list_flavors.rb +32 -0
  257. data/lib/fog/rackspace/requests/servers/list_flavors_detail.rb +34 -0
  258. data/lib/fog/rackspace/requests/servers/list_images.rb +40 -0
  259. data/lib/fog/rackspace/requests/servers/list_images_detail.rb +49 -0
  260. data/lib/fog/rackspace/requests/servers/list_private_addresses.rb +41 -0
  261. data/lib/fog/rackspace/requests/servers/list_public_addresses.rb +41 -0
  262. data/lib/fog/rackspace/requests/servers/list_servers.rb +41 -0
  263. data/lib/fog/rackspace/requests/servers/list_servers_detail.rb +56 -0
  264. data/lib/fog/rackspace/requests/servers/reboot_server.rb +32 -0
  265. data/lib/fog/rackspace/requests/servers/update_server.rb +45 -0
  266. data/lib/fog/rackspace/servers.rb +110 -0
  267. data/lib/fog/service.rb +87 -0
  268. data/lib/fog/slicehost.rb +92 -0
  269. data/lib/fog/slicehost/bin.rb +42 -0
  270. data/lib/fog/slicehost/models/flavor.rb +43 -0
  271. data/lib/fog/slicehost/models/flavors.rb +31 -0
  272. data/lib/fog/slicehost/models/image.rb +15 -0
  273. data/lib/fog/slicehost/models/images.rb +33 -0
  274. data/lib/fog/slicehost/models/server.rb +62 -0
  275. data/lib/fog/slicehost/models/servers.rb +35 -0
  276. data/lib/fog/slicehost/parsers/create_slice.rb +29 -0
  277. data/lib/fog/slicehost/parsers/get_backups.rb +30 -0
  278. data/lib/fog/slicehost/parsers/get_flavor.rb +24 -0
  279. data/lib/fog/slicehost/parsers/get_flavors.rb +28 -0
  280. data/lib/fog/slicehost/parsers/get_image.rb +24 -0
  281. data/lib/fog/slicehost/parsers/get_images.rb +28 -0
  282. data/lib/fog/slicehost/parsers/get_slice.rb +29 -0
  283. data/lib/fog/slicehost/parsers/get_slices.rb +33 -0
  284. data/lib/fog/slicehost/requests/create_slice.rb +47 -0
  285. data/lib/fog/slicehost/requests/delete_slice.rb +43 -0
  286. data/lib/fog/slicehost/requests/get_backups.rb +35 -0
  287. data/lib/fog/slicehost/requests/get_flavor.rb +38 -0
  288. data/lib/fog/slicehost/requests/get_flavors.rb +35 -0
  289. data/lib/fog/slicehost/requests/get_image.rb +36 -0
  290. data/lib/fog/slicehost/requests/get_images.rb +33 -0
  291. data/lib/fog/slicehost/requests/get_slice.rb +44 -0
  292. data/lib/fog/slicehost/requests/get_slices.rb +41 -0
  293. data/lib/fog/slicehost/requests/reboot_slice.rb +42 -0
  294. data/lib/fog/ssh.rb +108 -0
  295. data/lib/fog/terremark.rb +11 -0
  296. data/lib/fog/terremark/bin.rb +44 -0
  297. data/lib/fog/terremark/ecloud.rb +66 -0
  298. data/lib/fog/terremark/models/shared/address.rb +29 -0
  299. data/lib/fog/terremark/models/shared/addresses.rb +49 -0
  300. data/lib/fog/terremark/models/shared/network.rb +35 -0
  301. data/lib/fog/terremark/models/shared/networks.rb +52 -0
  302. data/lib/fog/terremark/models/shared/server.rb +110 -0
  303. data/lib/fog/terremark/models/shared/servers.rb +55 -0
  304. data/lib/fog/terremark/models/shared/task.rb +50 -0
  305. data/lib/fog/terremark/models/shared/tasks.rb +58 -0
  306. data/lib/fog/terremark/models/shared/vdc.rb +39 -0
  307. data/lib/fog/terremark/models/shared/vdcs.rb +52 -0
  308. data/lib/fog/terremark/parser.rb +18 -0
  309. data/lib/fog/terremark/parsers/shared/get_catalog.rb +46 -0
  310. data/lib/fog/terremark/parsers/shared/get_catalog_item.rb +46 -0
  311. data/lib/fog/terremark/parsers/shared/get_internet_services.rb +60 -0
  312. data/lib/fog/terremark/parsers/shared/get_network_ips.rb +29 -0
  313. data/lib/fog/terremark/parsers/shared/get_node_services.rb +36 -0
  314. data/lib/fog/terremark/parsers/shared/get_organization.rb +47 -0
  315. data/lib/fog/terremark/parsers/shared/get_organizations.rb +27 -0
  316. data/lib/fog/terremark/parsers/shared/get_public_ips.rb +30 -0
  317. data/lib/fog/terremark/parsers/shared/get_tasks_list.rb +52 -0
  318. data/lib/fog/terremark/parsers/shared/get_vapp_template.rb +46 -0
  319. data/lib/fog/terremark/parsers/shared/get_vdc.rb +108 -0
  320. data/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb +41 -0
  321. data/lib/fog/terremark/parsers/shared/internet_service.rb +65 -0
  322. data/lib/fog/terremark/parsers/shared/network.rb +51 -0
  323. data/lib/fog/terremark/parsers/shared/node_service.rb +32 -0
  324. data/lib/fog/terremark/parsers/shared/public_ip.rb +26 -0
  325. data/lib/fog/terremark/parsers/shared/task.rb +40 -0
  326. data/lib/fog/terremark/parsers/shared/vapp.rb +77 -0
  327. data/lib/fog/terremark/requests/shared/add_internet_service.rb +63 -0
  328. data/lib/fog/terremark/requests/shared/add_node_service.rb +63 -0
  329. data/lib/fog/terremark/requests/shared/create_internet_service.rb +63 -0
  330. data/lib/fog/terremark/requests/shared/delete_internet_service.rb +30 -0
  331. data/lib/fog/terremark/requests/shared/delete_node_service.rb +30 -0
  332. data/lib/fog/terremark/requests/shared/delete_public_ip.rb +30 -0
  333. data/lib/fog/terremark/requests/shared/delete_vapp.rb +30 -0
  334. data/lib/fog/terremark/requests/shared/deploy_vapp.rb +43 -0
  335. data/lib/fog/terremark/requests/shared/get_catalog.rb +40 -0
  336. data/lib/fog/terremark/requests/shared/get_catalog_item.rb +43 -0
  337. data/lib/fog/terremark/requests/shared/get_internet_services.rb +43 -0
  338. data/lib/fog/terremark/requests/shared/get_network.rb +73 -0
  339. data/lib/fog/terremark/requests/shared/get_network_ips.rb +40 -0
  340. data/lib/fog/terremark/requests/shared/get_node_services.rb +38 -0
  341. data/lib/fog/terremark/requests/shared/get_organization.rb +86 -0
  342. data/lib/fog/terremark/requests/shared/get_organizations.rb +49 -0
  343. data/lib/fog/terremark/requests/shared/get_public_ip.rb +41 -0
  344. data/lib/fog/terremark/requests/shared/get_public_ips.rb +72 -0
  345. data/lib/fog/terremark/requests/shared/get_task.rb +47 -0
  346. data/lib/fog/terremark/requests/shared/get_tasks_list.rb +40 -0
  347. data/lib/fog/terremark/requests/shared/get_vapp.rb +50 -0
  348. data/lib/fog/terremark/requests/shared/get_vapp_template.rb +43 -0
  349. data/lib/fog/terremark/requests/shared/get_vdc.rb +125 -0
  350. data/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb +79 -0
  351. data/lib/fog/terremark/requests/shared/power_off.rb +43 -0
  352. data/lib/fog/terremark/requests/shared/power_on.rb +43 -0
  353. data/lib/fog/terremark/requests/shared/power_reset.rb +43 -0
  354. data/lib/fog/terremark/requests/shared/power_shutdown.rb +32 -0
  355. data/lib/fog/terremark/shared.rb +289 -0
  356. data/lib/fog/terremark/vcloud.rb +113 -0
  357. data/lib/fog/vcloud.rb +394 -0
  358. data/lib/fog/vcloud/bin.rb +57 -0
  359. data/lib/fog/vcloud/collection.rb +12 -0
  360. data/lib/fog/vcloud/extension.rb +37 -0
  361. data/lib/fog/vcloud/generators.rb +33 -0
  362. data/lib/fog/vcloud/model.rb +22 -0
  363. data/lib/fog/vcloud/models/vdc.rb +26 -0
  364. data/lib/fog/vcloud/models/vdcs.rb +41 -0
  365. data/lib/fog/vcloud/requests/get_network.rb +47 -0
  366. data/lib/fog/vcloud/requests/get_organization.rb +47 -0
  367. data/lib/fog/vcloud/requests/get_vdc.rb +82 -0
  368. data/lib/fog/vcloud/requests/get_versions.rb +34 -0
  369. data/lib/fog/vcloud/requests/login.rb +46 -0
  370. data/lib/fog/vcloud/terremark/ecloud.rb +199 -0
  371. data/lib/fog/vcloud/terremark/ecloud/models/catalog.rb +30 -0
  372. data/lib/fog/vcloud/terremark/ecloud/models/catalog_item.rb +31 -0
  373. data/lib/fog/vcloud/terremark/ecloud/models/firewall_acl.rb +28 -0
  374. data/lib/fog/vcloud/terremark/ecloud/models/firewall_acls.rb +31 -0
  375. data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +84 -0
  376. data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +39 -0
  377. data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +51 -0
  378. data/lib/fog/vcloud/terremark/ecloud/models/ips.rb +32 -0
  379. data/lib/fog/vcloud/terremark/ecloud/models/network.rb +73 -0
  380. data/lib/fog/vcloud/terremark/ecloud/models/networks.rb +39 -0
  381. data/lib/fog/vcloud/terremark/ecloud/models/node.rb +47 -0
  382. data/lib/fog/vcloud/terremark/ecloud/models/nodes.rb +30 -0
  383. data/lib/fog/vcloud/terremark/ecloud/models/public_ip.rb +25 -0
  384. data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +48 -0
  385. data/lib/fog/vcloud/terremark/ecloud/models/server.rb +199 -0
  386. data/lib/fog/vcloud/terremark/ecloud/models/servers.rb +54 -0
  387. data/lib/fog/vcloud/terremark/ecloud/models/task.rb +23 -0
  388. data/lib/fog/vcloud/terremark/ecloud/models/tasks.rb +30 -0
  389. data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +79 -0
  390. data/lib/fog/vcloud/terremark/ecloud/models/vdcs.rb +30 -0
  391. data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +140 -0
  392. data/lib/fog/vcloud/terremark/ecloud/requests/add_node.rb +65 -0
  393. data/lib/fog/vcloud/terremark/ecloud/requests/clone_vapp.rb +50 -0
  394. data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +93 -0
  395. data/lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb +54 -0
  396. data/lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb +53 -0
  397. data/lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb +54 -0
  398. data/lib/fog/vcloud/terremark/ecloud/requests/configure_vapp.rb +116 -0
  399. data/lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb +33 -0
  400. data/lib/fog/vcloud/terremark/ecloud/requests/delete_node.rb +28 -0
  401. data/lib/fog/vcloud/terremark/ecloud/requests/delete_vapp.rb +19 -0
  402. data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog.rb +18 -0
  403. data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog_item.rb +18 -0
  404. data/lib/fog/vcloud/terremark/ecloud/requests/get_customization_options.rb +18 -0
  405. data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acl.rb +18 -0
  406. data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acls.rb +18 -0
  407. data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +66 -0
  408. data/lib/fog/vcloud/terremark/ecloud/requests/get_network.rb +48 -0
  409. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_extensions.rb +36 -0
  410. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ip.rb +44 -0
  411. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +50 -0
  412. data/lib/fog/vcloud/terremark/ecloud/requests/get_node.rb +45 -0
  413. data/lib/fog/vcloud/terremark/ecloud/requests/get_nodes.rb +44 -0
  414. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb +35 -0
  415. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb +40 -0
  416. data/lib/fog/vcloud/terremark/ecloud/requests/get_task.rb +18 -0
  417. data/lib/fog/vcloud/terremark/ecloud/requests/get_task_list.rb +19 -0
  418. data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp.rb +18 -0
  419. data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp_template.rb +18 -0
  420. data/lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb +86 -0
  421. data/lib/fog/vcloud/terremark/ecloud/requests/instantiate_vapp_template.rb +100 -0
  422. data/lib/fog/vcloud/terremark/ecloud/requests/power_off.rb +18 -0
  423. data/lib/fog/vcloud/terremark/ecloud/requests/power_on.rb +18 -0
  424. data/lib/fog/vcloud/terremark/ecloud/requests/power_reset.rb +18 -0
  425. data/lib/fog/vcloud/terremark/ecloud/requests/power_shutdown.rb +18 -0
  426. data/lib/fog/vcloud/terremark/vcloud.rb +18 -0
  427. data/lib/fog/vcloud/terremark/vcloud/requests/get_vdc.rb +57 -0
  428. data/spec/aws/models/ec2/address_spec.rb +103 -0
  429. data/spec/aws/models/ec2/addresses_spec.rb +70 -0
  430. data/spec/aws/models/ec2/flavors_spec.rb +14 -0
  431. data/spec/aws/models/ec2/key_pair_spec.rb +86 -0
  432. data/spec/aws/models/ec2/key_pairs_spec.rb +71 -0
  433. data/spec/aws/models/ec2/security_group_spec.rb +88 -0
  434. data/spec/aws/models/ec2/security_groups_spec.rb +71 -0
  435. data/spec/aws/models/ec2/server_spec.rb +106 -0
  436. data/spec/aws/models/ec2/servers_spec.rb +21 -0
  437. data/spec/aws/models/ec2/snapshot_spec.rb +75 -0
  438. data/spec/aws/models/ec2/snapshots_spec.rb +85 -0
  439. data/spec/aws/models/ec2/volume_spec.rb +152 -0
  440. data/spec/aws/models/ec2/volumes_spec.rb +71 -0
  441. data/spec/aws/models/s3/directories_spec.rb +49 -0
  442. data/spec/aws/models/s3/directory_spec.rb +112 -0
  443. data/spec/aws/models/s3/file_spec.rb +121 -0
  444. data/spec/aws/models/s3/files_spec.rb +117 -0
  445. data/spec/aws/requests/ec2/describe_images_spec.rb +44 -0
  446. data/spec/aws/requests/s3/copy_object_spec.rb +61 -0
  447. data/spec/aws/requests/s3/delete_bucket_spec.rb +35 -0
  448. data/spec/aws/requests/s3/delete_object_spec.rb +36 -0
  449. data/spec/aws/requests/s3/get_bucket_location_spec.rb +30 -0
  450. data/spec/aws/requests/s3/get_bucket_spec.rb +114 -0
  451. data/spec/aws/requests/s3/get_object_spec.rb +58 -0
  452. data/spec/aws/requests/s3/get_request_payment_spec.rb +30 -0
  453. data/spec/aws/requests/s3/get_service_spec.rb +32 -0
  454. data/spec/aws/requests/s3/head_object_spec.rb +26 -0
  455. data/spec/aws/requests/s3/put_bucket_spec.rb +19 -0
  456. data/spec/aws/requests/s3/put_object_spec.rb +43 -0
  457. data/spec/aws/requests/s3/put_request_payment_spec.rb +29 -0
  458. data/spec/aws/requests/simpledb/batch_put_attributes_spec.rb +31 -0
  459. data/spec/aws/requests/simpledb/create_domain_spec.rb +29 -0
  460. data/spec/aws/requests/simpledb/delete_attributes_spec.rb +39 -0
  461. data/spec/aws/requests/simpledb/delete_domain_spec.rb +28 -0
  462. data/spec/aws/requests/simpledb/domain_metadata_spec.rb +52 -0
  463. data/spec/aws/requests/simpledb/get_attributes_spec.rb +56 -0
  464. data/spec/aws/requests/simpledb/list_domains_spec.rb +30 -0
  465. data/spec/aws/requests/simpledb/put_attributes_spec.rb +49 -0
  466. data/spec/aws/requests/simpledb/select_spec.rb +26 -0
  467. data/spec/bluebox/models/flavors_spec.rb +14 -0
  468. data/spec/bluebox/models/server_spec.rb +25 -0
  469. data/spec/bluebox/models/servers_spec.rb +27 -0
  470. data/spec/compact_progress_bar_formatter.rb +195 -0
  471. data/spec/lorem.txt +1 -0
  472. data/spec/rackspace/models/servers/flavors_spec.rb +14 -0
  473. data/spec/rackspace/models/servers/server_spec.rb +51 -0
  474. data/spec/rackspace/models/servers/servers_spec.rb +22 -0
  475. data/spec/rackspace/requests/files/delete_container_spec.rb +24 -0
  476. data/spec/rackspace/requests/files/delete_object_spec.rb +37 -0
  477. data/spec/rackspace/requests/files/get_container_spec.rb +35 -0
  478. data/spec/rackspace/requests/files/get_containers_spec.rb +22 -0
  479. data/spec/rackspace/requests/files/get_object_spec.rb +21 -0
  480. data/spec/rackspace/requests/files/head_container_spec.rb +30 -0
  481. data/spec/rackspace/requests/files/head_containers_spec.rb +19 -0
  482. data/spec/rackspace/requests/files/head_object_spec.rb +21 -0
  483. data/spec/rackspace/requests/files/put_container_spec.rb +15 -0
  484. data/spec/rackspace/requests/files/put_object_spec.rb +20 -0
  485. data/spec/shared_examples/flavors_examples.rb +16 -0
  486. data/spec/shared_examples/server_examples.rb +43 -0
  487. data/spec/shared_examples/servers_examples.rb +37 -0
  488. data/spec/slicehost/models/flavors_spec.rb +14 -0
  489. data/spec/slicehost/models/server_spec.rb +51 -0
  490. data/spec/slicehost/models/servers_spec.rb +22 -0
  491. data/spec/spec_helper.rb +121 -0
  492. data/spec/vcloud/bin_spec.rb +31 -0
  493. data/spec/vcloud/models/vdc_spec.rb +52 -0
  494. data/spec/vcloud/models/vdcs_spec.rb +1 -0
  495. data/spec/vcloud/requests/get_network_spec.rb +44 -0
  496. data/spec/vcloud/requests/get_organization_spec.rb +53 -0
  497. data/spec/vcloud/requests/get_vdc_spec.rb +63 -0
  498. data/spec/vcloud/requests/get_versions_spec.rb +54 -0
  499. data/spec/vcloud/requests/login_spec.rb +24 -0
  500. data/spec/vcloud/spec_helper.rb +383 -0
  501. data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +66 -0
  502. data/spec/vcloud/terremark/ecloud/models/internet_services_spec.rb +29 -0
  503. data/spec/vcloud/terremark/ecloud/models/ip_spec.rb +36 -0
  504. data/spec/vcloud/terremark/ecloud/models/ips_spec.rb +28 -0
  505. data/spec/vcloud/terremark/ecloud/models/network_spec.rb +69 -0
  506. data/spec/vcloud/terremark/ecloud/models/networks_spec.rb +27 -0
  507. data/spec/vcloud/terremark/ecloud/models/node_spec.rb +38 -0
  508. data/spec/vcloud/terremark/ecloud/models/nodes_spec.rb +29 -0
  509. data/spec/vcloud/terremark/ecloud/models/public_ip_spec.rb +40 -0
  510. data/spec/vcloud/terremark/ecloud/models/public_ips_spec.rb +27 -0
  511. data/spec/vcloud/terremark/ecloud/models/vdc_spec.rb +63 -0
  512. data/spec/vcloud/terremark/ecloud/models/vdcs_spec.rb +28 -0
  513. data/spec/vcloud/terremark/ecloud/requests/add_internet_service_spec.rb +70 -0
  514. data/spec/vcloud/terremark/ecloud/requests/add_node_spec.rb +52 -0
  515. data/spec/vcloud/terremark/ecloud/requests/configure_internet_service_spec.rb +60 -0
  516. data/spec/vcloud/terremark/ecloud/requests/configure_node_spec.rb +58 -0
  517. data/spec/vcloud/terremark/ecloud/requests/delete_internet_service_spec.rb +36 -0
  518. data/spec/vcloud/terremark/ecloud/requests/delete_node_spec.rb +34 -0
  519. data/spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb +115 -0
  520. data/spec/vcloud/terremark/ecloud/requests/get_network_ip_spec.rb +41 -0
  521. data/spec/vcloud/terremark/ecloud/requests/get_network_ips_spec.rb +59 -0
  522. data/spec/vcloud/terremark/ecloud/requests/get_network_spec.rb +41 -0
  523. data/spec/vcloud/terremark/ecloud/requests/get_node_spec.rb +41 -0
  524. data/spec/vcloud/terremark/ecloud/requests/get_nodes_spec.rb +58 -0
  525. data/spec/vcloud/terremark/ecloud/requests/get_public_ip_spec.rb +39 -0
  526. data/spec/vcloud/terremark/ecloud/requests/get_public_ips_spec.rb +52 -0
  527. data/spec/vcloud/terremark/ecloud/requests/get_vdc_spec.rb +110 -0
  528. data/spec/vcloud/terremark/ecloud/requests/login_spec.rb +10 -0
  529. data/spec/vcloud/vcloud_spec.rb +18 -0
  530. data/tests/aws/helper.rb +41 -0
  531. data/tests/aws/models/s3/directory_tests.rb +8 -0
  532. data/tests/aws/requests/ec2/address_tests.rb +80 -0
  533. data/tests/aws/requests/ec2/availability_zone_tests.rb +32 -0
  534. data/tests/aws/requests/ec2/instance_tests.rb +122 -0
  535. data/tests/aws/requests/ec2/key_pair_tests.rb +59 -0
  536. data/tests/aws/requests/ec2/region_tests.rb +30 -0
  537. data/tests/aws/requests/ec2/security_group_tests.rb +128 -0
  538. data/tests/aws/requests/ec2/snapshot_tests.rb +60 -0
  539. data/tests/aws/requests/ec2/volume_tests.rb +105 -0
  540. data/tests/bluebox/helper.rb +26 -0
  541. data/tests/bluebox/requests/block_tests.rb +68 -0
  542. data/tests/bluebox/requests/product_tests.rb +25 -0
  543. data/tests/bluebox/requests/template_tests.rb +32 -0
  544. data/tests/helper.rb +81 -0
  545. data/tests/helper_tests.rb +43 -0
  546. data/tests/helpers/model_helper.rb +76 -0
  547. data/tests/linode/helper.rb +25 -0
  548. data/tests/linode/requests/datacenter_tests.rb +18 -0
  549. data/tests/linode/requests/distribution_tests.rb +30 -0
  550. data/tests/linode/requests/linode_tests.rb +79 -0
  551. data/tests/linode/requests/linodeplans_tests.rb +37 -0
  552. data/tests/rackspace/helper.rb +39 -0
  553. data/tests/rackspace/requests/servers/address_tests.rb +40 -0
  554. data/tests/rackspace/requests/servers/flavor_tests.rb +34 -0
  555. data/tests/rackspace/requests/servers/image_tests.rb +59 -0
  556. data/tests/rackspace/requests/servers/server_tests.rb +83 -0
  557. data/tests/slicehost/helper.rb +16 -0
  558. data/tests/slicehost/requests/backup_tests.rb +17 -0
  559. data/tests/slicehost/requests/flavor_tests.rb +30 -0
  560. data/tests/slicehost/requests/image_tests.rb +28 -0
  561. data/tests/slicehost/requests/slice_tests.rb +63 -0
  562. metadata +778 -0
@@ -0,0 +1,31 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.batch_put_attributes' do
4
+ describe 'success' do
5
+
6
+ before(:all) do
7
+ @domain_name = "fog_domain_#{Time.now.to_i}"
8
+ AWS[:sdb].create_domain(@domain_name)
9
+ end
10
+
11
+ after(:all) do
12
+ AWS[:sdb].delete_domain(@domain_name)
13
+ end
14
+
15
+ it 'should return proper attributes' do
16
+ actual = AWS[:sdb].batch_put_attributes(@domain_name, { 'a' => { 'b' => 'c' }, 'x' => { 'y' => 'z' } })
17
+ actual.body['RequestId'].should be_a(String)
18
+ actual.body['BoxUsage'].should be_a(Float)
19
+ end
20
+
21
+ end
22
+ describe 'failure' do
23
+
24
+ it 'should raise a BadRequest error if the domain does not exist' do
25
+ lambda {
26
+ AWS[:sdb].batch_put_attributes('notadomain', { 'a' => { 'b' => 'c' }, 'x' => { 'y' => 'z' } })
27
+ }.should raise_error(Excon::Errors::BadRequest)
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.create_domain' do
4
+ before(:each) do
5
+ @domain_name = "fog_domain_#{Time.now.to_i}"
6
+ end
7
+
8
+ after(:each) do
9
+ AWS[:sdb].delete_domain(@domain_name)
10
+ end
11
+
12
+ describe 'success' do
13
+
14
+ it 'should return proper attributes' do
15
+ actual = AWS[:sdb].create_domain(@domain_name)
16
+ actual.body['RequestId'].should be_a(String)
17
+ actual.body['BoxUsage'].should be_a(Float)
18
+ end
19
+
20
+ end
21
+ describe 'failure' do
22
+
23
+ it 'should not raise an error if the domain already exists' do
24
+ AWS[:sdb].create_domain(@domain_name)
25
+ AWS[:sdb].create_domain(@domain_name)
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,39 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.delete_attributes' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @domain_name = "fog_domain_#{Time.now.to_i}"
8
+ AWS[:sdb].create_domain(@domain_name)
9
+ AWS[:sdb].put_attributes(@domain_name, 'foo', { :bar => :baz })
10
+ end
11
+
12
+ after(:each) do
13
+ AWS[:sdb].delete_domain(@domain_name)
14
+ end
15
+
16
+ it 'should return proper attributes from delete_attributes' do
17
+ actual = AWS[:sdb].delete_attributes(@domain_name, 'foo')
18
+ actual.body['RequestId'].should be_a(String)
19
+ actual.body['BoxUsage'].should be_a(Float)
20
+ end
21
+
22
+ end
23
+ describe 'failure' do
24
+
25
+ it 'shouild raise a BadRequest error if the domain does not exist' do
26
+ lambda {
27
+ AWS[:sdb].delete_attributes('notadomain', 'notanattribute')
28
+ }.should raise_error(Excon::Errors::BadRequest)
29
+ end
30
+
31
+ it 'should not raise an error if the attribute does not exist' do
32
+ @domain_name = "fog_domain_#{Time.now.to_i}"
33
+ AWS[:sdb].create_domain(@domain_name)
34
+ AWS[:sdb].delete_attributes(@domain_name, 'notanattribute')
35
+ AWS[:sdb].delete_domain(@domain_name)
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.delete_domain' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @domain_name = "fog_domain_#{Time.now.to_i}"
8
+ end
9
+
10
+ before(:each) do
11
+ AWS[:sdb].create_domain(@domain_name)
12
+ end
13
+
14
+ it 'should return proper attributes' do
15
+ actual = AWS[:sdb].delete_domain(@domain_name)
16
+ actual.body['RequestId'].should be_a(String)
17
+ actual.body['BoxUsage'].should be_a(Float)
18
+ end
19
+
20
+ end
21
+ describe 'failure' do
22
+
23
+ it 'should not raise an error if the domain does not exist' do
24
+ AWS[:sdb].delete_domain('notadomain')
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,52 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.domain_metadata' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @domain_name = "fog_domain_#{Time.now.to_i}"
8
+ AWS[:sdb].create_domain(@domain_name)
9
+ end
10
+
11
+ after(:each) do
12
+ AWS[:sdb].delete_domain(@domain_name)
13
+ end
14
+
15
+ it 'should return proper attributes when there are no items' do
16
+ results = AWS[:sdb].domain_metadata(@domain_name)
17
+ results.body['AttributeNameCount'].should == 0
18
+ results.body['AttributeNamesSizeBytes'].should == 0
19
+ results.body['AttributeValueCount'].should == 0
20
+ results.body['AttributeValuesSizeBytes'].should == 0
21
+ results.body['BoxUsage'].should be_a(Float)
22
+ results.body['ItemCount'].should == 0
23
+ results.body['ItemNamesSizeBytes'].should == 0
24
+ results.body['RequestId'].should be_a(String)
25
+ results.body['Timestamp'].should be_a(Time)
26
+ end
27
+
28
+ it 'should return proper attributes with items' do
29
+ AWS[:sdb].put_attributes(@domain_name, 'foo', { :bar => :baz })
30
+ results = AWS[:sdb].domain_metadata(@domain_name)
31
+ results.body['AttributeNameCount'].should == 1
32
+ results.body['AttributeNamesSizeBytes'].should == 3
33
+ results.body['AttributeValueCount'].should == 1
34
+ results.body['AttributeValuesSizeBytes'].should == 3
35
+ results.body['BoxUsage'].should be_a(Float)
36
+ results.body['ItemCount'].should == 1
37
+ results.body['ItemNamesSizeBytes'].should == 3
38
+ results.body['RequestId'].should be_a(String)
39
+ results.body['Timestamp'].should be_a(Time)
40
+ end
41
+
42
+ end
43
+ describe 'failure' do
44
+
45
+ it 'should raise a BadRequest error if the domain does not exist' do
46
+ lambda {
47
+ AWS[:sdb].domain_metadata('notadomain')
48
+ }.should raise_error(Excon::Errors::BadRequest)
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,56 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.get_attributes' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @domain_name = "fog_domain_#{Time.now.to_i}"
8
+ AWS[:sdb].create_domain(@domain_name)
9
+ end
10
+
11
+ after(:each) do
12
+ AWS[:sdb].delete_domain(@domain_name)
13
+ end
14
+
15
+ it 'should have no attributes for foo before put_attributes' do
16
+ eventually do
17
+ actual = AWS[:sdb].get_attributes(@domain_name, 'foo')
18
+ actual.body['Attributes'].should be_empty
19
+ end
20
+ end
21
+
22
+ it 'should return multi-value attributes from get_attributes' do
23
+ AWS[:sdb].put_attributes(@domain_name, 'buzz', { "attr" => "foo" })
24
+ AWS[:sdb].put_attributes(@domain_name, 'buzz', { "attr" => "foo2" })
25
+ eventually do
26
+ actual = AWS[:sdb].get_attributes(@domain_name, 'buzz')
27
+ actual.body["Attributes"]["attr"].should == ['foo', 'foo2']
28
+ end
29
+ end
30
+
31
+ it 'should have attributes for foo after put_attributes' do
32
+ AWS[:sdb].put_attributes(@domain_name, 'foo', { :bar => :baz })
33
+ eventually do
34
+ actual = AWS[:sdb].get_attributes(@domain_name, 'foo')
35
+ actual.body['Attributes'].should == { 'bar' => ['baz'] }
36
+ end
37
+ end
38
+
39
+ end
40
+ describe 'failure' do
41
+
42
+ it 'should raise a BadRequest error if the domain does not exist' do
43
+ lambda {
44
+ AWS[:sdb].get_attributes('notadomain', 'notanattribute')
45
+ }.should raise_error(Excon::Errors::BadRequest)
46
+ end
47
+
48
+ it 'should not raise an error if the attribute does not exist' do
49
+ @domain_name = "fog_domain_#{Time.now.to_i}"
50
+ AWS[:sdb].create_domain(@domain_name)
51
+ AWS[:sdb].get_attributes(@domain_name, 'notanattribute')
52
+ AWS[:sdb].delete_domain(@domain_name)
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,30 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.list_domains' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @domain_name = "fog_domain_#{Time.now.to_i}"
8
+ end
9
+
10
+ after(:each) do
11
+ AWS[:sdb].delete_domain(@domain_name)
12
+ end
13
+
14
+ it 'should return proper attributes' do
15
+ results = AWS[:sdb].list_domains
16
+ results.body['BoxUsage'].should be_a(Float)
17
+ results.body['Domains'].should be_an(Array)
18
+ results.body['RequestId'].should be_a(String)
19
+ end
20
+
21
+ it 'should include created domains' do
22
+ AWS[:sdb].create_domain(@domain_name)
23
+ eventually do
24
+ actual = AWS[:sdb].list_domains
25
+ actual.body['Domains'].should include(@domain_name)
26
+ end
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,49 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.put_attributes' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @domain_name = "fog_domain_#{Time.now.to_i}"
8
+ AWS[:sdb].create_domain(@domain_name)
9
+ end
10
+
11
+ after(:each) do
12
+ AWS[:sdb].delete_domain(@domain_name)
13
+ end
14
+
15
+ it 'should return proper attributes from put_attributes' do
16
+ actual = AWS[:sdb].put_attributes(@domain_name, 'foo', { 'bar' => 'baz' })
17
+ actual.body['RequestId'].should be_a(String)
18
+ actual.body['BoxUsage'].should be_a(Float)
19
+ end
20
+
21
+ it 'conditional put should succeed' do
22
+ AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '1' })
23
+ AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '2' }, :expect => { 'version' => '1' }, :replace => ['version'])
24
+ actual = AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '3' }, :expect => { 'version' => '2' }, :replace => ['version'])
25
+ actual.body['RequestId'].should be_a(String)
26
+ actual.body['BoxUsage'].should be_a(Float)
27
+ end
28
+
29
+ it 'conditional put should raise Conflict error' do
30
+ actual = AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '2' }, :replace => ['version'])
31
+ actual.body['RequestId'].should be_a(String)
32
+ actual.body['BoxUsage'].should be_a(Float)
33
+
34
+ lambda {
35
+ actual = AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '2' }, :expect => { 'version' => '1' }, :replace => ['version'])
36
+ }.should raise_error(Excon::Errors::Conflict)
37
+ end
38
+
39
+ end
40
+ describe 'failure' do
41
+
42
+ it 'should raise a BadRequest error if the domain does not exist' do
43
+ lambda {
44
+ AWS[:sdb].put_attributes(@domain_name, 'notadomain', { 'notanattribute' => 'value' })
45
+ }.should raise_error(Excon::Errors::BadRequest)
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,26 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe 'SimpleDB.select' do
4
+ describe 'success' do
5
+
6
+ before(:each) do
7
+ @domain_name = "fog_domain_#{Time.now.to_i}"
8
+ AWS[:sdb].create_domain(@domain_name)
9
+ end
10
+
11
+ after(:each) do
12
+ AWS[:sdb].delete_domain(@domain_name)
13
+ end
14
+
15
+ it 'should return multi-value attributes when present' do
16
+ @item = "someitem_fog_domain_#{Time.now.to_i}"
17
+ AWS[:sdb].put_attributes(@domain_name, @item, { "attr" => "foo" })
18
+ AWS[:sdb].put_attributes(@domain_name, @item, { "attr" => "foo2" })
19
+ eventually do
20
+ actual = AWS[:sdb].select("select * from #{@domain_name}")
21
+ actual.body['Items'][@item]["attr"].should == ['foo','foo2']
22
+ end
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,14 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../shared_examples/flavors_examples'
3
+
4
+ describe 'Fog::Bluebox::Flavors' do
5
+
6
+ it_should_behave_like "Flavors"
7
+
8
+ subject { @flavor = @flavors.all.first }
9
+
10
+ before(:each) do
11
+ @flavors = Bluebox[:blocks].flavors
12
+ end
13
+
14
+ end
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../shared_examples/server_examples'
3
+
4
+ describe 'Fog::Bluebox::Server' do
5
+
6
+ it_should_behave_like "Server"
7
+
8
+ subject {
9
+ @flavor_id = '94fd37a7-2606-47f7-84d5-9000deda52ae' # Block 1GB Virtual Server
10
+ @image_id = 'a00baa8f-b5d0-4815-8238-b471c4c4bf72' # Ubuntu 9.10 64bit
11
+ @server = @servers.new(:flavor_id => @flavor_id, :image_id => @image_id, :password => "chunkybacon")
12
+ }
13
+
14
+ before(:each) do
15
+ @servers = Bluebox[:blocks].servers
16
+ end
17
+
18
+ after(:each) do
19
+ if @server && !@server.new_record?
20
+ @server.wait_for { ready? }
21
+ @server.destroy.should be_true
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../shared_examples/servers_examples'
3
+
4
+ describe 'Fog::Bluebox::Servers' do
5
+
6
+ it_should_behave_like "Servers"
7
+
8
+ # flavor 1 = 256, image 3 = gentoo 2008.0
9
+ subject {
10
+ @flavor_id = '94fd37a7-2606-47f7-84d5-9000deda52ae' # Block 1GB Virtual Server
11
+ @image_id = 'a00baa8f-b5d0-4815-8238-b471c4c4bf72' # Ubuntu 9.10 64bit
12
+ @server = @servers.new(:flavor_id => @flavor_id, :image_id => @image_id, :password => "chunkybacon")
13
+ @server
14
+ }
15
+
16
+ before(:each) do
17
+ @servers = Bluebox[:blocks].servers
18
+ end
19
+
20
+ after(:each) do
21
+ if @server && !@server.new_record?
22
+ @server.wait_for { ready? }
23
+ @server.destroy.should be_true
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,195 @@
1
+ # Copyright (c) 2008 Nicholas A. Evans
2
+ # http://ekenosen.net/nick/devblog/2008/12/better-progress-bar-for-rspec/
3
+ #
4
+ # With some tweaks (slow spec profiler, growl support)
5
+ # By Nick Zadrozny
6
+ # http://gist.github.com/71340
7
+ #
8
+ # Further tweaks (formatador, elapsed time instead of eta)
9
+ # By geemus (Wesley Beary)
10
+ # http://gist.github.com/266221
11
+ #
12
+ # Permission is hereby granted, free of charge, to any person obtaining
13
+ # a copy of this software and associated documentation files (the
14
+ # "Software"), to deal in the Software without restriction, including
15
+ # without limitation the rights to use, copy, modify, merge, publish,
16
+ # distribute, sublicense, and/or sell copies of the Software, and to
17
+ # permit persons to whom the Software is furnished to do so, subject to
18
+ # the following conditions:
19
+ #
20
+ # The above copyright notice and this permission notice shall be
21
+ # included in all copies or substantial portions of the Software.
22
+ #
23
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
+
31
+ require 'spec/runner/formatter/base_text_formatter'
32
+ require "rubygems"
33
+ require 'formatador'
34
+
35
+ module Spec
36
+ module Runner
37
+ module Formatter
38
+ class CompactProgressBarFormatter < BaseTextFormatter
39
+ # Threshold for slow specs, in seconds.
40
+ # Anything that takes longer than this will be printed out
41
+ # It would be great to get this down to 0.5 or less...
42
+ SLOW_SPEC_THRESHOLD = 2.0
43
+
44
+ # Keep track the slowest specs and print a report at the end
45
+ SLOW_SPEC_REPORT = 3
46
+
47
+ attr_reader :total, :current
48
+
49
+ def start(example_count)
50
+ @current = 0
51
+ @started_at = Time.now
52
+ @total = example_count
53
+ @error_state = :all_passing
54
+ @slow_specs = []
55
+ @formatador = Formatador.new
56
+ @formatador.display_line
57
+ end
58
+
59
+ def example_started(example)
60
+ super
61
+ @start_time = Time.now
62
+ end
63
+
64
+ def example_passed(example)
65
+ elapsed = Time.now - @start_time
66
+ profile_example(example_group.description, example.description, elapsed)
67
+ increment
68
+ end
69
+
70
+ # third param is optional, because earlier versions of rspec sent only two args
71
+ def example_pending(example, message, pending_caller=nil)
72
+ immediately_dump_pending(example.description, message, pending_caller)
73
+ mark_error_state_pending
74
+ increment
75
+ end
76
+
77
+ def example_failed(example, counter, failure)
78
+ immediately_dump_failure(counter, failure)
79
+ notify_failure(counter, failure)
80
+ mark_error_state_failed
81
+ increment
82
+ end
83
+
84
+ def start_dump
85
+ @formatador.display_line("\n")
86
+ report_slow_specs
87
+ end
88
+
89
+ def dump_failure(*args)
90
+ # no-op; we summarized failures as we were running
91
+ end
92
+
93
+ def method_missing(sym, *args)
94
+ # ignore
95
+ end
96
+
97
+ def notify(title, message, priority)
98
+ title = title.gsub(/\s+/, ' ').gsub(/"/,'\"').gsub(/'/, "\'")
99
+ message = message.gsub(/\s+/, ' ').gsub(/"/,'\"').gsub(/'/, "\'").gsub(/`/,'\`')
100
+ notify_command = case RUBY_PLATFORM
101
+ when /darwin/
102
+ "test -x `which growlnotify` && growlnotify -n autotest -p #{priority} -m \"#{message}\" \"#{title}\""
103
+ when /linux/
104
+ "test -x `which notify-send` && notify-send \"#{title}\" \"#{message}\""
105
+ end
106
+ # puts notify_command # use this for debugging purposes
107
+ system notify_command if notify_command
108
+ end
109
+
110
+ def notify_failure(counter, failure)
111
+ notify failure.header, failure.exception.message, 2
112
+ end
113
+
114
+ # stolen and slightly modified from BaseTextFormatter#dump_failure
115
+ def immediately_dump_failure(counter, failure)
116
+ @formatador.redisplay("#{' ' * progress_bar.length}\n")
117
+ @formatador.redisplay("[red]#{counter.to_s})[/]")
118
+ @formatador.display_line("[red]#{failure.header}[/]")
119
+ @formatador.indent do
120
+ @formatador.display_line("[red]#{failure.exception.message}[/]")
121
+ @formatador.display_line
122
+ failure.exception.backtrace.each do |line|
123
+ @formatador.display_line("[red]#{line}[/]")
124
+ end
125
+ @formatador.display_line
126
+ end
127
+ end
128
+
129
+ # stolen and modified from BaseTextFormatter#dump_pending
130
+ def immediately_dump_pending(desc, msg, called_from)
131
+ @formatador.indent do
132
+ @formatador.redisplay("#{' ' * progress_bar.length}\r")
133
+ @formatador.display_line("[yellow]PENDING SPEC:[/] #{desc} (#{msg})\n")
134
+ end
135
+ # output.puts " Called from #{called_from}" if called_from
136
+ end
137
+
138
+ def increment
139
+ @current += 1
140
+ @formatador.redisplay(progress_bar)
141
+ end
142
+
143
+ def mark_error_state_failed
144
+ @error_state = :some_failed
145
+ end
146
+
147
+ def mark_error_state_pending
148
+ @error_state = :some_pending unless @error_state == :some_failed
149
+ end
150
+
151
+ def progress_bar
152
+ color = case @error_state
153
+ when :some_failed
154
+ 'red'
155
+ when :some_pending
156
+ 'yellow'
157
+ else
158
+ 'green'
159
+ end
160
+ ratio = "#{(' ' * (@total.to_s.size - @current.to_s.size))}#{@current}/#{@total}"
161
+ fraction = "[#{color}]#{(' ' * (@total.to_s.size - @current.to_s.size))}#{@current}/#{@total}[/]"
162
+ percent = @current.to_f / @total.to_f
163
+ progress = "[_white_]|[/][#{color}][_#{color}_]#{'*' * (percent * 50).ceil}[/]#{' ' * (50 - (percent * 50).ceil)}[_white_]|[/]"
164
+ microseconds = Time.now - @started_at
165
+ minutes = (microseconds / 60).round.to_s
166
+ seconds = (microseconds % 60).round.to_s
167
+ elapsed = "#{minutes}:#{'0' if seconds.size < 2}#{seconds}"
168
+ [fraction, progress, elapsed, ''].join(' ')
169
+ end
170
+
171
+ def profile_example(group, example, elapsed)
172
+ @slow_specs = (@slow_specs + [[elapsed, group, example]]).sort.reverse[0, SLOW_SPEC_REPORT]
173
+ print_warning_if_really_slow(group, example, elapsed)
174
+ end
175
+
176
+ def print_warning_if_really_slow(group, example, elapsed)
177
+ if elapsed > SLOW_SPEC_THRESHOLD
178
+ @formatador.indent do
179
+ @formatador.redisplay("#{' ' * progress_bar.length}\r")
180
+ @formatador.display_line("[yellow]SLOW SPEC (#{sprintf("%.4f", elapsed)})[/]: #{group} #{example}\n")
181
+ end
182
+ end
183
+ end
184
+
185
+ def report_slow_specs
186
+ @formatador.display_line("[yellow]Top #{@slow_specs.size} slowest specs:[/]")
187
+ @slow_specs.each do |elapsed, group, example|
188
+ @formatador.display_line("[yellow] #{yellow(sprintf('%.4f', elapsed))} #{group} #{example}[/]")
189
+ end
190
+ end
191
+
192
+ end
193
+ end
194
+ end
195
+ end