poolparty 1.3.15 → 1.4.0

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 (1171) hide show
  1. data/README.rdoc +2 -87
  2. data/Rakefile +85 -45
  3. data/VERSION.yml +2 -2
  4. data/bin/cloud +6 -10
  5. data/bin/cloud-bootstrap +2 -4
  6. data/bin/cloud-compile +1 -7
  7. data/bin/cloud-configure +1 -9
  8. data/bin/cloud-console +3 -6
  9. data/bin/cloud-contract +3 -7
  10. data/bin/cloud-list +4 -3
  11. data/bin/cloud-reboot +25 -0
  12. data/bin/cloud-show +13 -5
  13. data/bin/cloud-start +1 -26
  14. data/bin/cloud-terminate +3 -3
  15. data/examples/README.md +57 -0
  16. data/examples/chef_cloud/chef-repo/README +3 -0
  17. data/examples/chef_cloud/chef-repo/Rakefile +35 -0
  18. data/examples/chef_cloud/chef-repo/certificates/README +1 -0
  19. data/examples/chef_cloud/chef-repo/config/client.rb.example +22 -0
  20. data/examples/chef_cloud/chef-repo/config/rake.rb +60 -0
  21. data/examples/chef_cloud/chef-repo/config/server.rb.example +33 -0
  22. data/examples/chef_cloud/chef-repo/config/solo.rb.example +9 -0
  23. data/examples/chef_cloud/chef-repo/cookbooks/README +1 -0
  24. data/examples/chef_cloud/chef-repo/cookbooks/apache2/README.rdoc +68 -0
  25. data/examples/chef_cloud/chef-repo/cookbooks/apache2/attributes/apache.rb +74 -0
  26. data/examples/chef_cloud/chef-repo/cookbooks/apache2/definitions/apache_conf.rb +25 -0
  27. data/examples/chef_cloud/chef-repo/cookbooks/apache2/definitions/apache_module.rb +43 -0
  28. data/examples/chef_cloud/chef-repo/cookbooks/apache2/definitions/apache_site.rb +40 -0
  29. data/examples/chef_cloud/chef-repo/cookbooks/apache2/definitions/web_app.rb +49 -0
  30. data/examples/chef_cloud/chef-repo/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +41 -0
  31. data/examples/chef_cloud/chef-repo/cookbooks/apache2/metadata.json +508 -0
  32. data/examples/chef_cloud/chef-repo/cookbooks/apache2/metadata.rb +191 -0
  33. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/default.rb +191 -0
  34. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/god_monitor.rb +33 -0
  35. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_alias.rb +22 -0
  36. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_auth_basic.rb +20 -0
  37. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_auth_digest.rb +20 -0
  38. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_authn_file.rb +20 -0
  39. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_authnz_ldap.rb +20 -0
  40. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_authz_default.rb +20 -0
  41. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_authz_groupfile.rb +20 -0
  42. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_authz_host.rb +20 -0
  43. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_authz_user.rb +20 -0
  44. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_autoindex.rb +22 -0
  45. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_cgi.rb +20 -0
  46. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_dav.rb +20 -0
  47. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_dav_svn.rb +22 -0
  48. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_deflate.rb +22 -0
  49. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_dir.rb +22 -0
  50. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_env.rb +20 -0
  51. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_expires.rb +20 -0
  52. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_fcgid.rb +46 -0
  53. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_headers.rb +20 -0
  54. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_ldap.rb +20 -0
  55. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_log_config.rb +24 -0
  56. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_mime.rb +22 -0
  57. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_negotiation.rb +22 -0
  58. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_php5.rb +32 -0
  59. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_proxy.rb +22 -0
  60. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_proxy_ajp.rb +20 -0
  61. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_proxy_balancer.rb +20 -0
  62. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_proxy_connect.rb +20 -0
  63. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_proxy_http.rb +20 -0
  64. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_python.rb +22 -0
  65. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_rails.rb +43 -0
  66. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_rewrite.rb +20 -0
  67. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_setenvif.rb +22 -0
  68. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_ssl.rb +42 -0
  69. data/examples/chef_cloud/chef-repo/cookbooks/apache2/recipes/mod_status.rb +22 -0
  70. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/a2enmod.erb +37 -0
  71. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/apache2.conf.erb +230 -0
  72. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/apache2.god.erb +19 -0
  73. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/charset.erb +6 -0
  74. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/default-site.erb +57 -0
  75. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/README +2 -0
  76. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/alias.conf.erb +24 -0
  77. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/autoindex.conf.erb +101 -0
  78. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/deflate.conf.erb +3 -0
  79. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/dir.conf.erb +5 -0
  80. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/fcgid.conf.erb +10 -0
  81. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/mime.conf.erb +191 -0
  82. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/negotiation.conf.erb +18 -0
  83. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/proxy.conf.erb +19 -0
  84. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/setenvif.conf.erb +28 -0
  85. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/ssl.conf.erb +72 -0
  86. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/mods/status.conf.erb +16 -0
  87. data/examples/chef_cloud/chef-repo/cookbooks/apache2/templates/default/security.erb +50 -0
  88. data/examples/chef_cloud/chef-repo/cookbooks/apt/files/default/apt-cacher +9 -0
  89. data/examples/chef_cloud/chef-repo/cookbooks/apt/files/default/apt-cacher.conf +144 -0
  90. data/examples/chef_cloud/chef-repo/cookbooks/apt/files/default/apt-proxy-v2.conf +50 -0
  91. data/examples/chef_cloud/chef-repo/cookbooks/apt/metadata.json +51 -0
  92. data/examples/chef_cloud/chef-repo/cookbooks/apt/metadata.rb +11 -0
  93. data/examples/chef_cloud/chef-repo/cookbooks/apt/recipes/cacher.rb +42 -0
  94. data/examples/chef_cloud/chef-repo/cookbooks/apt/recipes/default.rb +31 -0
  95. data/examples/chef_cloud/chef-repo/cookbooks/apt/recipes/proxy.rb +34 -0
  96. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/README.rdoc +165 -0
  97. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/attributes/bootstrap.rb +49 -0
  98. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/metadata.json +57 -0
  99. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/metadata.rb +10 -0
  100. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/recipes/client.rb +94 -0
  101. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/recipes/default.rb +18 -0
  102. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/recipes/server.rb +120 -0
  103. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/templates/default/client.rb.erb +30 -0
  104. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/templates/default/server.rb.erb +32 -0
  105. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/templates/default/sv-chef-client-log-run.erb +2 -0
  106. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/templates/default/sv-chef-client-run.erb +4 -0
  107. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/templates/default/sv-chef-indexer-log-run.erb +2 -0
  108. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/templates/default/sv-chef-indexer-run.erb +4 -0
  109. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/templates/default/sv-chef-server-log-run.erb +2 -0
  110. data/examples/chef_cloud/chef-repo/cookbooks/bootstrap/templates/default/sv-chef-server-run.erb +4 -0
  111. data/examples/chef_cloud/chef-repo/cookbooks/chef/README.rdoc +221 -0
  112. data/examples/chef_cloud/chef-repo/cookbooks/chef/attributes/chef.rb +60 -0
  113. data/examples/chef_cloud/chef-repo/cookbooks/chef/metadata.json +231 -0
  114. data/examples/chef_cloud/chef-repo/cookbooks/chef/metadata.rb +87 -0
  115. data/examples/chef_cloud/chef-repo/cookbooks/chef/recipes/client.rb +76 -0
  116. data/examples/chef_cloud/chef-repo/cookbooks/chef/recipes/server.rb +75 -0
  117. data/examples/chef_cloud/chef-repo/cookbooks/chef/recipes/server_proxy.rb +59 -0
  118. data/examples/chef_cloud/chef-repo/cookbooks/chef/templates/default/chef_server.conf.erb +49 -0
  119. data/examples/chef_cloud/chef-repo/cookbooks/chef/templates/default/client.rb.erb +30 -0
  120. data/examples/chef_cloud/chef-repo/cookbooks/chef/templates/default/server.rb.erb +32 -0
  121. data/examples/chef_cloud/chef-repo/cookbooks/ec2/attributes/ec2_metadata.rb +44 -0
  122. data/examples/chef_cloud/chef-repo/cookbooks/ec2/attributes/ec2_recipe_options.rb +30 -0
  123. data/examples/chef_cloud/chef-repo/cookbooks/ec2/metadata.rb +9 -0
  124. data/examples/chef_cloud/chef-repo/cookbooks/ec2/recipes/default.rb +19 -0
  125. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/README.rdoc +8 -0
  126. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/attributes/default.rb +14 -0
  127. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/metadata.rb +12 -0
  128. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/recipes/default.rb +141 -0
  129. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/recipes/gmetad.rb +44 -0
  130. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/recipes/monitor_sshd.rb +14 -0
  131. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/recipes/monitor_watson.rb +14 -0
  132. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/recipes/web.rb +17 -0
  133. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/templates/default/bin/gmetad.erb +38 -0
  134. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/templates/default/bin/gmond.erb +38 -0
  135. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/templates/default/bin/monitors/sshd_ganglia.sh.erb +13 -0
  136. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/templates/default/bin/monitors/watson_channels.sh.erb +13 -0
  137. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/templates/default/ganglia-web-conf.php.erb +191 -0
  138. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/templates/default/gmetad.conf.erb +117 -0
  139. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/templates/default/gmond.conf.erb +426 -0
  140. data/examples/chef_cloud/chef-repo/cookbooks/ganglia/templates/default/jaunty.sources.list.erb +6 -0
  141. data/examples/chef_cloud/chef-repo/cookbooks/ntp/attributes/ntp.rb +11 -0
  142. data/examples/chef_cloud/chef-repo/cookbooks/ntp/metadata.json +97 -0
  143. data/examples/chef_cloud/chef-repo/cookbooks/ntp/metadata.rb +31 -0
  144. data/examples/chef_cloud/chef-repo/cookbooks/ntp/recipes/default.rb +41 -0
  145. data/examples/chef_cloud/chef-repo/cookbooks/ntp/templates/default/ntp.conf.erb +21 -0
  146. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/README.rdoc +55 -0
  147. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/attributes/rsyslog.rb +24 -0
  148. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/files/default/rsyslog.default +9 -0
  149. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/files/ubuntu-8.04/rsyslog.default +13 -0
  150. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/files/ubuntu-9.10/rsyslog.default +9 -0
  151. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/metadata.json +88 -0
  152. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/metadata.rb +29 -0
  153. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/recipes/client.rb +40 -0
  154. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/recipes/default.rb +61 -0
  155. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/recipes/server.rb +48 -0
  156. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/templates/default/remote.conf.erb +6 -0
  157. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/templates/default/rsyslog.conf.erb +121 -0
  158. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/templates/default/server.conf.erb +58 -0
  159. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/templates/ubuntu-9.10/50-default.conf.erb +69 -0
  160. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/templates/ubuntu-9.10/remote.conf.erb +6 -0
  161. data/examples/chef_cloud/chef-repo/cookbooks/rsyslog/templates/ubuntu-9.10/server.conf.erb +58 -0
  162. data/examples/chef_cloud/chef-repo/cookbooks/runit/attributes/sv_bin.rb +27 -0
  163. data/examples/chef_cloud/chef-repo/cookbooks/runit/definitions/runit_service.rb +75 -0
  164. data/examples/chef_cloud/chef-repo/cookbooks/runit/files/ubuntu-6.10/runsvdir +6 -0
  165. data/examples/chef_cloud/chef-repo/cookbooks/runit/files/ubuntu-7.04/runsvdir +7 -0
  166. data/examples/chef_cloud/chef-repo/cookbooks/runit/files/ubuntu-7.10/runsvdir +7 -0
  167. data/examples/chef_cloud/chef-repo/cookbooks/runit/files/ubuntu-8.04/runsvdir +7 -0
  168. data/examples/chef_cloud/chef-repo/cookbooks/runit/metadata.json +85 -0
  169. data/examples/chef_cloud/chef-repo/cookbooks/runit/metadata.rb +30 -0
  170. data/examples/chef_cloud/chef-repo/cookbooks/runit/recipes/default.rb +46 -0
  171. data/examples/chef_cloud/chef-repo/roles/README +1 -0
  172. data/examples/chef_cloud/chef-repo/roles/chef-upgrade.rb +14 -0
  173. data/examples/chef_cloud/chef-repo/site-cookbooks/README +1 -0
  174. data/examples/chef_cloud/chef-repo/site-cookbooks/collectd/README.rdoc +9 -0
  175. data/examples/chef_cloud/chef-repo/site-cookbooks/collectd/attributes/collectd.rb +3 -0
  176. data/examples/chef_cloud/chef-repo/site-cookbooks/collectd/files/ubuntu/collectd.default +17 -0
  177. data/examples/chef_cloud/chef-repo/site-cookbooks/collectd/metadata.rb +6 -0
  178. data/examples/chef_cloud/chef-repo/site-cookbooks/collectd/recipes/default.rb +62 -0
  179. data/examples/chef_cloud/chef-repo/site-cookbooks/collectd/templates/default/collectd.conf.erb +107 -0
  180. data/examples/chef_cloud/chef-repo/site-cookbooks/collectd/templates/default/collection.conf.erb +2 -0
  181. data/examples/chef_cloud/chef-repo/site-cookbooks/collectd/templates/default/collection3.conf.erb +4 -0
  182. data/examples/chef_cloud/chef-repo/site-cookbooks/hosts/attributes/hosts.rb +1 -0
  183. data/examples/chef_cloud/chef-repo/site-cookbooks/hosts/metadata.rb +4 -0
  184. data/examples/chef_cloud/chef-repo/site-cookbooks/hosts/recipes/default.rb +3 -0
  185. data/examples/chef_cloud/chef-repo/site-cookbooks/hosts/templates/default/hosts.erb +18 -0
  186. data/examples/chef_cloud/chef-repo/site-cookbooks/sysadmin/recipes/default.rb +22 -0
  187. data/examples/chef_cloud/chef-repo/site-cookbooks/ubuntu/metadata.json +42 -0
  188. data/examples/chef_cloud/chef-repo/site-cookbooks/ubuntu/metadata.rb +7 -0
  189. data/examples/chef_cloud/chef-repo/site-cookbooks/ubuntu/recipes/default.rb +31 -0
  190. data/examples/chef_cloud/chef-repo/site-cookbooks/ubuntu/templates/default/sources.list.erb +16 -0
  191. data/examples/chef_cloud/sample +2 -0
  192. data/examples/chef_cloud.rb +24 -0
  193. data/examples/ec2_infrastructure_only.rb +80 -0
  194. data/examples/simple.rb +22 -10
  195. data/lib/cloud_providers/cloud_provider.rb +43 -63
  196. data/lib/cloud_providers/connections.rb +29 -11
  197. data/lib/cloud_providers/default/base.rb +4 -0
  198. data/lib/cloud_providers/ec2/ec2.rb +258 -143
  199. data/lib/cloud_providers/ec2/ec2_instance.rb +87 -82
  200. data/lib/cloud_providers/ec2/helpers/authorize.rb +33 -0
  201. data/lib/cloud_providers/ec2/helpers/ec2_helper.rb +30 -0
  202. data/lib/cloud_providers/ec2/helpers/elastic_auto_scaler.rb +300 -0
  203. data/lib/cloud_providers/ec2/helpers/elastic_block_store.rb +9 -0
  204. data/lib/cloud_providers/ec2/helpers/elastic_ip.rb +33 -0
  205. data/lib/cloud_providers/ec2/helpers/elastic_load_balancer.rb +200 -0
  206. data/lib/cloud_providers/ec2/helpers/revoke.rb +24 -0
  207. data/lib/cloud_providers/ec2/helpers/security_group.rb +98 -0
  208. data/lib/cloud_providers/remote_instance.rb +139 -0
  209. data/lib/cloud_providers.rb +4 -4
  210. data/lib/core/array.rb +0 -37
  211. data/lib/core/hash.rb +11 -37
  212. data/lib/core/object.rb +5 -86
  213. data/lib/core/string.rb +1 -103
  214. data/lib/keypair.rb +22 -11
  215. data/lib/poolparty/base.rb +15 -216
  216. data/lib/poolparty/chef_attribute.rb +36 -0
  217. data/lib/poolparty/cloud.rb +222 -260
  218. data/lib/poolparty/pool.rb +18 -171
  219. data/lib/poolparty.rb +6 -25
  220. data/test/fixtures/clouds/simple_cloud.rb +4 -6
  221. data/test/fixtures/ec2/ec2-describe-instances_response_body.xml +2 -2
  222. data/test/fixtures/ec2/elb-describe-load-balancers.xml +75 -0
  223. data/test/fixtures/resources/fake_plugin.rb +5 -0
  224. data/test/lib/core/array_test.rb +1 -34
  225. data/test/lib/core/hash_test.rb +12 -20
  226. data/test/lib/core/object_test.rb +6 -34
  227. data/test/lib/core/string_test.rb +2 -35
  228. data/test/lib/core/symbol_test.rb +0 -4
  229. data/test/lib/poolparty/cloud_test.rb +14 -133
  230. data/test/lib/poolparty/keypair_test.rb +1 -3
  231. data/test/lib/poolparty/pool_test.rb +5 -19
  232. data/test/test_methods.rb +6 -11
  233. data/vendor/gems/amazon-ec2/ChangeLog +289 -0
  234. data/vendor/gems/amazon-ec2/LICENSE +66 -0
  235. data/vendor/gems/amazon-ec2/README.rdoc +356 -0
  236. data/vendor/gems/amazon-ec2/README_dev.rdoc +12 -0
  237. data/vendor/gems/amazon-ec2/Rakefile +101 -0
  238. data/vendor/gems/amazon-ec2/VERSION +1 -0
  239. data/vendor/gems/amazon-ec2/amazon-ec2.gemspec +134 -0
  240. data/vendor/gems/amazon-ec2/bin/ec2-gem-example.rb +137 -0
  241. data/vendor/gems/amazon-ec2/bin/ec2-gem-profile.rb +10 -0
  242. data/vendor/gems/amazon-ec2/bin/ec2sh +62 -0
  243. data/vendor/gems/amazon-ec2/bin/setup.rb +28 -0
  244. data/vendor/gems/amazon-ec2/deps.rip +1 -0
  245. data/vendor/gems/amazon-ec2/lib/AWS/Autoscaling/autoscaling.rb +283 -0
  246. data/vendor/gems/amazon-ec2/lib/AWS/Autoscaling.rb +70 -0
  247. data/vendor/gems/amazon-ec2/lib/AWS/Cloudwatch/monitoring.rb +80 -0
  248. data/vendor/gems/amazon-ec2/lib/AWS/Cloudwatch.rb +32 -0
  249. data/vendor/gems/amazon-ec2/lib/AWS/EC2/availability_zones.rb +21 -0
  250. data/vendor/gems/amazon-ec2/lib/AWS/EC2/console.rb +23 -0
  251. data/vendor/gems/amazon-ec2/lib/AWS/EC2/elastic_ips.rb +81 -0
  252. data/vendor/gems/amazon-ec2/lib/AWS/EC2/image_attributes.rb +133 -0
  253. data/vendor/gems/amazon-ec2/lib/AWS/EC2/images.rb +101 -0
  254. data/vendor/gems/amazon-ec2/lib/AWS/EC2/instances.rb +212 -0
  255. data/vendor/gems/amazon-ec2/lib/AWS/EC2/keypairs.rb +61 -0
  256. data/vendor/gems/amazon-ec2/lib/AWS/EC2/products.rb +21 -0
  257. data/vendor/gems/amazon-ec2/lib/AWS/EC2/security_groups.rb +183 -0
  258. data/vendor/gems/amazon-ec2/lib/AWS/EC2/snapshots.rb +59 -0
  259. data/vendor/gems/amazon-ec2/lib/AWS/EC2/volumes.rb +115 -0
  260. data/vendor/gems/amazon-ec2/lib/AWS/EC2.rb +33 -0
  261. data/vendor/gems/amazon-ec2/lib/AWS/ELB/load_balancers.rb +205 -0
  262. data/vendor/gems/amazon-ec2/lib/AWS/ELB.rb +71 -0
  263. data/vendor/gems/amazon-ec2/lib/AWS/exceptions.rb +122 -0
  264. data/vendor/gems/amazon-ec2/lib/AWS/responses.rb +21 -0
  265. data/vendor/gems/amazon-ec2/lib/AWS.rb +294 -0
  266. data/vendor/gems/amazon-ec2/perftools/ec2prof +0 -0
  267. data/vendor/gems/amazon-ec2/perftools/ec2prof-results.dot +193 -0
  268. data/vendor/gems/amazon-ec2/perftools/ec2prof-results.txt +126 -0
  269. data/vendor/gems/amazon-ec2/perftools/ec2prof.symbols +129 -0
  270. data/vendor/gems/amazon-ec2/test/test_Autoscaling_groups.rb +336 -0
  271. data/vendor/gems/amazon-ec2/test/test_EC2.rb +68 -0
  272. data/vendor/gems/amazon-ec2/test/test_EC2_availability_zones.rb +49 -0
  273. data/vendor/gems/amazon-ec2/test/test_EC2_console.rb +54 -0
  274. data/vendor/gems/amazon-ec2/test/test_EC2_elastic_ips.rb +144 -0
  275. data/vendor/gems/amazon-ec2/test/test_EC2_image_attributes.rb +238 -0
  276. data/vendor/gems/amazon-ec2/test/test_EC2_images.rb +197 -0
  277. data/vendor/gems/amazon-ec2/test/test_EC2_instances.rb +429 -0
  278. data/vendor/gems/amazon-ec2/test/test_EC2_keypairs.rb +123 -0
  279. data/vendor/gems/amazon-ec2/test/test_EC2_products.rb +48 -0
  280. data/vendor/gems/amazon-ec2/test/test_EC2_responses.rb +53 -0
  281. data/vendor/gems/amazon-ec2/test/test_EC2_s3_xmlsimple.rb +80 -0
  282. data/vendor/gems/amazon-ec2/test/test_EC2_security_groups.rb +205 -0
  283. data/vendor/gems/amazon-ec2/test/test_EC2_snapshots.rb +83 -0
  284. data/vendor/gems/amazon-ec2/test/test_EC2_volumes.rb +142 -0
  285. data/vendor/gems/amazon-ec2/test/test_ELB_load_balancers.rb +239 -0
  286. data/vendor/gems/amazon-ec2/test/test_helper.rb +23 -0
  287. data/vendor/gems/amazon-ec2/wsdl/2007-08-29.ec2.wsdl +1269 -0
  288. data/vendor/gems/amazon-ec2/wsdl/2008-02-01.ec2.wsdl +1614 -0
  289. data/vendor/gems/amazon-ec2/wsdl/2008-05-05.ec2.wsdl +2052 -0
  290. data/vendor/gems/amazon-ec2/wsdl/2008-12-01.ec2.wsdl +2354 -0
  291. data/vendor/gems/searchable_paths/README.rdoc +18 -0
  292. data/vendor/gems/searchable_paths/Rakefile +56 -0
  293. data/vendor/gems/searchable_paths/lib/searchable_paths.rb +81 -0
  294. data/vendor/gems/searchable_paths/test/searchable_paths_test.rb +74 -0
  295. data/vendor/gems/searchable_paths/test/test_helper.rb +16 -0
  296. metadata +269 -886
  297. data/bin/cloud-misc +0 -34
  298. data/bin/cloud-osxcopy +0 -26
  299. data/bin/cloud-setup +0 -36
  300. data/bin/cloud-thrift +0 -91
  301. data/bin/cloud-verify +0 -40
  302. data/examples/basic.rb +0 -30
  303. data/examples/custom_bootstrap.sh +0 -7
  304. data/examples/deploy.rb +0 -5
  305. data/examples/eucalyptus.rb +0 -63
  306. data/examples/eucalyptus_test_run.sh +0 -31
  307. data/examples/monitored_cloud.rb +0 -22
  308. data/examples/ssh_garden.rb +0 -21
  309. data/examples/thrift/erlang/Emakefile +0 -5
  310. data/examples/thrift/erlang/Makefile +0 -26
  311. data/examples/thrift/erlang/deps/thrift/COPYING +0 -24
  312. data/examples/thrift/erlang/deps/thrift/LICENSE +0 -24
  313. data/examples/thrift/erlang/deps/thrift/Makefile +0 -18
  314. data/examples/thrift/erlang/deps/thrift/README +0 -31
  315. data/examples/thrift/erlang/deps/thrift/build/beamver +0 -59
  316. data/examples/thrift/erlang/deps/thrift/build/buildtargets.mk +0 -14
  317. data/examples/thrift/erlang/deps/thrift/build/colors.mk +0 -24
  318. data/examples/thrift/erlang/deps/thrift/build/docs.mk +0 -12
  319. data/examples/thrift/erlang/deps/thrift/build/mime.types +0 -98
  320. data/examples/thrift/erlang/deps/thrift/build/otp.mk +0 -146
  321. data/examples/thrift/erlang/deps/thrift/build/otp_subdir.mk +0 -85
  322. data/examples/thrift/erlang/deps/thrift/build/raw_test.mk +0 -29
  323. data/examples/thrift/erlang/deps/thrift/ebin/thrift.app +0 -44
  324. data/examples/thrift/erlang/deps/thrift/ebin/thrift.appup +0 -1
  325. data/examples/thrift/erlang/deps/thrift/include/thrift_constants.hrl +0 -40
  326. data/examples/thrift/erlang/deps/thrift/include/thrift_protocol.hrl +0 -12
  327. data/examples/thrift/erlang/deps/thrift/src/Makefile +0 -116
  328. data/examples/thrift/erlang/deps/thrift/src/test_handler.erl +0 -7
  329. data/examples/thrift/erlang/deps/thrift/src/test_service.erl +0 -10
  330. data/examples/thrift/erlang/deps/thrift/src/thrift.app.src +0 -44
  331. data/examples/thrift/erlang/deps/thrift/src/thrift.appup.src +0 -1
  332. data/examples/thrift/erlang/deps/thrift/src/thrift_app.erl +0 -55
  333. data/examples/thrift/erlang/deps/thrift/src/thrift_base64_transport.erl +0 -45
  334. data/examples/thrift/erlang/deps/thrift/src/thrift_binary_protocol.erl +0 -318
  335. data/examples/thrift/erlang/deps/thrift/src/thrift_buffered_transport.erl +0 -168
  336. data/examples/thrift/erlang/deps/thrift/src/thrift_client.erl +0 -328
  337. data/examples/thrift/erlang/deps/thrift/src/thrift_disk_log_transport.erl +0 -106
  338. data/examples/thrift/erlang/deps/thrift/src/thrift_file_transport.erl +0 -69
  339. data/examples/thrift/erlang/deps/thrift/src/thrift_framed_transport.erl +0 -196
  340. data/examples/thrift/erlang/deps/thrift/src/thrift_http_transport.erl +0 -169
  341. data/examples/thrift/erlang/deps/thrift/src/thrift_processor.erl +0 -174
  342. data/examples/thrift/erlang/deps/thrift/src/thrift_protocol.erl +0 -326
  343. data/examples/thrift/erlang/deps/thrift/src/thrift_server.erl +0 -171
  344. data/examples/thrift/erlang/deps/thrift/src/thrift_service.erl +0 -6
  345. data/examples/thrift/erlang/deps/thrift/src/thrift_socket_server.erl +0 -245
  346. data/examples/thrift/erlang/deps/thrift/src/thrift_socket_transport.erl +0 -100
  347. data/examples/thrift/erlang/deps/thrift/src/thrift_sup.erl +0 -53
  348. data/examples/thrift/erlang/deps/thrift/src/thrift_transport.erl +0 -38
  349. data/examples/thrift/erlang/deps/thrift/vsn.mk +0 -1
  350. data/examples/thrift/erlang/include/commandInterface_thrift.hrl +0 -5
  351. data/examples/thrift/erlang/include/poolparty_constants.hrl +0 -9
  352. data/examples/thrift/erlang/include/poolparty_types.hrl +0 -8
  353. data/examples/thrift/erlang/src/commandInterface_thrift.erl +0 -29
  354. data/examples/thrift/erlang/src/poolparty_types.erl +0 -30
  355. data/examples/thrift/erlang/src/thrift_example.erl +0 -32
  356. data/examples/thrift/thrift_example.py +0 -28
  357. data/examples/thrift/thrift_example.rb +0 -40
  358. data/examples/vmware.rb +0 -28
  359. data/lib/cloud_providers/cloud_provider_instance.rb +0 -288
  360. data/lib/cloud_providers/ec2/ec2_helpers.rb +0 -100
  361. data/lib/cloud_providers/ec2/ec2_response.rb +0 -79
  362. data/lib/cloud_providers/ssh/ssh.rb +0 -68
  363. data/lib/cloud_providers/ssh/ssh_instance.rb +0 -41
  364. data/lib/cloud_providers/vmware/vmware.rb +0 -130
  365. data/lib/cloud_providers/vmware/vmware_instance.rb +0 -56
  366. data/lib/core/file.rb +0 -12
  367. data/lib/core/integer.rb +0 -11
  368. data/lib/core/module.rb +0 -14
  369. data/lib/core/proc.rb +0 -55
  370. data/lib/core/time.rb +0 -62
  371. data/lib/dependency_resolver.rb +0 -11
  372. data/lib/dependency_resolvers/base.rb +0 -115
  373. data/lib/dependency_resolvers/chef/resources/chef_attributes_file.rb +0 -51
  374. data/lib/dependency_resolvers/chef/resources/chef_recipe.rb +0 -51
  375. data/lib/dependency_resolvers/chef/resources/http_request.rb +0 -39
  376. data/lib/dependency_resolvers/chef/resources/remote_directory.rb +0 -54
  377. data/lib/dependency_resolvers/chef/resources/remote_file.rb +0 -69
  378. data/lib/dependency_resolvers/chef/resources/route.rb +0 -52
  379. data/lib/dependency_resolvers/chef/resources/script.rb +0 -62
  380. data/lib/dependency_resolvers/chef.rb +0 -239
  381. data/lib/dependency_resolvers/proxy_object.rb +0 -98
  382. data/lib/mixins/askable.rb +0 -163
  383. data/lib/mixins/callbacks.rb +0 -56
  384. data/lib/mixins/delayed.rb +0 -65
  385. data/lib/mixins/pinger.rb +0 -31
  386. data/lib/mixins/printing.rb +0 -35
  387. data/lib/mixins/searchable_paths.rb +0 -87
  388. data/lib/poolparty/default.rb +0 -33
  389. data/lib/poolparty/dsl_base.rb +0 -36
  390. data/lib/poolparty/installer.rb +0 -111
  391. data/lib/poolparty/installers/ec2.rb +0 -88
  392. data/lib/poolparty/installers/vmware.rb +0 -161
  393. data/lib/poolparty/monitor.rb +0 -83
  394. data/lib/poolparty/plugin.rb +0 -8
  395. data/lib/poolparty/plugins/apache.rb +0 -228
  396. data/lib/poolparty/plugins/apache2/apache2.conf.erb +0 -630
  397. data/lib/poolparty/plugins/apache2/base.conf.erb +0 -171
  398. data/lib/poolparty/plugins/apache2/browser_fixes.conf.erb +0 -26
  399. data/lib/poolparty/plugins/apache2/default-site.conf.erb +0 -41
  400. data/lib/poolparty/plugins/apache2/mime-minimal.conf.erb +0 -15
  401. data/lib/poolparty/plugins/apache2/passenger_site.rb +0 -83
  402. data/lib/poolparty/plugins/apache2/php5.rb +0 -41
  403. data/lib/poolparty/plugins/apache2/virtual_host.rb +0 -59
  404. data/lib/poolparty/plugins/collectd/templates/collectd.conf.erb +0 -369
  405. data/lib/poolparty/plugins/collectd.rb +0 -24
  406. data/lib/poolparty/plugins/git/git_repository.rb +0 -83
  407. data/lib/poolparty/plugins/git.rb +0 -20
  408. data/lib/poolparty/plugins/hermes.rb +0 -102
  409. data/lib/poolparty/plugins/rails/app.rb +0 -29
  410. data/lib/poolparty/plugins/rails.rb +0 -25
  411. data/lib/poolparty/pool_party_log.rb +0 -47
  412. data/lib/poolparty/resource.rb +0 -296
  413. data/lib/poolparty/resources/conditional.rb +0 -65
  414. data/lib/poolparty/resources/cron.rb +0 -64
  415. data/lib/poolparty/resources/directory.rb +0 -54
  416. data/lib/poolparty/resources/exec.rb +0 -61
  417. data/lib/poolparty/resources/file.rb +0 -87
  418. data/lib/poolparty/resources/gem_package.rb +0 -55
  419. data/lib/poolparty/resources/group.rb +0 -46
  420. data/lib/poolparty/resources/line.rb +0 -67
  421. data/lib/poolparty/resources/link.rb +0 -50
  422. data/lib/poolparty/resources/mount.rb +0 -57
  423. data/lib/poolparty/resources/package.rb +0 -55
  424. data/lib/poolparty/resources/service.rb +0 -58
  425. data/lib/poolparty/resources/user.rb +0 -63
  426. data/lib/poolparty/resources/variable.rb +0 -61
  427. data/lib/proto/command_interface_handler.rb +0 -66
  428. data/lib/proto/command_query_handler.rb +0 -19
  429. data/lib/proto/gen-erl/commandInterface_thrift.erl +0 -29
  430. data/lib/proto/gen-erl/commandInterface_thrift.hrl +0 -5
  431. data/lib/proto/gen-erl/poolparty_constants.hrl +0 -9
  432. data/lib/proto/gen-erl/poolparty_types.erl +0 -30
  433. data/lib/proto/gen-erl/poolparty_types.hrl +0 -8
  434. data/lib/proto/gen-py/cloudthrift/CommandInterface-remote +0 -79
  435. data/lib/proto/gen-py/cloudthrift/CommandInterface.py +0 -251
  436. data/lib/proto/gen-py/cloudthrift/CommandInterface.pyc +0 -0
  437. data/lib/proto/gen-py/cloudthrift/__init__.py +0 -1
  438. data/lib/proto/gen-py/cloudthrift/__init__.pyc +0 -0
  439. data/lib/proto/gen-py/cloudthrift/constants.py +0 -9
  440. data/lib/proto/gen-py/cloudthrift/constants.pyc +0 -0
  441. data/lib/proto/gen-py/cloudthrift/ttypes.py +0 -160
  442. data/lib/proto/gen-py/cloudthrift/ttypes.pyc +0 -0
  443. data/lib/proto/gen-py/thrift/TSCons.py +0 -33
  444. data/lib/proto/gen-py/thrift/Thrift.py +0 -123
  445. data/lib/proto/gen-py/thrift/Thrift.pyc +0 -0
  446. data/lib/proto/gen-py/thrift/__init__.py +0 -20
  447. data/lib/proto/gen-py/thrift/__init__.pyc +0 -0
  448. data/lib/proto/gen-py/thrift/protocol/TBinaryProtocol.py +0 -259
  449. data/lib/proto/gen-py/thrift/protocol/TBinaryProtocol.pyc +0 -0
  450. data/lib/proto/gen-py/thrift/protocol/TProtocol.py +0 -205
  451. data/lib/proto/gen-py/thrift/protocol/TProtocol.pyc +0 -0
  452. data/lib/proto/gen-py/thrift/protocol/__init__.py +0 -20
  453. data/lib/proto/gen-py/thrift/protocol/__init__.pyc +0 -0
  454. data/lib/proto/gen-py/thrift/protocol/fastbinary.c +0 -1203
  455. data/lib/proto/gen-py/thrift/server/THttpServer.py +0 -63
  456. data/lib/proto/gen-py/thrift/server/TNonblockingServer.py +0 -309
  457. data/lib/proto/gen-py/thrift/server/TServer.py +0 -270
  458. data/lib/proto/gen-py/thrift/server/__init__.py +0 -20
  459. data/lib/proto/gen-py/thrift/transport/THttpClient.py +0 -100
  460. data/lib/proto/gen-py/thrift/transport/TSocket.py +0 -149
  461. data/lib/proto/gen-py/thrift/transport/TSocket.pyc +0 -0
  462. data/lib/proto/gen-py/thrift/transport/TTransport.py +0 -326
  463. data/lib/proto/gen-py/thrift/transport/TTransport.pyc +0 -0
  464. data/lib/proto/gen-py/thrift/transport/TTwisted.py +0 -181
  465. data/lib/proto/gen-py/thrift/transport/__init__.py +0 -20
  466. data/lib/proto/gen-py/thrift/transport/__init__.pyc +0 -0
  467. data/lib/proto/gen-rb/command_interface.rb +0 -84
  468. data/lib/proto/gen-rb/poolparty_constants.rb +0 -10
  469. data/lib/proto/gen-rb/poolparty_types.rb +0 -45
  470. data/lib/proto/poolparty.thrift +0 -18
  471. data/lib/provision/bootstrap_scripts/build_centos.sh +0 -72
  472. data/lib/provision/bootstrap_scripts/build_ubuntu.sh +0 -76
  473. data/lib/provision/bootstrap_scripts/determine_os.sh +0 -21
  474. data/lib/provision/bootstrapper.rb +0 -44
  475. data/lib/provision/configure_scripts/configure_centos.erb +0 -7
  476. data/lib/provision/configure_scripts/configure_ubuntu.erb +0 -7
  477. data/tasks/development.rake +0 -91
  478. data/tasks/poolparty.rake +0 -118
  479. data/tasks/test.rake +0 -40
  480. data/test/fixtures/clouds/fake_clouds.rb +0 -9
  481. data/test/lib/cloud_providers/cloud_provider_instance_test.rb +0 -68
  482. data/test/lib/cloud_providers/cloud_provider_test.rb +0 -25
  483. data/test/lib/cloud_providers/connections_test.rb +0 -71
  484. data/test/lib/cloud_providers/ec2/ec2_helpers_test.rb +0 -29
  485. data/test/lib/cloud_providers/ec2/ec2_instance_test.rb +0 -68
  486. data/test/lib/cloud_providers/ec2/ec2_response_test.rb +0 -41
  487. data/test/lib/cloud_providers/ec2/ec2_test.rb +0 -120
  488. data/test/lib/cloud_providers/ssh/ssh_test.rb +0 -61
  489. data/test/lib/cloud_providers/vmware/vmware_test.rb +0 -46
  490. data/test/lib/core/integer_test.rb +0 -19
  491. data/test/lib/core/module_test.rb +0 -38
  492. data/test/lib/core/proc_test.rb +0 -26
  493. data/test/lib/core/time_test.rb +0 -51
  494. data/test/lib/dependency_resolvers/base_test.rb +0 -42
  495. data/test/lib/dependency_resolvers/chef/resources/chef_recipe_test.rb +0 -21
  496. data/test/lib/dependency_resolvers/chef/resources/http_request_test.rb +0 -29
  497. data/test/lib/dependency_resolvers/chef/resources/remote_directory_test.rb +0 -45
  498. data/test/lib/dependency_resolvers/chef/resources/remote_file_test.rb +0 -36
  499. data/test/lib/dependency_resolvers/chef/resources/route_test.rb +0 -37
  500. data/test/lib/dependency_resolvers/chef/resources/script_test.rb +0 -49
  501. data/test/lib/dependency_resolvers/chef_test.rb +0 -136
  502. data/test/lib/dependency_resolvers/proxy_object_test.rb +0 -75
  503. data/test/lib/mixins/callbacks_test.rb +0 -48
  504. data/test/lib/mixins/delayed_test.rb +0 -50
  505. data/test/lib/mixins/searchable_paths_test.rb +0 -83
  506. data/test/lib/poolparty/base_test.rb +0 -47
  507. data/test/lib/poolparty/default_test.rb +0 -17
  508. data/test/lib/poolparty/dsl_base_test.rb +0 -30
  509. data/test/lib/poolparty/installers/vmware_installer_test.rb +0 -16
  510. data/test/lib/poolparty/monitor_test.rb +0 -57
  511. data/test/lib/poolparty/plugins/apache2/php5_test.rb +0 -26
  512. data/test/lib/poolparty/plugins/apache2/virtual_host_test.rb +0 -28
  513. data/test/lib/poolparty/plugins/apache_test.rb +0 -35
  514. data/test/lib/poolparty/pool_party_log_test.rb +0 -17
  515. data/test/lib/poolparty/resource_test.rb +0 -162
  516. data/test/lib/poolparty/resources/conditional_test.rb +0 -50
  517. data/test/lib/poolparty/resources/cron_test.rb +0 -31
  518. data/test/lib/poolparty/resources/directory_test.rb +0 -21
  519. data/test/lib/poolparty/resources/exec_test.rb +0 -62
  520. data/test/lib/poolparty/resources/file_test.rb +0 -38
  521. data/test/lib/poolparty/resources/group_test.rb +0 -21
  522. data/test/lib/poolparty/resources/line_test.rb +0 -20
  523. data/test/lib/poolparty/resources/link_test.rb +0 -27
  524. data/test/lib/poolparty/resources/mount_test.rb +0 -32
  525. data/test/lib/poolparty/resources/package_test.rb +0 -28
  526. data/test/lib/poolparty/resources/service_test.rb +0 -31
  527. data/test/lib/poolparty/resources/user_test.rb +0 -33
  528. data/test/lib/poolparty/resources/variable_test.rb +0 -43
  529. data/test/lib/proto/command_query_handler_test.rb +0 -11
  530. data/test/lib/provision/base_test.rb +0 -16
  531. data/test/lib/provision/bootstrapper_test.rb +0 -19
  532. data/vendor/chef/apache2/README.rdoc +0 -59
  533. data/vendor/chef/apache2/attributes/apache.rb +0 -72
  534. data/vendor/chef/apache2/definitions/apache_module.rb +0 -36
  535. data/vendor/chef/apache2/definitions/apache_site.rb +0 -36
  536. data/vendor/chef/apache2/definitions/web_app.rb +0 -45
  537. data/vendor/chef/apache2/files/default/apache2_module_conf_generate.pl +0 -41
  538. data/vendor/chef/apache2/recipes/default.rb +0 -132
  539. data/vendor/chef/apache2/recipes/mod_alias.rb +0 -20
  540. data/vendor/chef/apache2/recipes/mod_auth_basic.rb +0 -20
  541. data/vendor/chef/apache2/recipes/mod_auth_digest.rb +0 -20
  542. data/vendor/chef/apache2/recipes/mod_authn_file.rb +0 -20
  543. data/vendor/chef/apache2/recipes/mod_authnz_ldap.rb +0 -20
  544. data/vendor/chef/apache2/recipes/mod_authz_default.rb +0 -20
  545. data/vendor/chef/apache2/recipes/mod_authz_groupfile.rb +0 -20
  546. data/vendor/chef/apache2/recipes/mod_authz_host.rb +0 -20
  547. data/vendor/chef/apache2/recipes/mod_authz_user.rb +0 -20
  548. data/vendor/chef/apache2/recipes/mod_autoindex.rb +0 -20
  549. data/vendor/chef/apache2/recipes/mod_cgi.rb +0 -20
  550. data/vendor/chef/apache2/recipes/mod_dav.rb +0 -20
  551. data/vendor/chef/apache2/recipes/mod_dav_svn.rb +0 -20
  552. data/vendor/chef/apache2/recipes/mod_deflate.rb +0 -20
  553. data/vendor/chef/apache2/recipes/mod_dir.rb +0 -20
  554. data/vendor/chef/apache2/recipes/mod_env.rb +0 -20
  555. data/vendor/chef/apache2/recipes/mod_expires.rb +0 -20
  556. data/vendor/chef/apache2/recipes/mod_fcgid.rb +0 -35
  557. data/vendor/chef/apache2/recipes/mod_headers.rb +0 -20
  558. data/vendor/chef/apache2/recipes/mod_ldap.rb +0 -20
  559. data/vendor/chef/apache2/recipes/mod_log_config.rb +0 -20
  560. data/vendor/chef/apache2/recipes/mod_mime.rb +0 -20
  561. data/vendor/chef/apache2/recipes/mod_negotiation.rb +0 -20
  562. data/vendor/chef/apache2/recipes/mod_php5.rb +0 -27
  563. data/vendor/chef/apache2/recipes/mod_proxy.rb +0 -20
  564. data/vendor/chef/apache2/recipes/mod_proxy_http.rb +0 -20
  565. data/vendor/chef/apache2/recipes/mod_python.rb +0 -22
  566. data/vendor/chef/apache2/recipes/mod_rewrite.rb +0 -20
  567. data/vendor/chef/apache2/recipes/mod_setenvif.rb +0 -20
  568. data/vendor/chef/apache2/recipes/mod_ssl.rb +0 -20
  569. data/vendor/chef/apache2/recipes/mod_status.rb +0 -20
  570. data/vendor/chef/apache2/templates/default/a2enmod.erb +0 -37
  571. data/vendor/chef/apache2/templates/default/apache2.conf.erb +0 -630
  572. data/vendor/chef/apache2/templates/default/default-site.erb +0 -45
  573. data/vendor/chef/chef-deploy/LICENSE +0 -201
  574. data/vendor/chef/chef-deploy/README.rdoc +0 -24
  575. data/vendor/chef/chef-deploy/Rakefile +0 -57
  576. data/vendor/chef/chef-deploy/TODO +0 -4
  577. data/vendor/chef/chef-deploy/lib/chef-deploy/cached_deploy.rb +0 -230
  578. data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +0 -132
  579. data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +0 -98
  580. data/vendor/chef/chef-deploy/lib/chef-deploy.rb +0 -183
  581. data/vendor/gems/colors/README.rdoc +0 -52
  582. data/vendor/gems/colors/Rakefile +0 -56
  583. data/vendor/gems/colors/VERSION.yml +0 -4
  584. data/vendor/gems/colors/colors.gemspec +0 -29
  585. data/vendor/gems/colors/lib/colors.rb +0 -45
  586. data/vendor/gems/colors/test/colors_test.rb +0 -26
  587. data/vendor/gems/colors/test/test_helper.rb +0 -10
  588. data/vendor/gems/context/History.txt +0 -10
  589. data/vendor/gems/context/License.txt +0 -20
  590. data/vendor/gems/context/Manifest.txt +0 -26
  591. data/vendor/gems/context/README.rdoc +0 -158
  592. data/vendor/gems/context/Rakefile +0 -4
  593. data/vendor/gems/context/config/hoe.rb +0 -73
  594. data/vendor/gems/context/config/requirements.rb +0 -15
  595. data/vendor/gems/context/context.gemspec +0 -44
  596. data/vendor/gems/context/countloc.rb +0 -65
  597. data/vendor/gems/context/coverage/-Library-Ruby-Gems-1_8-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +0 -1598
  598. data/vendor/gems/context/coverage/index.html +0 -441
  599. data/vendor/gems/context/coverage/lib-context-context_rb.html +0 -669
  600. data/vendor/gems/context/coverage/lib-context-core_ext-string_rb.html +0 -627
  601. data/vendor/gems/context/coverage/lib-context-lifecycle_rb.html +0 -683
  602. data/vendor/gems/context/coverage/lib-context-shared_behavior_rb.html +0 -708
  603. data/vendor/gems/context/coverage/lib-context-suite_rb.html +0 -649
  604. data/vendor/gems/context/coverage/lib-context-test_rb.html +0 -637
  605. data/vendor/gems/context/coverage/lib-context-version_rb.html +0 -619
  606. data/vendor/gems/context/coverage/lib-context_rb.html +0 -623
  607. data/vendor/gems/context/lib/context/context.rb +0 -64
  608. data/vendor/gems/context/lib/context/core_ext/rails_hacks.rb +0 -10
  609. data/vendor/gems/context/lib/context/core_ext/string.rb +0 -17
  610. data/vendor/gems/context/lib/context/lifecycle.rb +0 -103
  611. data/vendor/gems/context/lib/context/shared_behavior.rb +0 -98
  612. data/vendor/gems/context/lib/context/suite.rb +0 -39
  613. data/vendor/gems/context/lib/context/test.rb +0 -37
  614. data/vendor/gems/context/lib/context/version.rb +0 -9
  615. data/vendor/gems/context/lib/context.rb +0 -19
  616. data/vendor/gems/context/setup.rb +0 -1585
  617. data/vendor/gems/context/tasks/deployment.rake +0 -34
  618. data/vendor/gems/context/tasks/environment.rake +0 -7
  619. data/vendor/gems/context/test/test_context.rb +0 -57
  620. data/vendor/gems/context/test/test_core_ext.rb +0 -21
  621. data/vendor/gems/context/test/test_helper.rb +0 -2
  622. data/vendor/gems/context/test/test_lifecycle.rb +0 -224
  623. data/vendor/gems/context/test/test_nested_lifecycle.rb +0 -44
  624. data/vendor/gems/context/test/test_shared.rb +0 -116
  625. data/vendor/gems/context/test/test_test.rb +0 -23
  626. data/vendor/gems/daemons/LICENSE +0 -29
  627. data/vendor/gems/daemons/README +0 -223
  628. data/vendor/gems/daemons/Rakefile +0 -84
  629. data/vendor/gems/daemons/Releases +0 -126
  630. data/vendor/gems/daemons/TODO +0 -6
  631. data/vendor/gems/daemons/examples/call/call.rb +0 -56
  632. data/vendor/gems/daemons/examples/call/call_monitor.rb +0 -55
  633. data/vendor/gems/daemons/examples/daemonize/daemonize.rb +0 -20
  634. data/vendor/gems/daemons/examples/run/ctrl_crash.rb +0 -17
  635. data/vendor/gems/daemons/examples/run/ctrl_exec.rb +0 -16
  636. data/vendor/gems/daemons/examples/run/ctrl_exit.rb +0 -15
  637. data/vendor/gems/daemons/examples/run/ctrl_keep_pid_files.rb +0 -17
  638. data/vendor/gems/daemons/examples/run/ctrl_monitor.rb +0 -16
  639. data/vendor/gems/daemons/examples/run/ctrl_multiple.rb +0 -16
  640. data/vendor/gems/daemons/examples/run/ctrl_normal.rb +0 -12
  641. data/vendor/gems/daemons/examples/run/ctrl_ontop.rb +0 -16
  642. data/vendor/gems/daemons/examples/run/ctrl_optionparser.rb +0 -43
  643. data/vendor/gems/daemons/examples/run/ctrl_proc.rb +0 -25
  644. data/vendor/gems/daemons/examples/run/ctrl_proc.rb.output +0 -101
  645. data/vendor/gems/daemons/examples/run/ctrl_proc_multiple.rb +0 -22
  646. data/vendor/gems/daemons/examples/run/ctrl_proc_multiple.rb.output +0 -2
  647. data/vendor/gems/daemons/examples/run/ctrl_proc_simple.rb +0 -17
  648. data/vendor/gems/daemons/examples/run/myserver.rb +0 -12
  649. data/vendor/gems/daemons/examples/run/myserver_crashing.rb +0 -14
  650. data/vendor/gems/daemons/examples/run/myserver_crashing.rb.output +0 -30
  651. data/vendor/gems/daemons/examples/run/myserver_exiting.rb +0 -8
  652. data/vendor/gems/daemons/lib/daemons/application.rb +0 -372
  653. data/vendor/gems/daemons/lib/daemons/application_group.rb +0 -152
  654. data/vendor/gems/daemons/lib/daemons/cmdline.rb +0 -117
  655. data/vendor/gems/daemons/lib/daemons/controller.rb +0 -134
  656. data/vendor/gems/daemons/lib/daemons/daemonize.rb +0 -263
  657. data/vendor/gems/daemons/lib/daemons/exceptions.rb +0 -28
  658. data/vendor/gems/daemons/lib/daemons/monitor.rb +0 -127
  659. data/vendor/gems/daemons/lib/daemons/pid.rb +0 -101
  660. data/vendor/gems/daemons/lib/daemons/pidfile.rb +0 -111
  661. data/vendor/gems/daemons/lib/daemons/pidmem.rb +0 -10
  662. data/vendor/gems/daemons/lib/daemons.rb +0 -283
  663. data/vendor/gems/daemons/setup.rb +0 -1360
  664. data/vendor/gems/fakeweb/CHANGELOG +0 -163
  665. data/vendor/gems/fakeweb/LICENSE.txt +0 -281
  666. data/vendor/gems/fakeweb/README.rdoc +0 -193
  667. data/vendor/gems/fakeweb/Rakefile +0 -76
  668. data/vendor/gems/fakeweb/fakeweb.gemspec +0 -21
  669. data/vendor/gems/fakeweb/lib/fake_web/ext/net_http.rb +0 -71
  670. data/vendor/gems/fakeweb/lib/fake_web/registry.rb +0 -103
  671. data/vendor/gems/fakeweb/lib/fake_web/responder.rb +0 -113
  672. data/vendor/gems/fakeweb/lib/fake_web/response.rb +0 -10
  673. data/vendor/gems/fakeweb/lib/fake_web/stub_socket.rb +0 -15
  674. data/vendor/gems/fakeweb/lib/fake_web/utility.rb +0 -22
  675. data/vendor/gems/fakeweb/lib/fake_web.rb +0 -172
  676. data/vendor/gems/fakeweb/lib/fakeweb.rb +0 -2
  677. data/vendor/gems/fakeweb/test/fixtures/google_response_from_curl +0 -12
  678. data/vendor/gems/fakeweb/test/fixtures/google_response_with_transfer_encoding +0 -17
  679. data/vendor/gems/fakeweb/test/fixtures/google_response_without_transfer_encoding +0 -11
  680. data/vendor/gems/fakeweb/test/fixtures/test_example.txt +0 -1
  681. data/vendor/gems/fakeweb/test/fixtures/test_txt_file +0 -3
  682. data/vendor/gems/fakeweb/test/test_allow_net_connect.rb +0 -85
  683. data/vendor/gems/fakeweb/test/test_deprecations.rb +0 -54
  684. data/vendor/gems/fakeweb/test/test_fake_authentication.rb +0 -92
  685. data/vendor/gems/fakeweb/test/test_fake_web.rb +0 -518
  686. data/vendor/gems/fakeweb/test/test_fake_web_open_uri.rb +0 -58
  687. data/vendor/gems/fakeweb/test/test_helper.rb +0 -74
  688. data/vendor/gems/fakeweb/test/test_missing_open_uri.rb +0 -25
  689. data/vendor/gems/fakeweb/test/test_precedence.rb +0 -51
  690. data/vendor/gems/fakeweb/test/test_query_string.rb +0 -45
  691. data/vendor/gems/fakeweb/test/test_regexes.rb +0 -103
  692. data/vendor/gems/fakeweb/test/test_response_headers.rb +0 -73
  693. data/vendor/gems/fakeweb/test/test_trailing_slashes.rb +0 -53
  694. data/vendor/gems/fakeweb/test/test_utility.rb +0 -70
  695. data/vendor/gems/gratr/Grater.xcf +0 -0
  696. data/vendor/gems/gratr/README +0 -335
  697. data/vendor/gems/gratr/Rakefile +0 -220
  698. data/vendor/gems/gratr/examples/graph_self.rb +0 -54
  699. data/vendor/gems/gratr/examples/module_graph.jpg +0 -0
  700. data/vendor/gems/gratr/examples/module_graph.rb +0 -12
  701. data/vendor/gems/gratr/examples/self_graph.dot +0 -117
  702. data/vendor/gems/gratr/examples/self_graph.jpg +0 -0
  703. data/vendor/gems/gratr/examples/visualize.dot +0 -58
  704. data/vendor/gems/gratr/examples/visualize.jpg +0 -0
  705. data/vendor/gems/gratr/examples/visualize.rb +0 -11
  706. data/vendor/gems/gratr/install.rb +0 -49
  707. data/vendor/gems/gratr/lib/gratr/adjacency_graph.rb +0 -230
  708. data/vendor/gems/gratr/lib/gratr/base.rb +0 -34
  709. data/vendor/gems/gratr/lib/gratr/biconnected.rb +0 -116
  710. data/vendor/gems/gratr/lib/gratr/chinese_postman.rb +0 -123
  711. data/vendor/gems/gratr/lib/gratr/common.rb +0 -73
  712. data/vendor/gems/gratr/lib/gratr/comparability.rb +0 -92
  713. data/vendor/gems/gratr/lib/gratr/digraph.rb +0 -115
  714. data/vendor/gems/gratr/lib/gratr/digraph_distance.rb +0 -185
  715. data/vendor/gems/gratr/lib/gratr/dot.rb +0 -95
  716. data/vendor/gems/gratr/lib/gratr/edge.rb +0 -145
  717. data/vendor/gems/gratr/lib/gratr/graph.rb +0 -315
  718. data/vendor/gems/gratr/lib/gratr/graph_api.rb +0 -82
  719. data/vendor/gems/gratr/lib/gratr/import.rb +0 -44
  720. data/vendor/gems/gratr/lib/gratr/labels.rb +0 -103
  721. data/vendor/gems/gratr/lib/gratr/maximum_flow.rb +0 -107
  722. data/vendor/gems/gratr/lib/gratr/rdot.rb +0 -332
  723. data/vendor/gems/gratr/lib/gratr/search.rb +0 -422
  724. data/vendor/gems/gratr/lib/gratr/strong_components.rb +0 -127
  725. data/vendor/gems/gratr/lib/gratr/undirected_graph.rb +0 -153
  726. data/vendor/gems/gratr/lib/gratr.rb +0 -42
  727. data/vendor/gems/gratr/lib/priority-queue/benchmark/dijkstra.rb +0 -171
  728. data/vendor/gems/gratr/lib/priority-queue/compare_comments.rb +0 -49
  729. data/vendor/gems/gratr/lib/priority-queue/ext/priority_queue/CPriorityQueue/extconf.rb +0 -2
  730. data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/c_priority_queue.rb +0 -1
  731. data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/poor_priority_queue.rb +0 -46
  732. data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/ruby_priority_queue.rb +0 -525
  733. data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue.rb +0 -14
  734. data/vendor/gems/gratr/lib/priority-queue/setup.rb +0 -1551
  735. data/vendor/gems/gratr/lib/priority-queue/test/priority_queue_test.rb +0 -371
  736. data/vendor/gems/gratr/tests/TestBiconnected.rb +0 -53
  737. data/vendor/gems/gratr/tests/TestChinesePostman.rb +0 -53
  738. data/vendor/gems/gratr/tests/TestComplement.rb +0 -54
  739. data/vendor/gems/gratr/tests/TestDigraph.rb +0 -333
  740. data/vendor/gems/gratr/tests/TestDigraphDistance.rb +0 -138
  741. data/vendor/gems/gratr/tests/TestDot.rb +0 -75
  742. data/vendor/gems/gratr/tests/TestEdge.rb +0 -171
  743. data/vendor/gems/gratr/tests/TestInspection.rb +0 -57
  744. data/vendor/gems/gratr/tests/TestMultiEdge.rb +0 -57
  745. data/vendor/gems/gratr/tests/TestNeighborhood.rb +0 -64
  746. data/vendor/gems/gratr/tests/TestProperties.rb +0 -160
  747. data/vendor/gems/gratr/tests/TestSearch.rb +0 -277
  748. data/vendor/gems/gratr/tests/TestStrongComponents.rb +0 -85
  749. data/vendor/gems/gratr/tests/TestTriagulated.rb +0 -137
  750. data/vendor/gems/gratr/tests/TestUndirectedGraph.rb +0 -219
  751. data/vendor/gems/net-ssh/CHANGELOG.rdoc +0 -127
  752. data/vendor/gems/net-ssh/Manifest +0 -104
  753. data/vendor/gems/net-ssh/README.rdoc +0 -110
  754. data/vendor/gems/net-ssh/Rakefile +0 -26
  755. data/vendor/gems/net-ssh/THANKS.rdoc +0 -16
  756. data/vendor/gems/net-ssh/lib/net/ssh/authentication/agent.rb +0 -176
  757. data/vendor/gems/net-ssh/lib/net/ssh/authentication/constants.rb +0 -18
  758. data/vendor/gems/net-ssh/lib/net/ssh/authentication/key_manager.rb +0 -193
  759. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/abstract.rb +0 -60
  760. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/hostbased.rb +0 -71
  761. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/keyboard_interactive.rb +0 -66
  762. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/password.rb +0 -39
  763. data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/publickey.rb +0 -92
  764. data/vendor/gems/net-ssh/lib/net/ssh/authentication/pageant.rb +0 -183
  765. data/vendor/gems/net-ssh/lib/net/ssh/authentication/session.rb +0 -134
  766. data/vendor/gems/net-ssh/lib/net/ssh/buffer.rb +0 -340
  767. data/vendor/gems/net-ssh/lib/net/ssh/buffered_io.rb +0 -149
  768. data/vendor/gems/net-ssh/lib/net/ssh/config.rb +0 -181
  769. data/vendor/gems/net-ssh/lib/net/ssh/connection/channel.rb +0 -625
  770. data/vendor/gems/net-ssh/lib/net/ssh/connection/constants.rb +0 -33
  771. data/vendor/gems/net-ssh/lib/net/ssh/connection/session.rb +0 -596
  772. data/vendor/gems/net-ssh/lib/net/ssh/connection/term.rb +0 -178
  773. data/vendor/gems/net-ssh/lib/net/ssh/errors.rb +0 -85
  774. data/vendor/gems/net-ssh/lib/net/ssh/key_factory.rb +0 -102
  775. data/vendor/gems/net-ssh/lib/net/ssh/known_hosts.rb +0 -129
  776. data/vendor/gems/net-ssh/lib/net/ssh/loggable.rb +0 -61
  777. data/vendor/gems/net-ssh/lib/net/ssh/packet.rb +0 -102
  778. data/vendor/gems/net-ssh/lib/net/ssh/prompt.rb +0 -93
  779. data/vendor/gems/net-ssh/lib/net/ssh/proxy/errors.rb +0 -14
  780. data/vendor/gems/net-ssh/lib/net/ssh/proxy/http.rb +0 -94
  781. data/vendor/gems/net-ssh/lib/net/ssh/proxy/socks4.rb +0 -70
  782. data/vendor/gems/net-ssh/lib/net/ssh/proxy/socks5.rb +0 -129
  783. data/vendor/gems/net-ssh/lib/net/ssh/ruby_compat.rb +0 -7
  784. data/vendor/gems/net-ssh/lib/net/ssh/service/forward.rb +0 -267
  785. data/vendor/gems/net-ssh/lib/net/ssh/test/channel.rb +0 -129
  786. data/vendor/gems/net-ssh/lib/net/ssh/test/extensions.rb +0 -152
  787. data/vendor/gems/net-ssh/lib/net/ssh/test/kex.rb +0 -44
  788. data/vendor/gems/net-ssh/lib/net/ssh/test/local_packet.rb +0 -51
  789. data/vendor/gems/net-ssh/lib/net/ssh/test/packet.rb +0 -81
  790. data/vendor/gems/net-ssh/lib/net/ssh/test/remote_packet.rb +0 -38
  791. data/vendor/gems/net-ssh/lib/net/ssh/test/script.rb +0 -157
  792. data/vendor/gems/net-ssh/lib/net/ssh/test/socket.rb +0 -59
  793. data/vendor/gems/net-ssh/lib/net/ssh/test.rb +0 -89
  794. data/vendor/gems/net-ssh/lib/net/ssh/transport/algorithms.rb +0 -384
  795. data/vendor/gems/net-ssh/lib/net/ssh/transport/cipher_factory.rb +0 -80
  796. data/vendor/gems/net-ssh/lib/net/ssh/transport/constants.rb +0 -30
  797. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/abstract.rb +0 -78
  798. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/md5.rb +0 -12
  799. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/md5_96.rb +0 -11
  800. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/none.rb +0 -15
  801. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/sha1.rb +0 -13
  802. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/sha1_96.rb +0 -11
  803. data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac.rb +0 -31
  804. data/vendor/gems/net-ssh/lib/net/ssh/transport/identity_cipher.rb +0 -55
  805. data/vendor/gems/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +0 -208
  806. data/vendor/gems/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +0 -77
  807. data/vendor/gems/net-ssh/lib/net/ssh/transport/kex.rb +0 -13
  808. data/vendor/gems/net-ssh/lib/net/ssh/transport/openssl.rb +0 -128
  809. data/vendor/gems/net-ssh/lib/net/ssh/transport/packet_stream.rb +0 -230
  810. data/vendor/gems/net-ssh/lib/net/ssh/transport/server_version.rb +0 -60
  811. data/vendor/gems/net-ssh/lib/net/ssh/transport/session.rb +0 -276
  812. data/vendor/gems/net-ssh/lib/net/ssh/transport/state.rb +0 -201
  813. data/vendor/gems/net-ssh/lib/net/ssh/verifiers/lenient.rb +0 -30
  814. data/vendor/gems/net-ssh/lib/net/ssh/verifiers/null.rb +0 -12
  815. data/vendor/gems/net-ssh/lib/net/ssh/verifiers/strict.rb +0 -53
  816. data/vendor/gems/net-ssh/lib/net/ssh/version.rb +0 -62
  817. data/vendor/gems/net-ssh/lib/net/ssh.rb +0 -215
  818. data/vendor/gems/net-ssh/net-ssh.gemspec +0 -33
  819. data/vendor/gems/net-ssh/setup.rb +0 -1585
  820. data/vendor/gems/net-ssh/test/authentication/methods/common.rb +0 -28
  821. data/vendor/gems/net-ssh/test/authentication/methods/test_abstract.rb +0 -51
  822. data/vendor/gems/net-ssh/test/authentication/methods/test_hostbased.rb +0 -114
  823. data/vendor/gems/net-ssh/test/authentication/methods/test_keyboard_interactive.rb +0 -98
  824. data/vendor/gems/net-ssh/test/authentication/methods/test_password.rb +0 -50
  825. data/vendor/gems/net-ssh/test/authentication/methods/test_publickey.rb +0 -127
  826. data/vendor/gems/net-ssh/test/authentication/test_agent.rb +0 -205
  827. data/vendor/gems/net-ssh/test/authentication/test_key_manager.rb +0 -105
  828. data/vendor/gems/net-ssh/test/authentication/test_session.rb +0 -93
  829. data/vendor/gems/net-ssh/test/common.rb +0 -106
  830. data/vendor/gems/net-ssh/test/configs/eqsign +0 -3
  831. data/vendor/gems/net-ssh/test/configs/exact_match +0 -8
  832. data/vendor/gems/net-ssh/test/configs/wild_cards +0 -14
  833. data/vendor/gems/net-ssh/test/connection/test_channel.rb +0 -452
  834. data/vendor/gems/net-ssh/test/connection/test_session.rb +0 -488
  835. data/vendor/gems/net-ssh/test/test_all.rb +0 -6
  836. data/vendor/gems/net-ssh/test/test_buffer.rb +0 -336
  837. data/vendor/gems/net-ssh/test/test_buffered_io.rb +0 -63
  838. data/vendor/gems/net-ssh/test/test_config.rb +0 -84
  839. data/vendor/gems/net-ssh/test/test_key_factory.rb +0 -67
  840. data/vendor/gems/net-ssh/test/transport/hmac/test_md5.rb +0 -39
  841. data/vendor/gems/net-ssh/test/transport/hmac/test_md5_96.rb +0 -25
  842. data/vendor/gems/net-ssh/test/transport/hmac/test_none.rb +0 -34
  843. data/vendor/gems/net-ssh/test/transport/hmac/test_sha1.rb +0 -34
  844. data/vendor/gems/net-ssh/test/transport/hmac/test_sha1_96.rb +0 -25
  845. data/vendor/gems/net-ssh/test/transport/kex/test_diffie_hellman_group1_sha1.rb +0 -146
  846. data/vendor/gems/net-ssh/test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb +0 -92
  847. data/vendor/gems/net-ssh/test/transport/test_algorithms.rb +0 -302
  848. data/vendor/gems/net-ssh/test/transport/test_cipher_factory.rb +0 -171
  849. data/vendor/gems/net-ssh/test/transport/test_hmac.rb +0 -34
  850. data/vendor/gems/net-ssh/test/transport/test_identity_cipher.rb +0 -40
  851. data/vendor/gems/net-ssh/test/transport/test_packet_stream.rb +0 -435
  852. data/vendor/gems/net-ssh/test/transport/test_server_version.rb +0 -57
  853. data/vendor/gems/net-ssh/test/transport/test_session.rb +0 -315
  854. data/vendor/gems/net-ssh/test/transport/test_state.rb +0 -173
  855. data/vendor/gems/parenting/History.txt +0 -4
  856. data/vendor/gems/parenting/Manifest.txt +0 -14
  857. data/vendor/gems/parenting/PostInstall.txt +0 -2
  858. data/vendor/gems/parenting/README.rdoc +0 -47
  859. data/vendor/gems/parenting/Rakefile +0 -44
  860. data/vendor/gems/parenting/lib/parenting/parenting.rb +0 -77
  861. data/vendor/gems/parenting/lib/parenting.rb +0 -10
  862. data/vendor/gems/parenting/parenting.gemspec +0 -39
  863. data/vendor/gems/parenting/script/console +0 -10
  864. data/vendor/gems/parenting/script/destroy +0 -14
  865. data/vendor/gems/parenting/script/generate +0 -14
  866. data/vendor/gems/parenting/test/file_to_eval.rb +0 -9
  867. data/vendor/gems/parenting/test/test_helper.rb +0 -5
  868. data/vendor/gems/parenting/test/test_parenting.rb +0 -117
  869. data/vendor/gems/right_aws/History.txt +0 -246
  870. data/vendor/gems/right_aws/Manifest.txt +0 -34
  871. data/vendor/gems/right_aws/README.txt +0 -166
  872. data/vendor/gems/right_aws/Rakefile +0 -112
  873. data/vendor/gems/right_aws/lib/acf/right_acf_interface.rb +0 -379
  874. data/vendor/gems/right_aws/lib/awsbase/benchmark_fix.rb +0 -39
  875. data/vendor/gems/right_aws/lib/awsbase/right_awsbase.rb +0 -797
  876. data/vendor/gems/right_aws/lib/awsbase/support.rb +0 -111
  877. data/vendor/gems/right_aws/lib/ec2/right_ec2.rb +0 -1737
  878. data/vendor/gems/right_aws/lib/right_aws.rb +0 -69
  879. data/vendor/gems/right_aws/lib/s3/right_s3.rb +0 -1094
  880. data/vendor/gems/right_aws/lib/s3/right_s3_interface.rb +0 -1175
  881. data/vendor/gems/right_aws/lib/sdb/active_sdb.rb +0 -930
  882. data/vendor/gems/right_aws/lib/sdb/right_sdb_interface.rb +0 -698
  883. data/vendor/gems/right_aws/lib/sqs/right_sqs.rb +0 -388
  884. data/vendor/gems/right_aws/lib/sqs/right_sqs_gen2.rb +0 -286
  885. data/vendor/gems/right_aws/lib/sqs/right_sqs_gen2_interface.rb +0 -444
  886. data/vendor/gems/right_aws/lib/sqs/right_sqs_interface.rb +0 -596
  887. data/vendor/gems/right_aws/test/acf/test_helper.rb +0 -2
  888. data/vendor/gems/right_aws/test/acf/test_right_acf.rb +0 -146
  889. data/vendor/gems/right_aws/test/ec2/test_helper.rb +0 -2
  890. data/vendor/gems/right_aws/test/ec2/test_right_ec2.rb +0 -108
  891. data/vendor/gems/right_aws/test/http_connection.rb +0 -87
  892. data/vendor/gems/right_aws/test/s3/test_helper.rb +0 -2
  893. data/vendor/gems/right_aws/test/s3/test_right_s3.rb +0 -419
  894. data/vendor/gems/right_aws/test/s3/test_right_s3_stubbed.rb +0 -95
  895. data/vendor/gems/right_aws/test/sdb/test_active_sdb.rb +0 -299
  896. data/vendor/gems/right_aws/test/sdb/test_helper.rb +0 -3
  897. data/vendor/gems/right_aws/test/sdb/test_right_sdb.rb +0 -247
  898. data/vendor/gems/right_aws/test/sqs/test_helper.rb +0 -2
  899. data/vendor/gems/right_aws/test/sqs/test_right_sqs.rb +0 -291
  900. data/vendor/gems/right_aws/test/sqs/test_right_sqs_gen2.rb +0 -209
  901. data/vendor/gems/right_aws/test/test_credentials.rb +0 -37
  902. data/vendor/gems/right_aws/test/ts_right_aws.rb +0 -14
  903. data/vendor/gems/right_http_connection/History.txt +0 -59
  904. data/vendor/gems/right_http_connection/Manifest.txt +0 -7
  905. data/vendor/gems/right_http_connection/README.txt +0 -54
  906. data/vendor/gems/right_http_connection/Rakefile +0 -103
  907. data/vendor/gems/right_http_connection/lib/net_fix.rb +0 -160
  908. data/vendor/gems/right_http_connection/lib/right_http_connection.rb +0 -442
  909. data/vendor/gems/right_http_connection/right_http_connection.gemspec +0 -31
  910. data/vendor/gems/right_http_connection/setup.rb +0 -1585
  911. data/vendor/gems/shoulda/CONTRIBUTION_GUIDELINES.rdoc +0 -10
  912. data/vendor/gems/shoulda/MIT-LICENSE +0 -22
  913. data/vendor/gems/shoulda/README.rdoc +0 -171
  914. data/vendor/gems/shoulda/Rakefile +0 -72
  915. data/vendor/gems/shoulda/bin/convert_to_should_syntax +0 -42
  916. data/vendor/gems/shoulda/init.rb +0 -1
  917. data/vendor/gems/shoulda/lib/shoulda/action_controller/macros.rb +0 -240
  918. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/assign_to_matcher.rb +0 -109
  919. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/filter_param_matcher.rb +0 -57
  920. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/render_with_layout_matcher.rb +0 -81
  921. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/respond_with_content_type_matcher.rb +0 -74
  922. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/respond_with_matcher.rb +0 -81
  923. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/route_matcher.rb +0 -93
  924. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/set_session_matcher.rb +0 -87
  925. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/set_the_flash_matcher.rb +0 -85
  926. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers.rb +0 -37
  927. data/vendor/gems/shoulda/lib/shoulda/action_controller.rb +0 -26
  928. data/vendor/gems/shoulda/lib/shoulda/action_mailer/assertions.rb +0 -38
  929. data/vendor/gems/shoulda/lib/shoulda/action_mailer.rb +0 -10
  930. data/vendor/gems/shoulda/lib/shoulda/action_view/macros.rb +0 -61
  931. data/vendor/gems/shoulda/lib/shoulda/action_view.rb +0 -10
  932. data/vendor/gems/shoulda/lib/shoulda/active_record/assertions.rb +0 -69
  933. data/vendor/gems/shoulda/lib/shoulda/active_record/helpers.rb +0 -27
  934. data/vendor/gems/shoulda/lib/shoulda/active_record/macros.rb +0 -512
  935. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/allow_mass_assignment_of_matcher.rb +0 -83
  936. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/allow_value_matcher.rb +0 -102
  937. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/association_matcher.rb +0 -226
  938. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/ensure_inclusion_of_matcher.rb +0 -87
  939. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/ensure_length_of_matcher.rb +0 -141
  940. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_db_column_matcher.rb +0 -169
  941. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_db_index_matcher.rb +0 -112
  942. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_named_scope_matcher.rb +0 -128
  943. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_readonly_attribute_matcher.rb +0 -59
  944. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_acceptance_of_matcher.rb +0 -41
  945. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_format_of_matcher.rb +0 -67
  946. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_numericality_of_matcher.rb +0 -39
  947. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_presence_of_matcher.rb +0 -60
  948. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb +0 -148
  949. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validation_matcher.rb +0 -57
  950. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers.rb +0 -43
  951. data/vendor/gems/shoulda/lib/shoulda/active_record.rb +0 -16
  952. data/vendor/gems/shoulda/lib/shoulda/assertions.rb +0 -71
  953. data/vendor/gems/shoulda/lib/shoulda/autoload_macros.rb +0 -46
  954. data/vendor/gems/shoulda/lib/shoulda/context.rb +0 -402
  955. data/vendor/gems/shoulda/lib/shoulda/helpers.rb +0 -8
  956. data/vendor/gems/shoulda/lib/shoulda/macros.rb +0 -133
  957. data/vendor/gems/shoulda/lib/shoulda/private_helpers.rb +0 -13
  958. data/vendor/gems/shoulda/lib/shoulda/proc_extensions.rb +0 -14
  959. data/vendor/gems/shoulda/lib/shoulda/rails.rb +0 -13
  960. data/vendor/gems/shoulda/lib/shoulda/rspec.rb +0 -11
  961. data/vendor/gems/shoulda/lib/shoulda/tasks/list_tests.rake +0 -29
  962. data/vendor/gems/shoulda/lib/shoulda/tasks/yaml_to_shoulda.rake +0 -28
  963. data/vendor/gems/shoulda/lib/shoulda/tasks.rb +0 -3
  964. data/vendor/gems/shoulda/lib/shoulda/test_unit.rb +0 -22
  965. data/vendor/gems/shoulda/lib/shoulda.rb +0 -9
  966. data/vendor/gems/shoulda/rails/init.rb +0 -7
  967. data/vendor/gems/shoulda/shoulda.gemspec +0 -31
  968. data/vendor/gems/shoulda/tasks/shoulda.rake +0 -1
  969. data/vendor/gems/shoulda/test/README +0 -36
  970. data/vendor/gems/shoulda/test/fail_macros.rb +0 -39
  971. data/vendor/gems/shoulda/test/fixtures/addresses.yml +0 -3
  972. data/vendor/gems/shoulda/test/fixtures/friendships.yml +0 -0
  973. data/vendor/gems/shoulda/test/fixtures/posts.yml +0 -5
  974. data/vendor/gems/shoulda/test/fixtures/products.yml +0 -0
  975. data/vendor/gems/shoulda/test/fixtures/taggings.yml +0 -0
  976. data/vendor/gems/shoulda/test/fixtures/tags.yml +0 -9
  977. data/vendor/gems/shoulda/test/fixtures/users.yml +0 -6
  978. data/vendor/gems/shoulda/test/functional/posts_controller_test.rb +0 -121
  979. data/vendor/gems/shoulda/test/functional/users_controller_test.rb +0 -19
  980. data/vendor/gems/shoulda/test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb +0 -68
  981. data/vendor/gems/shoulda/test/matchers/active_record/allow_value_matcher_test.rb +0 -64
  982. data/vendor/gems/shoulda/test/matchers/active_record/association_matcher_test.rb +0 -263
  983. data/vendor/gems/shoulda/test/matchers/active_record/ensure_inclusion_of_matcher_test.rb +0 -80
  984. data/vendor/gems/shoulda/test/matchers/active_record/ensure_length_of_matcher_test.rb +0 -158
  985. data/vendor/gems/shoulda/test/matchers/active_record/have_db_column_matcher_test.rb +0 -169
  986. data/vendor/gems/shoulda/test/matchers/active_record/have_db_index_matcher_test.rb +0 -91
  987. data/vendor/gems/shoulda/test/matchers/active_record/have_named_scope_matcher_test.rb +0 -65
  988. data/vendor/gems/shoulda/test/matchers/active_record/have_readonly_attributes_matcher_test.rb +0 -29
  989. data/vendor/gems/shoulda/test/matchers/active_record/validate_acceptance_of_matcher_test.rb +0 -44
  990. data/vendor/gems/shoulda/test/matchers/active_record/validate_format_of_matcher_test.rb +0 -39
  991. data/vendor/gems/shoulda/test/matchers/active_record/validate_numericality_of_matcher_test.rb +0 -52
  992. data/vendor/gems/shoulda/test/matchers/active_record/validate_presence_of_matcher_test.rb +0 -86
  993. data/vendor/gems/shoulda/test/matchers/active_record/validate_uniqueness_of_matcher_test.rb +0 -147
  994. data/vendor/gems/shoulda/test/matchers/controller/assign_to_matcher_test.rb +0 -35
  995. data/vendor/gems/shoulda/test/matchers/controller/filter_param_matcher_test.rb +0 -32
  996. data/vendor/gems/shoulda/test/matchers/controller/render_with_layout_matcher_test.rb +0 -33
  997. data/vendor/gems/shoulda/test/matchers/controller/respond_with_content_type_matcher_test.rb +0 -32
  998. data/vendor/gems/shoulda/test/matchers/controller/respond_with_matcher_test.rb +0 -106
  999. data/vendor/gems/shoulda/test/matchers/controller/route_matcher_test.rb +0 -58
  1000. data/vendor/gems/shoulda/test/matchers/controller/set_session_matcher_test.rb +0 -38
  1001. data/vendor/gems/shoulda/test/matchers/controller/set_the_flash_matcher.rb +0 -41
  1002. data/vendor/gems/shoulda/test/model_builder.rb +0 -106
  1003. data/vendor/gems/shoulda/test/other/autoload_macro_test.rb +0 -18
  1004. data/vendor/gems/shoulda/test/other/context_test.rb +0 -189
  1005. data/vendor/gems/shoulda/test/other/convert_to_should_syntax_test.rb +0 -63
  1006. data/vendor/gems/shoulda/test/other/helpers_test.rb +0 -340
  1007. data/vendor/gems/shoulda/test/other/private_helpers_test.rb +0 -32
  1008. data/vendor/gems/shoulda/test/other/should_test.rb +0 -271
  1009. data/vendor/gems/shoulda/test/rails_root/app/controllers/application_controller.rb +0 -25
  1010. data/vendor/gems/shoulda/test/rails_root/app/controllers/posts_controller.rb +0 -87
  1011. data/vendor/gems/shoulda/test/rails_root/app/controllers/users_controller.rb +0 -84
  1012. data/vendor/gems/shoulda/test/rails_root/app/helpers/application_helper.rb +0 -3
  1013. data/vendor/gems/shoulda/test/rails_root/app/helpers/posts_helper.rb +0 -2
  1014. data/vendor/gems/shoulda/test/rails_root/app/helpers/users_helper.rb +0 -2
  1015. data/vendor/gems/shoulda/test/rails_root/app/models/address.rb +0 -7
  1016. data/vendor/gems/shoulda/test/rails_root/app/models/flea.rb +0 -3
  1017. data/vendor/gems/shoulda/test/rails_root/app/models/friendship.rb +0 -4
  1018. data/vendor/gems/shoulda/test/rails_root/app/models/pets/cat.rb +0 -7
  1019. data/vendor/gems/shoulda/test/rails_root/app/models/pets/dog.rb +0 -10
  1020. data/vendor/gems/shoulda/test/rails_root/app/models/post.rb +0 -12
  1021. data/vendor/gems/shoulda/test/rails_root/app/models/product.rb +0 -12
  1022. data/vendor/gems/shoulda/test/rails_root/app/models/profile.rb +0 -2
  1023. data/vendor/gems/shoulda/test/rails_root/app/models/registration.rb +0 -2
  1024. data/vendor/gems/shoulda/test/rails_root/app/models/tag.rb +0 -8
  1025. data/vendor/gems/shoulda/test/rails_root/app/models/tagging.rb +0 -4
  1026. data/vendor/gems/shoulda/test/rails_root/app/models/treat.rb +0 -3
  1027. data/vendor/gems/shoulda/test/rails_root/app/models/user.rb +0 -32
  1028. data/vendor/gems/shoulda/test/rails_root/app/views/layouts/posts.rhtml +0 -19
  1029. data/vendor/gems/shoulda/test/rails_root/app/views/layouts/users.rhtml +0 -17
  1030. data/vendor/gems/shoulda/test/rails_root/app/views/layouts/wide.html.erb +0 -1
  1031. data/vendor/gems/shoulda/test/rails_root/app/views/posts/edit.rhtml +0 -27
  1032. data/vendor/gems/shoulda/test/rails_root/app/views/posts/index.rhtml +0 -25
  1033. data/vendor/gems/shoulda/test/rails_root/app/views/posts/new.rhtml +0 -26
  1034. data/vendor/gems/shoulda/test/rails_root/app/views/posts/show.rhtml +0 -18
  1035. data/vendor/gems/shoulda/test/rails_root/app/views/users/edit.rhtml +0 -22
  1036. data/vendor/gems/shoulda/test/rails_root/app/views/users/index.rhtml +0 -22
  1037. data/vendor/gems/shoulda/test/rails_root/app/views/users/new.rhtml +0 -21
  1038. data/vendor/gems/shoulda/test/rails_root/app/views/users/show.rhtml +0 -13
  1039. data/vendor/gems/shoulda/test/rails_root/config/boot.rb +0 -110
  1040. data/vendor/gems/shoulda/test/rails_root/config/database.yml +0 -4
  1041. data/vendor/gems/shoulda/test/rails_root/config/environment.rb +0 -18
  1042. data/vendor/gems/shoulda/test/rails_root/config/environments/test.rb +0 -0
  1043. data/vendor/gems/shoulda/test/rails_root/config/initializers/new_rails_defaults.rb +0 -15
  1044. data/vendor/gems/shoulda/test/rails_root/config/initializers/shoulda.rb +0 -8
  1045. data/vendor/gems/shoulda/test/rails_root/config/routes.rb +0 -6
  1046. data/vendor/gems/shoulda/test/rails_root/db/migrate/001_create_users.rb +0 -19
  1047. data/vendor/gems/shoulda/test/rails_root/db/migrate/002_create_posts.rb +0 -13
  1048. data/vendor/gems/shoulda/test/rails_root/db/migrate/003_create_taggings.rb +0 -12
  1049. data/vendor/gems/shoulda/test/rails_root/db/migrate/004_create_tags.rb +0 -11
  1050. data/vendor/gems/shoulda/test/rails_root/db/migrate/005_create_dogs.rb +0 -12
  1051. data/vendor/gems/shoulda/test/rails_root/db/migrate/006_create_addresses.rb +0 -14
  1052. data/vendor/gems/shoulda/test/rails_root/db/migrate/007_create_fleas.rb +0 -11
  1053. data/vendor/gems/shoulda/test/rails_root/db/migrate/008_create_dogs_fleas.rb +0 -12
  1054. data/vendor/gems/shoulda/test/rails_root/db/migrate/009_create_products.rb +0 -17
  1055. data/vendor/gems/shoulda/test/rails_root/db/migrate/010_create_friendships.rb +0 -14
  1056. data/vendor/gems/shoulda/test/rails_root/db/migrate/011_create_treats.rb +0 -12
  1057. data/vendor/gems/shoulda/test/rails_root/db/migrate/20090506203502_create_profiles.rb +0 -12
  1058. data/vendor/gems/shoulda/test/rails_root/db/migrate/20090506203536_create_registrations.rb +0 -14
  1059. data/vendor/gems/shoulda/test/rails_root/db/migrate/20090513104502_create_cats.rb +0 -12
  1060. data/vendor/gems/shoulda/test/rails_root/db/schema.rb +0 -0
  1061. data/vendor/gems/shoulda/test/rails_root/public/404.html +0 -30
  1062. data/vendor/gems/shoulda/test/rails_root/public/422.html +0 -30
  1063. data/vendor/gems/shoulda/test/rails_root/public/500.html +0 -30
  1064. data/vendor/gems/shoulda/test/rails_root/script/console +0 -3
  1065. data/vendor/gems/shoulda/test/rails_root/script/generate +0 -3
  1066. data/vendor/gems/shoulda/test/rails_root/test/shoulda_macros/custom_macro.rb +0 -6
  1067. data/vendor/gems/shoulda/test/rails_root/vendor/gems/gem_with_macro-0.0.1/shoulda_macros/gem_macro.rb +0 -6
  1068. data/vendor/gems/shoulda/test/rails_root/vendor/plugins/plugin_with_macro/shoulda_macros/plugin_macro.rb +0 -6
  1069. data/vendor/gems/shoulda/test/rspec_test.rb +0 -207
  1070. data/vendor/gems/shoulda/test/test_helper.rb +0 -28
  1071. data/vendor/gems/shoulda/test/unit/address_test.rb +0 -10
  1072. data/vendor/gems/shoulda/test/unit/cat_test.rb +0 -7
  1073. data/vendor/gems/shoulda/test/unit/dog_test.rb +0 -9
  1074. data/vendor/gems/shoulda/test/unit/flea_test.rb +0 -6
  1075. data/vendor/gems/shoulda/test/unit/friendship_test.rb +0 -6
  1076. data/vendor/gems/shoulda/test/unit/post_test.rb +0 -19
  1077. data/vendor/gems/shoulda/test/unit/product_test.rb +0 -23
  1078. data/vendor/gems/shoulda/test/unit/tag_test.rb +0 -15
  1079. data/vendor/gems/shoulda/test/unit/tagging_test.rb +0 -6
  1080. data/vendor/gems/shoulda/test/unit/user_test.rb +0 -80
  1081. data/vendor/gems/thrift/CHANGELOG +0 -1
  1082. data/vendor/gems/thrift/Makefile.am +0 -47
  1083. data/vendor/gems/thrift/Manifest +0 -81
  1084. data/vendor/gems/thrift/README +0 -43
  1085. data/vendor/gems/thrift/Rakefile +0 -104
  1086. data/vendor/gems/thrift/benchmark/Benchmark.thrift +0 -24
  1087. data/vendor/gems/thrift/benchmark/benchmark.rb +0 -271
  1088. data/vendor/gems/thrift/benchmark/client.rb +0 -74
  1089. data/vendor/gems/thrift/benchmark/server.rb +0 -82
  1090. data/vendor/gems/thrift/benchmark/thin_server.rb +0 -44
  1091. data/vendor/gems/thrift/ext/binary_protocol_accelerated.c +0 -474
  1092. data/vendor/gems/thrift/ext/binary_protocol_accelerated.h +0 -20
  1093. data/vendor/gems/thrift/ext/compact_protocol.c +0 -665
  1094. data/vendor/gems/thrift/ext/compact_protocol.h +0 -20
  1095. data/vendor/gems/thrift/ext/constants.h +0 -95
  1096. data/vendor/gems/thrift/ext/extconf.rb +0 -26
  1097. data/vendor/gems/thrift/ext/macros.h +0 -41
  1098. data/vendor/gems/thrift/ext/memory_buffer.c +0 -76
  1099. data/vendor/gems/thrift/ext/memory_buffer.h +0 -20
  1100. data/vendor/gems/thrift/ext/protocol.c +0 -185
  1101. data/vendor/gems/thrift/ext/protocol.h +0 -20
  1102. data/vendor/gems/thrift/ext/struct.c +0 -606
  1103. data/vendor/gems/thrift/ext/struct.h +0 -67
  1104. data/vendor/gems/thrift/ext/thrift_native.c +0 -194
  1105. data/vendor/gems/thrift/lib/thrift/client.rb +0 -62
  1106. data/vendor/gems/thrift/lib/thrift/core_ext/fixnum.rb +0 -29
  1107. data/vendor/gems/thrift/lib/thrift/core_ext.rb +0 -23
  1108. data/vendor/gems/thrift/lib/thrift/exceptions.rb +0 -82
  1109. data/vendor/gems/thrift/lib/thrift/processor.rb +0 -57
  1110. data/vendor/gems/thrift/lib/thrift/protocol/base_protocol.rb +0 -290
  1111. data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol.rb +0 -225
  1112. data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol_accelerated.rb +0 -35
  1113. data/vendor/gems/thrift/lib/thrift/protocol/compact_protocol.rb +0 -422
  1114. data/vendor/gems/thrift/lib/thrift/serializer/deserializer.rb +0 -33
  1115. data/vendor/gems/thrift/lib/thrift/serializer/serializer.rb +0 -34
  1116. data/vendor/gems/thrift/lib/thrift/server/base_server.rb +0 -31
  1117. data/vendor/gems/thrift/lib/thrift/server/mongrel_http_server.rb +0 -58
  1118. data/vendor/gems/thrift/lib/thrift/server/nonblocking_server.rb +0 -296
  1119. data/vendor/gems/thrift/lib/thrift/server/simple_server.rb +0 -43
  1120. data/vendor/gems/thrift/lib/thrift/server/thread_pool_server.rb +0 -75
  1121. data/vendor/gems/thrift/lib/thrift/server/threaded_server.rb +0 -47
  1122. data/vendor/gems/thrift/lib/thrift/struct.rb +0 -298
  1123. data/vendor/gems/thrift/lib/thrift/thrift_native.rb +0 -24
  1124. data/vendor/gems/thrift/lib/thrift/transport/base_server_transport.rb +0 -37
  1125. data/vendor/gems/thrift/lib/thrift/transport/base_transport.rb +0 -70
  1126. data/vendor/gems/thrift/lib/thrift/transport/buffered_transport.rb +0 -77
  1127. data/vendor/gems/thrift/lib/thrift/transport/framed_transport.rb +0 -90
  1128. data/vendor/gems/thrift/lib/thrift/transport/http_client_transport.rb +0 -45
  1129. data/vendor/gems/thrift/lib/thrift/transport/io_stream_transport.rb +0 -39
  1130. data/vendor/gems/thrift/lib/thrift/transport/memory_buffer_transport.rb +0 -96
  1131. data/vendor/gems/thrift/lib/thrift/transport/server_socket.rb +0 -63
  1132. data/vendor/gems/thrift/lib/thrift/transport/socket.rb +0 -136
  1133. data/vendor/gems/thrift/lib/thrift/transport/unix_server_socket.rb +0 -60
  1134. data/vendor/gems/thrift/lib/thrift/transport/unix_socket.rb +0 -40
  1135. data/vendor/gems/thrift/lib/thrift/types.rb +0 -101
  1136. data/vendor/gems/thrift/lib/thrift.rb +0 -59
  1137. data/vendor/gems/thrift/script/proto_benchmark.rb +0 -121
  1138. data/vendor/gems/thrift/script/read_struct.rb +0 -43
  1139. data/vendor/gems/thrift/script/write_struct.rb +0 -30
  1140. data/vendor/gems/thrift/setup.rb +0 -1585
  1141. data/vendor/gems/thrift/spec/ThriftSpec.thrift +0 -84
  1142. data/vendor/gems/thrift/spec/base_protocol_spec.rb +0 -160
  1143. data/vendor/gems/thrift/spec/base_transport_spec.rb +0 -351
  1144. data/vendor/gems/thrift/spec/binary_protocol_accelerated_spec.rb +0 -41
  1145. data/vendor/gems/thrift/spec/binary_protocol_spec.rb +0 -63
  1146. data/vendor/gems/thrift/spec/binary_protocol_spec_shared.rb +0 -375
  1147. data/vendor/gems/thrift/spec/client_spec.rb +0 -100
  1148. data/vendor/gems/thrift/spec/compact_protocol_spec.rb +0 -117
  1149. data/vendor/gems/thrift/spec/exception_spec.rb +0 -142
  1150. data/vendor/gems/thrift/spec/http_client_spec.rb +0 -49
  1151. data/vendor/gems/thrift/spec/mongrel_http_server_spec.rb +0 -117
  1152. data/vendor/gems/thrift/spec/nonblocking_server_spec.rb +0 -265
  1153. data/vendor/gems/thrift/spec/processor_spec.rb +0 -83
  1154. data/vendor/gems/thrift/spec/serializer_spec.rb +0 -69
  1155. data/vendor/gems/thrift/spec/server_socket_spec.rb +0 -80
  1156. data/vendor/gems/thrift/spec/server_spec.rb +0 -160
  1157. data/vendor/gems/thrift/spec/socket_spec.rb +0 -61
  1158. data/vendor/gems/thrift/spec/socket_spec_shared.rb +0 -104
  1159. data/vendor/gems/thrift/spec/spec_helper.rb +0 -60
  1160. data/vendor/gems/thrift/spec/struct_spec.rb +0 -252
  1161. data/vendor/gems/thrift/spec/types_spec.rb +0 -116
  1162. data/vendor/gems/thrift/spec/unix_socket_spec.rb +0 -108
  1163. /data/{vendor/chef → examples/chef_cloud/chef-repo/cookbooks}/apache2/templates/default/a2dismod.erb +0 -0
  1164. /data/{vendor/chef → examples/chef_cloud/chef-repo/cookbooks}/apache2/templates/default/a2dissite.erb +0 -0
  1165. /data/{vendor/chef → examples/chef_cloud/chef-repo/cookbooks}/apache2/templates/default/a2ensite.erb +0 -0
  1166. /data/{vendor/chef → examples/chef_cloud/chef-repo/cookbooks}/apache2/templates/default/port_apache.erb +0 -0
  1167. /data/{vendor/chef → examples/chef_cloud/chef-repo/cookbooks}/apache2/templates/default/ports.conf.erb +0 -0
  1168. /data/{vendor/chef → examples/chef_cloud/chef-repo/cookbooks}/apache2/templates/default/web_app.conf.erb +0 -0
  1169. /data/{lib/proto/gen-py/__init__.py → examples/chef_cloud/chef-repo/cookbooks/chef/recipes/default.rb} +0 -0
  1170. /data/{vendor/gems/context/PostInstall.txt → lib/cloud_providers/default/helpers/base_helper.rb} +0 -0
  1171. /data/vendor/gems/{colors → searchable_paths}/LICENSE +0 -0
@@ -1,1094 +0,0 @@
1
- #
2
- # Copyright (c) 2007-2008 RightScale Inc
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #
23
-
24
- module RightAws
25
-
26
- # = RightAws::S3 -- RightScale's Amazon S3 interface
27
- # The RightAws::S3 class provides a complete interface to Amazon's Simple
28
- # Storage Service.
29
- # For explanations of the semantics
30
- # of each call, please refer to Amazon's documentation at
31
- # http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=48
32
- #
33
- # See examples below for the bucket and buckets methods.
34
- #
35
- # Error handling: all operations raise an RightAws::AwsError in case
36
- # of problems. Note that transient errors are automatically retried.
37
- #
38
- # It is a good way to use domain naming style getting a name for the buckets.
39
- # See http://docs.amazonwebservices.com/AmazonS3/2006-03-01/UsingBucket.html
40
- # about the naming convention for the buckets. This case they can be accessed using a virtual domains.
41
- #
42
- # Let assume you have 3 buckets: 'awesome-bucket', 'awesome_bucket' and 'AWEsomE-bucket'.
43
- # The first ones objects can be accessed as: http:// awesome-bucket.s3.amazonaws.com/key/object
44
- #
45
- # But the rest have to be accessed as:
46
- # http:// s3.amazonaws.com/awesome_bucket/key/object and http:// s3.amazonaws.com/AWEsomE-bucket/key/object
47
- #
48
- # See: http://docs.amazonwebservices.com/AmazonS3/2006-03-01/VirtualHosting.html for better explanation.
49
- #
50
- class S3
51
- attr_reader :interface
52
-
53
- # Create a new handle to an S3 account. All handles share the same per process or per thread
54
- # HTTP connection to Amazon S3. Each handle is for a specific account.
55
- # The +params+ are passed through as-is to RightAws::S3Interface.new
56
- #
57
- # Params is a hash:
58
- #
59
- # {:server => 's3.amazonaws.com' # Amazon service host: 's3.amazonaws.com'(default)
60
- # :port => 443 # Amazon service port: 80 or 443(default)
61
- # :protocol => 'https' # Amazon service protocol: 'http' or 'https'(default)
62
- # :multi_thread => true|false # Multi-threaded (connection per each thread): true or false(default)
63
- # :logger => Logger Object} # Logger instance: logs to STDOUT if omitted }
64
- def initialize(aws_access_key_id=nil, aws_secret_access_key=nil, params={})
65
- @interface = S3Interface.new(aws_access_key_id, aws_secret_access_key, params)
66
- end
67
-
68
- # Retrieve a list of buckets.
69
- # Returns an array of RightAws::S3::Bucket instances.
70
- # # Create handle to S3 account
71
- # s3 = RightAws::S3.new(aws_access_key_id, aws_secret_access_key)
72
- # my_buckets_names = s3.buckets.map{|b| b.name}
73
- # puts "Buckets on S3: #{my_bucket_names.join(', ')}"
74
- def buckets
75
- @interface.list_all_my_buckets.map! do |entry|
76
- owner = Owner.new(entry[:owner_id], entry[:owner_display_name])
77
- Bucket.new(self, entry[:name], entry[:creation_date], owner)
78
- end
79
- end
80
-
81
- # Retrieve an individual bucket.
82
- # If the bucket does not exist and +create+ is set, a new bucket
83
- # is created on S3. Launching this method with +create+=+true+ may
84
- # affect on the bucket's ACL if the bucket already exists.
85
- # Returns a RightAws::S3::Bucket instance or +nil+ if the bucket does not exist
86
- # and +create+ is not set.
87
- #
88
- # s3 = RightAws::S3.new(aws_access_key_id, aws_secret_access_key)
89
- # bucket1 = s3.bucket('my_awesome_bucket_1')
90
- # bucket1.keys #=> exception here if the bucket does not exists
91
- # ...
92
- # bucket2 = s3.bucket('my_awesome_bucket_2', true)
93
- # bucket2.keys #=> list of keys
94
- # # create a bucket at the European location with public read access
95
- # bucket3 = s3.bucket('my-awesome-bucket-3', true, 'public-read', :location => :eu)
96
- #
97
- # see http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAccessPolicy.html
98
- # (section: Canned Access Policies)
99
- #
100
- def bucket(name, create=false, perms=nil, headers={})
101
- headers['x-amz-acl'] = perms if perms
102
- @interface.create_bucket(name, headers) if create
103
- buckets.each { |bucket| return bucket if bucket.name == name }
104
- nil
105
- end
106
-
107
-
108
- class Bucket
109
- attr_reader :s3, :name, :owner, :creation_date
110
-
111
- # Create a Bucket instance.
112
- # If the bucket does not exist and +create+ is set, a new bucket
113
- # is created on S3. Launching this method with +create+=+true+ may
114
- # affect on the bucket's ACL if the bucket already exists.
115
- # Returns Bucket instance or +nil+ if the bucket does not exist
116
- # and +create+ is not set.
117
- #
118
- # s3 = RightAws::S3.new(aws_access_key_id, aws_secret_access_key)
119
- # ...
120
- # bucket1 = RightAws::S3::Bucket.create(s3, 'my_awesome_bucket_1')
121
- # bucket1.keys #=> exception here if the bucket does not exists
122
- # ...
123
- # bucket2 = RightAws::S3::Bucket.create(s3, 'my_awesome_bucket_2', true)
124
- # bucket2.keys #=> list of keys
125
- # # create a bucket at the European location with public read access
126
- # bucket3 = RightAws::S3::Bucket.create(s3,'my-awesome-bucket-3', true, 'public-read', :location => :eu)
127
- #
128
- # see http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAccessPolicy.html
129
- # (section: Canned Access Policies)
130
- #
131
- def self.create(s3, name, create=false, perms=nil, headers={})
132
- s3.bucket(name, create, perms, headers)
133
- end
134
-
135
-
136
- # Create a bucket instance. In normal use this method should
137
- # not be called directly.
138
- # Use RightAws::S3::Bucket.create or RightAws::S3.bucket instead.
139
- def initialize(s3, name, creation_date=nil, owner=nil)
140
- @s3 = s3
141
- @name = name
142
- @owner = owner
143
- @creation_date = creation_date
144
- if @creation_date && !@creation_date.is_a?(Time)
145
- @creation_date = Time.parse(@creation_date)
146
- end
147
- end
148
-
149
- # Return bucket name as a String.
150
- #
151
- # bucket = RightAws::S3.bucket('my_awesome_bucket')
152
- # puts bucket #=> 'my_awesome_bucket'
153
- #
154
- def to_s
155
- @name.to_s
156
- end
157
- alias_method :full_name, :to_s
158
-
159
- # Return a public link to bucket.
160
- #
161
- # bucket.public_link #=> 'https://s3.amazonaws.com:443/my_awesome_bucket'
162
- #
163
- def public_link
164
- params = @s3.interface.params
165
- "#{params[:protocol]}://#{params[:server]}:#{params[:port]}/#{full_name}"
166
- end
167
-
168
- # Returns the bucket location
169
- def location
170
- @location ||= @s3.interface.bucket_location(@name)
171
- end
172
-
173
- # Retrieves the logging configuration for a bucket.
174
- # Returns a hash of {:enabled, :targetbucket, :targetprefix}
175
- #
176
- # bucket.logging_info()
177
- # => {:enabled=>true, :targetbucket=>"mylogbucket", :targetprefix=>"loggylogs/"}
178
- def logging_info
179
- @s3.interface.get_logging_parse(:bucket => @name)
180
- end
181
-
182
- # Enables S3 server access logging on a bucket. The target bucket must have been properly configured to receive server
183
- # access logs.
184
- # Params:
185
- # :targetbucket - either the target bucket object or the name of the target bucket
186
- # :targetprefix - the prefix under which all logs should be stored
187
- #
188
- # bucket.enable_logging(:targetbucket=>"mylogbucket", :targetprefix=>"loggylogs/")
189
- # => true
190
- def enable_logging(params)
191
- AwsUtils.mandatory_arguments([:targetbucket, :targetprefix], params)
192
- AwsUtils.allow_only([:targetbucket, :targetprefix], params)
193
- xmldoc = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><BucketLoggingStatus xmlns=\"http://doc.s3.amazonaws.com/2006-03-01\"><LoggingEnabled><TargetBucket>#{params[:targetbucket]}</TargetBucket><TargetPrefix>#{params[:targetprefix]}</TargetPrefix></LoggingEnabled></BucketLoggingStatus>"
194
- @s3.interface.put_logging(:bucket => @name, :xmldoc => xmldoc)
195
- end
196
-
197
- # Disables S3 server access logging on a bucket. Takes no arguments.
198
- def disable_logging
199
- xmldoc = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><BucketLoggingStatus xmlns=\"http://doc.s3.amazonaws.com/2006-03-01\"></BucketLoggingStatus>"
200
- @s3.interface.put_logging(:bucket => @name, :xmldoc => xmldoc)
201
- end
202
-
203
- # Retrieve a group of keys from Amazon.
204
- # +options+ is a hash: { 'prefix'=>'', 'marker'=>'', 'max-keys'=>5, 'delimiter'=>'' }).
205
- # Retrieves meta-headers information if +head+ it +true+.
206
- # Returns an array of Key instances.
207
- #
208
- # bucket.keys #=> # returns all keys from bucket
209
- # bucket.keys('prefix' => 'logs') #=> # returns all keys that starts with 'logs'
210
- #
211
- def keys(options={}, head=false)
212
- keys_and_service(options, head)[0]
213
- end
214
-
215
- # Same as +keys+ method but return an array of [keys, service_data].
216
- # where +service_data+ is a hash with additional output information.
217
- #
218
- # keys, service = bucket.keys_and_service({'max-keys'=> 2, 'prefix' => 'logs'})
219
- # p keys #=> # 2 keys array
220
- # p service #=> {"max-keys"=>"2", "prefix"=>"logs", "name"=>"my_awesome_bucket", "marker"=>"", "is_truncated"=>true}
221
- #
222
- def keys_and_service(options={}, head=false)
223
- opt = {}; options.each{ |key, value| opt[key.to_s] = value }
224
- service_data = {}
225
- thislist = {}
226
- list = []
227
- @s3.interface.incrementally_list_bucket(@name, opt) do |thislist|
228
- thislist[:contents].each do |entry|
229
- owner = Owner.new(entry[:owner_id], entry[:owner_display_name])
230
- key = Key.new(self, entry[:key], nil, {}, {}, entry[:last_modified], entry[:e_tag], entry[:size], entry[:storage_class], owner)
231
- key.head if head
232
- list << key
233
- end
234
- end
235
- thislist.each_key do |key|
236
- service_data[key] = thislist[key] unless (key == :contents || key == :common_prefixes)
237
- end
238
- [list, service_data]
239
- end
240
-
241
- # Retrieve key information from Amazon.
242
- # The +key_name+ is a +String+ or Key instance.
243
- # Retrieves meta-header information if +head+ is +true+.
244
- # Returns new Key instance.
245
- #
246
- # key = bucket.key('logs/today/1.log', true) #=> #<RightAws::S3::Key:0xb7b1e240 ... >
247
- # # is the same as:
248
- # key = RightAws::S3::Key.create(bucket, 'logs/today/1.log')
249
- # key.head
250
- #
251
- def key(key_name, head=false)
252
- raise 'Key name can not be empty.' if key_name.blank?
253
- key_instance = nil
254
- # if this key exists - find it ....
255
- keys({'prefix'=>key_name}, head).each do |key|
256
- if key.name == key_name.to_s
257
- key_instance = key
258
- break
259
- end
260
- end
261
- # .... else this key is unknown
262
- unless key_instance
263
- key_instance = Key.create(self, key_name.to_s)
264
- end
265
- key_instance
266
- end
267
-
268
- # Store object data.
269
- # The +key+ is a +String+ or Key instance.
270
- # Returns +true+.
271
- #
272
- # bucket.put('logs/today/1.log', 'Olala!') #=> true
273
- #
274
- def put(key, data=nil, meta_headers={}, perms=nil, headers={})
275
- key = Key.create(self, key.to_s, data, meta_headers) unless key.is_a?(Key)
276
- key.put(data, perms, headers)
277
- end
278
-
279
- # Retrieve object data from Amazon.
280
- # The +key+ is a +String+ or Key.
281
- # Returns Key instance.
282
- #
283
- # key = bucket.get('logs/today/1.log') #=>
284
- # puts key.data #=> 'sasfasfasdf'
285
- #
286
- def get(key, headers={})
287
- key = Key.create(self, key.to_s) unless key.is_a?(Key)
288
- key.get(headers)
289
- end
290
-
291
- # Rename object. Returns RightAws::S3::Key instance.
292
- #
293
- # new_key = bucket.rename_key('logs/today/1.log','logs/today/2.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
294
- # puts key.name #=> 'logs/today/2.log'
295
- # key.exists? #=> true
296
- #
297
- def rename_key(old_key_or_name, new_name)
298
- old_key_or_name = Key.create(self, old_key_or_name.to_s) unless old_key_or_name.is_a?(Key)
299
- old_key_or_name.rename(new_name)
300
- old_key_or_name
301
- end
302
-
303
- # Create an object copy. Returns a destination RightAws::S3::Key instance.
304
- #
305
- # new_key = bucket.copy_key('logs/today/1.log','logs/today/2.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
306
- # puts key.name #=> 'logs/today/2.log'
307
- # key.exists? #=> true
308
- #
309
- def copy_key(old_key_or_name, new_key_or_name)
310
- old_key_or_name = Key.create(self, old_key_or_name.to_s) unless old_key_or_name.is_a?(Key)
311
- old_key_or_name.copy(new_key_or_name)
312
- end
313
-
314
- # Move an object to other location. Returns a destination RightAws::S3::Key instance.
315
- #
316
- # new_key = bucket.copy_key('logs/today/1.log','logs/today/2.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
317
- # puts key.name #=> 'logs/today/2.log'
318
- # key.exists? #=> true
319
- #
320
- def move_key(old_key_or_name, new_key_or_name)
321
- old_key_or_name = Key.create(self, old_key_or_name.to_s) unless old_key_or_name.is_a?(Key)
322
- old_key_or_name.move(new_key_or_name)
323
- end
324
-
325
- # Remove all keys from a bucket.
326
- # Returns +true+.
327
- #
328
- # bucket.clear #=> true
329
- #
330
- def clear
331
- @s3.interface.clear_bucket(@name)
332
- end
333
-
334
- # Delete all keys where the 'folder_key' can be interpreted
335
- # as a 'folder' name.
336
- # Returns an array of string keys that have been deleted.
337
- #
338
- # bucket.keys.map{|key| key.name}.join(', ') #=> 'test, test/2/34, test/3, test1, test1/logs'
339
- # bucket.delete_folder('test') #=> ['test','test/2/34','test/3']
340
- #
341
- def delete_folder(folder, separator='/')
342
- @s3.interface.delete_folder(@name, folder, separator)
343
- end
344
-
345
- # Delete a bucket. Bucket must be empty.
346
- # If +force+ is set, clears and deletes the bucket.
347
- # Returns +true+.
348
- #
349
- # bucket.delete(true) #=> true
350
- #
351
- def delete(force=false)
352
- force ? @s3.interface.force_delete_bucket(@name) : @s3.interface.delete_bucket(@name)
353
- end
354
-
355
- # Return a list of grantees.
356
- #
357
- def grantees
358
- Grantee::grantees(self)
359
- end
360
-
361
- end
362
-
363
-
364
- class Key
365
- attr_reader :bucket, :name, :last_modified, :e_tag, :size, :storage_class, :owner
366
- attr_accessor :headers, :meta_headers
367
- attr_writer :data
368
-
369
- # Separate Amazon meta headers from other headers
370
- def self.split_meta(headers) #:nodoc:
371
- hash = headers.dup
372
- meta = {}
373
- hash.each do |key, value|
374
- if key[/^#{S3Interface::AMAZON_METADATA_PREFIX}/]
375
- meta[key.gsub(S3Interface::AMAZON_METADATA_PREFIX,'')] = value
376
- hash.delete(key)
377
- end
378
- end
379
- [hash, meta]
380
- end
381
-
382
- def self.add_meta_prefix(meta_headers, prefix=S3Interface::AMAZON_METADATA_PREFIX)
383
- meta = {}
384
- meta_headers.each do |meta_header, value|
385
- if meta_header[/#{prefix}/]
386
- meta[meta_header] = value
387
- else
388
- meta["#{S3Interface::AMAZON_METADATA_PREFIX}#{meta_header}"] = value
389
- end
390
- end
391
- meta
392
- end
393
-
394
-
395
- # Create a new Key instance, but do not create the actual key.
396
- # The +name+ is a +String+.
397
- # Returns a new Key instance.
398
- #
399
- # key = RightAws::S3::Key.create(bucket, 'logs/today/1.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
400
- # key.exists? #=> true | false
401
- # key.put('Woohoo!') #=> true
402
- # key.exists? #=> true
403
- #
404
- def self.create(bucket, name, data=nil, meta_headers={})
405
- new(bucket, name, data, {}, meta_headers)
406
- end
407
-
408
- # Create a new Key instance, but do not create the actual key.
409
- # In normal use this method should not be called directly.
410
- # Use RightAws::S3::Key.create or bucket.key() instead.
411
- #
412
- def initialize(bucket, name, data=nil, headers={}, meta_headers={},
413
- last_modified=nil, e_tag=nil, size=nil, storage_class=nil, owner=nil)
414
- raise 'Bucket must be a Bucket instance.' unless bucket.is_a?(Bucket)
415
- @bucket = bucket
416
- @name = name
417
- @data = data
418
- @e_tag = e_tag
419
- @size = size.to_i
420
- @storage_class = storage_class
421
- @owner = owner
422
- @last_modified = last_modified
423
- if @last_modified && !@last_modified.is_a?(Time)
424
- @last_modified = Time.parse(@last_modified)
425
- end
426
- @headers, @meta_headers = self.class.split_meta(headers)
427
- @meta_headers.merge!(meta_headers)
428
- end
429
-
430
- # Return key name as a String.
431
- #
432
- # key = RightAws::S3::Key.create(bucket, 'logs/today/1.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
433
- # puts key #=> 'logs/today/1.log'
434
- #
435
- def to_s
436
- @name.to_s
437
- end
438
-
439
- # Return the full S3 path to this key (bucket/key).
440
- #
441
- # key.full_name #=> 'my_awesome_bucket/cool_key'
442
- #
443
- def full_name(separator='/')
444
- "#{@bucket.to_s}#{separator}#{@name}"
445
- end
446
-
447
- # Return a public link to a key.
448
- #
449
- # key.public_link #=> 'https://s3.amazonaws.com:443/my_awesome_bucket/cool_key'
450
- #
451
- def public_link
452
- params = @bucket.s3.interface.params
453
- "#{params[:protocol]}://#{params[:server]}:#{params[:port]}/#{full_name('/')}"
454
- end
455
-
456
- # Return Key data. Retrieve this data from Amazon if it is the first time call.
457
- # TODO TRB 6/19/07 What does the above mean? Clarify.
458
- #
459
- def data
460
- get if !@data and exists?
461
- @data
462
- end
463
-
464
- # Retrieve object data and attributes from Amazon.
465
- # Returns a +String+.
466
- #
467
- def get(headers={})
468
- response = @bucket.s3.interface.get(@bucket.name, @name, headers)
469
- @data = response[:object]
470
- @headers, @meta_headers = self.class.split_meta(response[:headers])
471
- refresh(false)
472
- @data
473
- end
474
-
475
- # Store object data on S3.
476
- # Parameter +data+ is a +String+ or S3Object instance.
477
- # Returns +true+.
478
- #
479
- # key = RightAws::S3::Key.create(bucket, 'logs/today/1.log')
480
- # key.data = 'Qwerty'
481
- # key.put #=> true
482
- # ...
483
- # key.put('Olala!') #=> true
484
- #
485
- def put(data=nil, perms=nil, headers={})
486
- headers['x-amz-acl'] = perms if perms
487
- @data = data || @data
488
- meta = self.class.add_meta_prefix(@meta_headers)
489
- @bucket.s3.interface.put(@bucket.name, @name, @data, meta.merge(headers))
490
- end
491
-
492
- # Rename an object. Returns new object name.
493
- #
494
- # key = RightAws::S3::Key.create(bucket, 'logs/today/1.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
495
- # key.rename('logs/today/2.log') #=> 'logs/today/2.log'
496
- # puts key.name #=> 'logs/today/2.log'
497
- # key.exists? #=> true
498
- #
499
- def rename(new_name)
500
- @bucket.s3.interface.rename(@bucket.name, @name, new_name)
501
- @name = new_name
502
- end
503
-
504
- # Create an object copy. Returns a destination RightAws::S3::Key instance.
505
- #
506
- # # Key instance as destination
507
- # key1 = RightAws::S3::Key.create(bucket, 'logs/today/1.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
508
- # key2 = RightAws::S3::Key.create(bucket, 'logs/today/2.log') #=> #<RightAws::S3::Key:0xb7b5e240 ... >
509
- # key1.put('Olala!') #=> true
510
- # key1.copy(key2) #=> #<RightAws::S3::Key:0xb7b5e240 ... >
511
- # key1.exists? #=> true
512
- # key2.exists? #=> true
513
- # puts key2.data #=> 'Olala!'
514
- #
515
- # # String as destination
516
- # key = RightAws::S3::Key.create(bucket, 'logs/today/777.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
517
- # key.put('Olala!') #=> true
518
- # new_key = key.copy('logs/today/888.log') #=> #<RightAws::S3::Key:0xb7b5e240 ... >
519
- # key.exists? #=> true
520
- # new_key.exists? #=> true
521
- #
522
- def copy(new_key_or_name)
523
- new_key_or_name = Key.create(@bucket, new_key_or_name.to_s) unless new_key_or_name.is_a?(Key)
524
- @bucket.s3.interface.copy(@bucket.name, @name, new_key_or_name.bucket.name, new_key_or_name.name)
525
- new_key_or_name
526
- end
527
-
528
- # Move an object to other location. Returns a destination RightAws::S3::Key instance.
529
- #
530
- # # Key instance as destination
531
- # key1 = RightAws::S3::Key.create(bucket, 'logs/today/1.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
532
- # key2 = RightAws::S3::Key.create(bucket, 'logs/today/2.log') #=> #<RightAws::S3::Key:0xb7b5e240 ... >
533
- # key1.put('Olala!') #=> true
534
- # key1.move(key2) #=> #<RightAws::S3::Key:0xb7b5e240 ... >
535
- # key1.exists? #=> false
536
- # key2.exists? #=> true
537
- # puts key2.data #=> 'Olala!'
538
- #
539
- # # String as destination
540
- # key = RightAws::S3::Key.create(bucket, 'logs/today/777.log') #=> #<RightAws::S3::Key:0xb7b1e240 ... >
541
- # key.put('Olala!') #=> true
542
- # new_key = key.move('logs/today/888.log') #=> #<RightAws::S3::Key:0xb7b5e240 ... >
543
- # key.exists? #=> false
544
- # new_key.exists? #=> true
545
- #
546
- def move(new_key_or_name)
547
- new_key_or_name = Key.create(@bucket, new_key_or_name.to_s) unless new_key_or_name.is_a?(Key)
548
- @bucket.s3.interface.move(@bucket.name, @name, new_key_or_name.bucket.name, new_key_or_name.name)
549
- new_key_or_name
550
- end
551
-
552
- # Retrieve key info from bucket and update attributes.
553
- # Refresh meta-headers (by calling +head+ method) if +head+ is set.
554
- # Returns +true+ if the key exists in bucket and +false+ otherwise.
555
- #
556
- # key = RightAws::S3::Key.create(bucket, 'logs/today/1.log')
557
- # key.e_tag #=> nil
558
- # key.meta_headers #=> {}
559
- # key.refresh #=> true
560
- # key.e_tag #=> '12345678901234567890bf11094484b6'
561
- # key.meta_headers #=> {"family"=>"qwerty", "name"=>"asdfg"}
562
- #
563
- def refresh(head=true)
564
- new_key = @bucket.key(self)
565
- @last_modified = new_key.last_modified
566
- @e_tag = new_key.e_tag
567
- @size = new_key.size
568
- @storage_class = new_key.storage_class
569
- @owner = new_key.owner
570
- if @last_modified
571
- self.head
572
- true
573
- else
574
- @headers = @meta_headers = {}
575
- false
576
- end
577
- end
578
-
579
- # Updates headers and meta-headers from S3.
580
- # Returns +true+.
581
- #
582
- # key.meta_headers #=> {"family"=>"qwerty"}
583
- # key.head #=> true
584
- # key.meta_headers #=> {"family"=>"qwerty", "name"=>"asdfg"}
585
- #
586
- def head
587
- @headers, @meta_headers = self.class.split_meta(@bucket.s3.interface.head(@bucket, @name))
588
- true
589
- end
590
-
591
- # Reload meta-headers only. Returns meta-headers hash.
592
- #
593
- # key.reload_meta #=> {"family"=>"qwerty", "name"=>"asdfg"}
594
- #
595
- def reload_meta
596
- @meta_headers = self.class.split_meta(@bucket.s3.interface.head(@bucket, @name)).last
597
- end
598
-
599
- # Replace meta-headers by new hash at S3. Returns new meta-headers hash.
600
- #
601
- # key.reload_meta #=> {"family"=>"qwerty", "name"=>"asdfg"}
602
- # key.save_meta #=> {"family"=>"oops", "race" => "troll"}
603
- # key.reload_meta #=> {"family"=>"oops", "race" => "troll"}
604
- #
605
- def save_meta(meta_headers)
606
- meta = self.class.add_meta_prefix(meta_headers)
607
- @bucket.s3.interface.copy(@bucket.name, @name, @bucket.name, @name, :replace, meta)
608
- @meta_headers = self.class.split_meta(meta)[1]
609
- end
610
-
611
- # Check for existence of the key in the given bucket.
612
- # Returns +true+ or +false+.
613
- #
614
- # key = RightAws::S3::Key.create(bucket,'logs/today/1.log')
615
- # key.exists? #=> false
616
- # key.put('Woohoo!') #=> true
617
- # key.exists? #=> true
618
- #
619
- def exists?
620
- @bucket.key(self).last_modified ? true : false
621
- end
622
-
623
- # Remove key from bucket.
624
- # Returns +true+.
625
- #
626
- # key.delete #=> true
627
- #
628
- def delete
629
- raise 'Key name must be specified.' if @name.blank?
630
- @bucket.s3.interface.delete(@bucket, @name)
631
- end
632
-
633
- # Return a list of grantees.
634
- #
635
- def grantees
636
- Grantee::grantees(self)
637
- end
638
-
639
- end
640
-
641
-
642
- class Owner
643
- attr_reader :id, :name
644
-
645
- def initialize(id, name)
646
- @id = id
647
- @name = name
648
- end
649
-
650
- # Return Owner name as a +String+.
651
- def to_s
652
- @name
653
- end
654
- end
655
-
656
-
657
- # There are 2 ways to set permissions for a bucket or key (called a +thing+ below):
658
- #
659
- # 1 . Use +perms+ param to set 'Canned Access Policies' when calling the <tt>bucket.create</tt>,
660
- # <tt>bucket.put</tt> and <tt>key.put</tt> methods.
661
- # The +perms+ param can take these values: 'private', 'public-read', 'public-read-write' and
662
- # 'authenticated-read'.
663
- # (see http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAccessPolicy.html).
664
- #
665
- # bucket = s3.bucket('bucket_for_kd_test_13', true, 'public-read')
666
- # key.put('Woohoo!','public-read-write' )
667
- #
668
- # 2 . Use Grantee instances (the permission is a +String+ or an +Array+ of: 'READ', 'WRITE',
669
- # 'READ_ACP', 'WRITE_ACP', 'FULL_CONTROL'):
670
- #
671
- # bucket = s3.bucket('my_awesome_bucket', true)
672
- # grantee1 = RightAws::S3::Grantee.new(bucket, 'a123b...223c', FULL_CONTROL, :apply)
673
- # grantee2 = RightAws::S3::Grantee.new(bucket, 'xy3v3...5fhp', [READ, WRITE], :apply)
674
- #
675
- # There is only one way to get and to remove permission (via Grantee instances):
676
- #
677
- # grantees = bucket.grantees # a list of Grantees that have any access for this bucket
678
- # grantee1 = RightAws::S3::Grantee.new(bucket, 'a123b...223c')
679
- # grantee1.perms #=> returns a list of perms for this grantee to that bucket
680
- # ...
681
- # grantee1.drop # remove all perms for this grantee
682
- # grantee2.revoke('WRITE') # revoke write access only
683
- #
684
- class Grantee
685
- # A bucket or a key the grantee has an access to.
686
- attr_reader :thing
687
- # Grantee Amazon id.
688
- attr_reader :id
689
- # Grantee display name.
690
- attr_reader :name
691
- # Array of permissions.
692
- attr_accessor :perms
693
-
694
- # Retrieve Owner information and a list of Grantee instances that have
695
- # a access to this thing (bucket or key).
696
- #
697
- # bucket = s3.bucket('my_awesome_bucket', true, 'public-read')
698
- # ...
699
- # RightAws::S3::Grantee.owner_and_grantees(bucket) #=> [owner, grantees]
700
- #
701
- def self.owner_and_grantees(thing)
702
- if thing.is_a?(Bucket)
703
- bucket, key = thing, ''
704
- else
705
- bucket, key = thing.bucket, thing
706
- end
707
- hash = bucket.s3.interface.get_acl_parse(bucket.to_s, key.to_s)
708
- owner = Owner.new(hash[:owner][:id], hash[:owner][:display_name])
709
-
710
- grantees = []
711
- hash[:grantees].each do |id, params|
712
- grantees << new(thing, id, params[:permissions], nil, params[:display_name])
713
- end
714
- [owner, grantees]
715
- end
716
-
717
- # Retrieves a list of Grantees instances that have an access to this thing(bucket or key).
718
- #
719
- # bucket = s3.bucket('my_awesome_bucket', true, 'public-read')
720
- # ...
721
- # RightAws::S3::Grantee.grantees(bucket) #=> grantees
722
- #
723
- def self.grantees(thing)
724
- owner_and_grantees(thing)[1]
725
- end
726
-
727
- def self.put_acl(thing, owner, grantees) #:nodoc:
728
- if thing.is_a?(Bucket)
729
- bucket, key = thing, ''
730
- else
731
- bucket, key = thing.bucket, thing
732
- end
733
- body = "<AccessControlPolicy>" +
734
- "<Owner>" +
735
- "<ID>#{owner.id}</ID>" +
736
- "<DisplayName>#{owner.name}</DisplayName>" +
737
- "</Owner>" +
738
- "<AccessControlList>" +
739
- grantees.map{|grantee| grantee.to_xml}.join +
740
- "</AccessControlList>" +
741
- "</AccessControlPolicy>"
742
- bucket.s3.interface.put_acl(bucket.to_s, key.to_s, body)
743
- end
744
-
745
- # Create a new Grantee instance.
746
- # Grantee +id+ must exist on S3. If +action+ == :refresh, then retrieve
747
- # permissions from S3 and update @perms. If +action+ == :apply, then apply
748
- # perms to +thing+ at S3. If +action+ == :apply_and_refresh then it performs.
749
- # both the actions. This is used for the new grantees that had no perms to
750
- # this thing before. The default action is :refresh.
751
- #
752
- # bucket = s3.bucket('my_awesome_bucket', true, 'public-read')
753
- # grantee1 = RightAws::S3::Grantee.new(bucket, 'a123b...223c', FULL_CONTROL)
754
- # ...
755
- # grantee2 = RightAws::S3::Grantee.new(bucket, 'abcde...asdf', [FULL_CONTROL, READ], :apply)
756
- # grantee3 = RightAws::S3::Grantee.new(bucket, 'aaaaa...aaaa', 'READ', :apply_and_refresh)
757
- #
758
- def initialize(thing, id, perms=[], action=:refresh, name=nil)
759
- @thing = thing
760
- @id = id
761
- @name = name
762
- @perms = perms.to_a
763
- case action
764
- when :apply: apply
765
- when :refresh: refresh
766
- when :apply_and_refresh: apply; refresh
767
- end
768
- end
769
-
770
- # Return +true+ if the grantee has any permissions to the thing.
771
- def exists?
772
- self.class.grantees(@thing).each do |grantee|
773
- return true if @id == grantee.id
774
- end
775
- false
776
- end
777
-
778
- # Return Grantee type (+String+): "Group" or "CanonicalUser".
779
- def type
780
- @id[/^http:/] ? "Group" : "CanonicalUser"
781
- end
782
-
783
- # Return a name or an id.
784
- def to_s
785
- @name || @id
786
- end
787
-
788
- # Add permissions for grantee.
789
- # Permissions: 'READ', 'WRITE', 'READ_ACP', 'WRITE_ACP', 'FULL_CONTROL'.
790
- # See http://docs.amazonwebservices.com/AmazonS3/2006-03-01/UsingPermissions.html .
791
- # Returns +true+.
792
- #
793
- # grantee.grant('FULL_CONTROL') #=> true
794
- # grantee.grant('FULL_CONTROL','WRITE','READ') #=> true
795
- # grantee.grant(['WRITE_ACP','READ','READ_ACP']) #=> true
796
- #
797
- def grant(*permissions)
798
- permissions.flatten!
799
- old_perms = @perms.dup
800
- @perms += permissions
801
- @perms.uniq!
802
- return true if @perms == old_perms
803
- apply
804
- end
805
-
806
- # Revoke permissions for grantee.
807
- # Permissions: 'READ', 'WRITE', 'READ_ACP', 'WRITE_ACP', 'FULL_CONTROL'
808
- # See http://docs.amazonwebservices.com/AmazonS3/2006-03-01/UsingPermissions.html .
809
- # Default value is 'FULL_CONTROL'.
810
- # Returns +true+.
811
- #
812
- # grantee.revoke('READ') #=> true
813
- # grantee.revoke('FULL_CONTROL','WRITE') #=> true
814
- # grantee.revoke(['READ_ACP','WRITE_ACP']) #=> true
815
- #
816
- def revoke(*permissions)
817
- permissions.flatten!
818
- old_perms = @perms.dup
819
- @perms -= permissions
820
- @perms.uniq!
821
- return true if @perms == old_perms
822
- apply
823
- end
824
-
825
- # Revoke all permissions for this grantee.
826
- # Returns +true+.
827
- #
828
- # grantee.drop #=> true
829
- #
830
- def drop
831
- @perms = []
832
- apply
833
- end
834
-
835
- # Refresh grantee perms for its +thing+.
836
- # Returns +true+ if the grantee has perms for this +thing+ or
837
- # +false+ otherwise, and updates @perms value as a side-effect.
838
- #
839
- # grantee.grant('FULL_CONTROL') #=> true
840
- # grantee.refresh #=> true
841
- # grantee.drop #=> true
842
- # grantee.refresh #=> false
843
- #
844
- def refresh
845
- @perms = []
846
- self.class.grantees(@thing).each do |grantee|
847
- if @id == grantee.id
848
- @name = grantee.name
849
- @perms = grantee.perms
850
- return true
851
- end
852
- end
853
- false
854
- end
855
-
856
- # Apply current grantee @perms to +thing+. This method is called internally by the +grant+
857
- # and +revoke+ methods. In normal use this method should not
858
- # be called directly.
859
- #
860
- # grantee.perms = ['FULL_CONTROL']
861
- # grantee.apply #=> true
862
- #
863
- def apply
864
- @perms.uniq!
865
- owner, grantees = self.class.owner_and_grantees(@thing)
866
- # walk through all the grantees and replace the data for the current one and ...
867
- grantees.map! { |grantee| grantee.id == @id ? self : grantee }
868
- # ... if this grantee is not known - add this bad boy to a list
869
- grantees << self unless grantees.include?(self)
870
- # set permissions
871
- self.class.put_acl(@thing, owner, grantees)
872
- end
873
-
874
- def to_xml # :nodoc:
875
- id_str = @id[/^http/] ? "<URI>#{@id}</URI>" : "<ID>#{@id}</ID>"
876
- grants = ''
877
- @perms.each do |perm|
878
- grants << "<Grant>" +
879
- "<Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
880
- "xsi:type=\"#{type}\">#{id_str}</Grantee>" +
881
- "<Permission>#{perm}</Permission>" +
882
- "</Grant>"
883
- end
884
- grants
885
- end
886
-
887
- end
888
-
889
- end
890
-
891
- # RightAws::S3Generator and RightAws::S3Generator::Bucket methods:
892
- #
893
- # s3g = RightAws::S3Generator.new('1...2', 'nx...Y6') #=> #<RightAws::S3Generator:0xb7b5cc94>
894
- #
895
- # # List all buckets(method 'GET'):
896
- # buckets_list = s3g.buckets #=> 'https://s3.amazonaws.com:443/?Signature=Y...D&Expires=1180941864&AWSAccessKeyId=1...2'
897
- # # Create bucket link (method 'PUT'):
898
- # bucket = s3g.bucket('my_awesome_bucket') #=> #<RightAws::S3Generator::Bucket:0xb7bcbda8>
899
- # link_to_create = bucket.create_link(1.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket?Signature=4...D&Expires=1180942132&AWSAccessKeyId=1...2
900
- # # ... or:
901
- # bucket = RightAws::S3Generator::Bucket.create(s3g, 'my_awesome_bucket') #=> #<RightAws::S3Generator::Bucket:0xb7bcbda8>
902
- # link_to_create = bucket.create_link(1.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket?Signature=4...D&Expires=1180942132&AWSAccessKeyId=1...2
903
- # # ... or:
904
- # bucket = RightAws::S3Generator::Bucket.new(s3g, 'my_awesome_bucket') #=> #<RightAws::S3Generator::Bucket:0xb7bcbda8>
905
- # link_to_create = bucket.create_link(1.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket?Signature=4...D&Expires=1180942132&AWSAccessKeyId=1...2
906
- # # List bucket(method 'GET'):
907
- # bucket.keys(1.day) #=> https://s3.amazonaws.com:443/my_awesome_bucket?Signature=i...D&Expires=1180942620&AWSAccessKeyId=1...2
908
- # # Create/put key (method 'PUT'):
909
- # bucket.put('my_cool_key') #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=q...D&Expires=1180943094&AWSAccessKeyId=1...2
910
- # # Get key data (method 'GET'):
911
- # bucket.get('logs/today/1.log', 1.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=h...M%3D&Expires=1180820032&AWSAccessKeyId=1...2
912
- # # Delete bucket (method 'DELETE'):
913
- # bucket.delete(2.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=4...D&Expires=1180820032&AWSAccessKeyId=1...2
914
- #
915
- # RightAws::S3Generator::Key methods:
916
- #
917
- # # Create Key instance:
918
- # key = RightAws::S3Generator::Key.new(bicket, 'my_cool_key') #=> #<RightAws::S3Generator::Key:0xb7b7394c>
919
- # # Put key data (method 'PUT'):
920
- # key.put #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=2...D&Expires=1180943302&AWSAccessKeyId=1...2
921
- # # Get key data (method 'GET'):
922
- # key.get #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=a...D&Expires=1180820032&AWSAccessKeyId=1...2
923
- # # Head key (method 'HEAD'):
924
- # key.head #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=b...D&Expires=1180820032&AWSAccessKeyId=1...2
925
- # # Delete key (method 'DELETE'):
926
- # key.delete #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=x...D&Expires=1180820032&AWSAccessKeyId=1...2
927
- #
928
- class S3Generator
929
- attr_reader :interface
930
-
931
- def initialize(aws_access_key_id, aws_secret_access_key, params={})
932
- @interface = S3Interface.new(aws_access_key_id, aws_secret_access_key, params)
933
- end
934
-
935
- # Generate link to list all buckets
936
- #
937
- # s3.buckets(1.hour)
938
- #
939
- def buckets(expires=nil, headers={})
940
- @interface.list_all_my_buckets_link(expires, headers)
941
- end
942
-
943
- # Create new S3LinkBucket instance and generate link to create it at S3.
944
- #
945
- # bucket= s3.bucket('my_owesome_bucket')
946
- #
947
- def bucket(name, expires=nil, headers={})
948
- Bucket.create(self, name.to_s)
949
- end
950
-
951
- class Bucket
952
- attr_reader :s3, :name
953
-
954
- def to_s
955
- @name
956
- end
957
- alias_method :full_name, :to_s
958
-
959
- # Return a public link to bucket.
960
- #
961
- # bucket.public_link #=> 'https://s3.amazonaws.com:443/my_awesome_bucket'
962
- #
963
- def public_link
964
- params = @s3.interface.params
965
- "#{params[:protocol]}://#{params[:server]}:#{params[:port]}/#{full_name}"
966
- end
967
-
968
- # Create new S3LinkBucket instance and generate creation link for it.
969
- def self.create(s3, name, expires=nil, headers={})
970
- new(s3, name.to_s)
971
- end
972
-
973
- # Create new S3LinkBucket instance.
974
- def initialize(s3, name)
975
- @s3, @name = s3, name.to_s
976
- end
977
-
978
- # Return a link to create this bucket.
979
- #
980
- def create_link(expires=nil, headers={})
981
- @s3.interface.create_bucket_link(@name, expires, headers)
982
- end
983
-
984
- # Generate link to list keys.
985
- #
986
- # bucket.keys
987
- # bucket.keys('prefix'=>'logs')
988
- #
989
- def keys(options=nil, expires=nil, headers={})
990
- @s3.interface.list_bucket_link(@name, options, expires, headers)
991
- end
992
-
993
- # Return a S3Generator::Key instance.
994
- #
995
- # bucket.key('my_cool_key').get #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=B...D&Expires=1180820032&AWSAccessKeyId=1...2
996
- # bucket.key('my_cool_key').delete #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=B...D&Expires=1180820098&AWSAccessKeyId=1...2
997
- #
998
- def key(name)
999
- Key.new(self, name)
1000
- end
1001
-
1002
- # Generates link to PUT key data.
1003
- #
1004
- # puts bucket.put('logs/today/1.log', 2.hour)
1005
- #
1006
- def put(key, meta_headers={}, expires=nil, headers={})
1007
- meta = RightAws::S3::Key.add_meta_prefix(meta_headers)
1008
- @s3.interface.put_link(@name, key.to_s, nil, expires, meta.merge(headers))
1009
- end
1010
-
1011
- # Generate link to GET key data.
1012
- #
1013
- # bucket.get('logs/today/1.log', 1.hour)
1014
- #
1015
- def get(key, expires=nil, headers={})
1016
- @s3.interface.get_link(@name, key.to_s, expires, headers)
1017
- end
1018
-
1019
- # Generate link to delete bucket.
1020
- #
1021
- # bucket.delete(2.hour)
1022
- #
1023
- def delete(expires=nil, headers={})
1024
- @s3.interface.delete_bucket_link(@name, expires, headers)
1025
- end
1026
- end
1027
-
1028
-
1029
- class Key
1030
- attr_reader :bucket, :name
1031
-
1032
- def to_s
1033
- @name
1034
- end
1035
-
1036
- # Return a full S# name (bucket/key).
1037
- #
1038
- # key.full_name #=> 'my_awesome_bucket/cool_key'
1039
- #
1040
- def full_name(separator='/')
1041
- "#{@bucket.to_s}#{separator}#{@name}"
1042
- end
1043
-
1044
- # Return a public link to key.
1045
- #
1046
- # key.public_link #=> 'https://s3.amazonaws.com:443/my_awesome_bucket/cool_key'
1047
- #
1048
- def public_link
1049
- params = @bucket.s3.interface.params
1050
- "#{params[:protocol]}://#{params[:server]}:#{params[:port]}/#{full_name('/')}"
1051
- end
1052
-
1053
- def initialize(bucket, name, meta_headers={})
1054
- @bucket = bucket
1055
- @name = name.to_s
1056
- @meta_headers = meta_headers
1057
- raise 'Key name can not be empty.' if @name.blank?
1058
- end
1059
-
1060
- # Generate link to PUT key data.
1061
- #
1062
- # puts bucket.put('logs/today/1.log', '123', 2.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=B...D&Expires=1180820032&AWSAccessKeyId=1...2
1063
- #
1064
- def put(expires=nil, headers={})
1065
- @bucket.put(@name.to_s, @meta_headers, expires, headers)
1066
- end
1067
-
1068
- # Generate link to GET key data.
1069
- #
1070
- # bucket.get('logs/today/1.log', 1.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=h...M%3D&Expires=1180820032&AWSAccessKeyId=1...2
1071
- #
1072
- def get(expires=nil, headers={})
1073
- @bucket.s3.interface.get_link(@bucket.to_s, @name, expires, headers)
1074
- end
1075
-
1076
- # Generate link to delete key.
1077
- #
1078
- # bucket.delete(2.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=4...D&Expires=1180820032&AWSAccessKeyId=1...2
1079
- #
1080
- def delete(expires=nil, headers={})
1081
- @bucket.s3.interface.delete_link(@bucket.to_s, @name, expires, headers)
1082
- end
1083
-
1084
- # Generate link to head key.
1085
- #
1086
- # bucket.head(2.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=4...D&Expires=1180820032&AWSAccessKeyId=1...2
1087
- #
1088
- def head(expires=nil, headers={})
1089
- @bucket.s3.interface.head_link(@bucket.to_s, @name, expires, headers)
1090
- end
1091
- end
1092
- end
1093
-
1094
- end