poolparty 0.2.84 → 1.2.2

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 (642) hide show
  1. data/History.txt +7 -0
  2. data/License.txt +1 -1
  3. data/PostInstall.txt +1 -1
  4. data/README.txt +13 -22
  5. data/Rakefile +26 -35
  6. data/VERSION.yml +4 -0
  7. data/bin/cloud +24 -3
  8. data/bin/cloud-bootstrap +31 -0
  9. data/bin/cloud-configure +36 -20
  10. data/bin/{pool-console → cloud-console} +0 -0
  11. data/bin/cloud-contract +7 -7
  12. data/bin/cloud-describe +28 -0
  13. data/bin/cloud-expand +13 -6
  14. data/bin/cloud-handle-load +3 -3
  15. data/bin/cloud-list +9 -14
  16. data/bin/cloud-osxcopy +6 -5
  17. data/bin/cloud-provision +17 -22
  18. data/bin/cloud-setup-dev +11 -11
  19. data/bin/cloud-show +28 -0
  20. data/bin/cloud-spec +2 -2
  21. data/bin/cloud-ssh +10 -3
  22. data/bin/cloud-start +21 -23
  23. data/bin/cloud-terminate +15 -7
  24. data/bin/cloud-verify +32 -0
  25. data/bin/install-poolparty +216 -0
  26. data/bin/server-butterfly +25 -0
  27. data/bin/server-cloud-elections +37 -0
  28. data/bin/server-ensure-provisioning +33 -0
  29. data/bin/server-get-load +9 -12
  30. data/bin/server-list-active +25 -12
  31. data/bin/server-manage-election +67 -0
  32. data/bin/server-monitor.ru +42 -0
  33. data/bin/server-query-agent +15 -0
  34. data/bin/server-rerun +1 -1
  35. data/bin/server-write-new-nodes +2 -2
  36. data/config/jeweler.rb +52 -0
  37. data/config/requirements.rb +1 -9
  38. data/examples/basic.rb +10 -10
  39. data/examples/deploy.rb +5 -0
  40. data/examples/fairchild.rb +28 -0
  41. data/examples/fairchild_chef.rb +19 -0
  42. data/examples/maize.rb +37 -0
  43. data/examples/paparazzi.conf.erb +21 -0
  44. data/generators/poolspec/poolspec_generator.rb +1 -9
  45. data/generators/poolspec/templates/pool_spec_template.erb +0 -1
  46. data/lib/poolparty/{aska/aska.rb → aska.rb} +19 -28
  47. data/lib/poolparty/base_packages/haproxy.rb +48 -31
  48. data/lib/poolparty/base_packages/heartbeat.rb +6 -62
  49. data/lib/poolparty/base_packages/poolparty.rb +5 -105
  50. data/lib/poolparty/base_packages/ruby.rb +4 -4
  51. data/lib/poolparty/base_packages/runit.rb +1 -1
  52. data/lib/poolparty/core/array.rb +21 -3
  53. data/lib/poolparty/core/hash.rb +45 -10
  54. data/lib/poolparty/core/kernel.rb +30 -8
  55. data/lib/poolparty/core/nil.rb +8 -0
  56. data/lib/poolparty/core/object.rb +34 -25
  57. data/lib/poolparty/core/ordered_hash.rb +99 -0
  58. data/lib/poolparty/core/string.rb +112 -15
  59. data/lib/poolparty/core/symbol.rb +10 -0
  60. data/lib/poolparty/dependencies.rb +49 -0
  61. data/lib/poolparty/dependency_resolver/chef_resolver.rb +237 -0
  62. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +42 -0
  63. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +29 -0
  64. data/lib/poolparty/{dependency_resolutions → dependency_resolver}/puppet.rb +34 -29
  65. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +188 -0
  66. data/lib/poolparty/exceptions/MasterException.rb +2 -2
  67. data/lib/poolparty/exceptions/RemoteException.rb +1 -1
  68. data/lib/poolparty/exceptions/dependency_resolver_exception.rb +5 -0
  69. data/lib/poolparty/exceptions/package_exception.rb +7 -0
  70. data/lib/poolparty/extra/deployments.rb +7 -7
  71. data/lib/poolparty/helpers/binary.rb +26 -32
  72. data/lib/poolparty/helpers/console.rb +1 -1
  73. data/lib/poolparty/helpers/display.rb +1 -5
  74. data/lib/poolparty/helpers/hash_printer.rb +44 -0
  75. data/lib/poolparty/helpers/loading.rb +4 -0
  76. data/lib/poolparty/helpers/optioner.rb +39 -25
  77. data/lib/poolparty/lite.rb +30 -0
  78. data/lib/poolparty/modules/callbacks.rb +44 -0
  79. data/lib/poolparty/modules/cloud_dsl.rb +38 -8
  80. data/lib/poolparty/modules/cloud_resourcer.rb +67 -97
  81. data/lib/poolparty/modules/daemonizable.rb +141 -0
  82. data/lib/poolparty/modules/definable_resource.rb +8 -14
  83. data/lib/poolparty/modules/file_writer.rb +25 -17
  84. data/lib/poolparty/modules/pinger.rb +28 -0
  85. data/lib/poolparty/modules/pretty_printer.rb +1 -1
  86. data/lib/poolparty/modules/resourcing_dsl.rb +55 -40
  87. data/lib/poolparty/modules/searchable_paths.rb +91 -0
  88. data/lib/poolparty/modules/thread_pool.rb +107 -106
  89. data/lib/poolparty/modules/user_helpers.rb +20 -0
  90. data/lib/poolparty/monitors/base_monitor.rb +18 -75
  91. data/lib/poolparty/monitors/monitor_rack.rb +123 -0
  92. data/lib/poolparty/monitors/monitors/favicon_monitor.rb +12 -0
  93. data/lib/poolparty/monitors/monitors/load_monitor.rb +9 -0
  94. data/lib/poolparty/monitors/monitors/memory_monitor.rb +9 -9
  95. data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +77 -0
  96. data/lib/poolparty/monitors/monitors/stats_monitor.rb +187 -0
  97. data/lib/poolparty/monitors/monitors/time_monitor.rb +15 -0
  98. data/lib/poolparty/net/init.rb +10 -0
  99. data/lib/poolparty/net/remote_bases.rb +20 -0
  100. data/lib/poolparty/net/remote_instance.rb +26 -44
  101. data/lib/poolparty/net/remoter/cloud_control.rb +24 -0
  102. data/lib/poolparty/net/remoter/connections.rb +172 -0
  103. data/lib/poolparty/net/remoter/interactive.rb +45 -0
  104. data/lib/poolparty/net/remoter_base.rb +116 -111
  105. data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +245 -0
  106. data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +53 -0
  107. data/lib/poolparty/net/{remote_bases → remoter_bases}/ec2/ec2_response_object.rb +2 -4
  108. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +12 -0
  109. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +33 -0
  110. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -0
  111. data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +158 -0
  112. data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +71 -0
  113. data/lib/poolparty/plugins/apache2/apache.rb +340 -0
  114. data/lib/poolparty/plugins/bind.rb +11 -0
  115. data/lib/poolparty/plugins/chef.rb +173 -0
  116. data/lib/poolparty/plugins/chef_deploy.rb +58 -0
  117. data/lib/poolparty/plugins/deploy_directory.rb +49 -0
  118. data/lib/poolparty/plugins/gem_package.rb +61 -0
  119. data/lib/poolparty/plugins/git.rb +41 -24
  120. data/lib/poolparty/plugins/line_in_file.rb +30 -0
  121. data/lib/poolparty/plugins/nanite.rb +41 -0
  122. data/lib/poolparty/plugins/rails_deploy.rb +76 -0
  123. data/lib/poolparty/plugins/svn.rb +56 -39
  124. data/lib/poolparty/poolparty/cloud.rb +137 -167
  125. data/lib/poolparty/poolparty/{base.rb → default.rb} +62 -25
  126. data/lib/poolparty/poolparty/key.rb +78 -0
  127. data/lib/poolparty/poolparty/loggable.rb +28 -27
  128. data/lib/poolparty/poolparty/neighborhoods.rb +102 -0
  129. data/lib/poolparty/poolparty/plugin.rb +53 -18
  130. data/lib/poolparty/poolparty/plugin_model.rb +20 -23
  131. data/lib/poolparty/poolparty/pool.rb +34 -26
  132. data/lib/poolparty/poolparty/poolparty_base_class.rb +190 -0
  133. data/lib/poolparty/poolparty/resource.rb +92 -178
  134. data/lib/poolparty/poolparty/script.rb +32 -20
  135. data/lib/poolparty/poolparty/service.rb +44 -0
  136. data/lib/poolparty/poolparty/template.rb +27 -0
  137. data/lib/poolparty/provision/boot_strapper.rb +164 -0
  138. data/lib/poolparty/provision/configurations/chef.rb +26 -0
  139. data/lib/poolparty/provision/configurations/puppet.rb +28 -0
  140. data/lib/poolparty/provision/dr_configure.rb +142 -0
  141. data/lib/poolparty/resources/cron.rb +51 -0
  142. data/lib/poolparty/resources/directory.rb +36 -0
  143. data/lib/poolparty/resources/exec.rb +47 -0
  144. data/lib/poolparty/resources/file.rb +73 -0
  145. data/lib/poolparty/resources/host.rb +37 -0
  146. data/lib/poolparty/resources/mount.rb +45 -0
  147. data/lib/poolparty/resources/package.rb +41 -0
  148. data/lib/poolparty/resources/remote_file.rb +52 -0
  149. data/lib/poolparty/resources/service.rb +41 -0
  150. data/lib/poolparty/resources/sshkey.rb +49 -0
  151. data/lib/poolparty/resources/symlink.rb +43 -0
  152. data/lib/poolparty/{poolparty/resources/remote_user.rb → resources/user.rb} +1 -5
  153. data/lib/poolparty/resources/variable.rb +34 -0
  154. data/lib/poolparty/resources.rb +42 -0
  155. data/lib/poolparty/schema.rb +79 -0
  156. data/lib/poolparty/templates/apache2/apache2.conf +14 -0
  157. data/lib/poolparty/templates/apache2/base.conf.erb +168 -0
  158. data/lib/poolparty/templates/apache2/browser_fixes.conf.erb +26 -0
  159. data/lib/poolparty/templates/apache2/debian.conf.erb +675 -0
  160. data/lib/poolparty/templates/apache2/default-site.conf.erb +41 -0
  161. data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +101 -0
  162. data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +42 -0
  163. data/lib/poolparty/templates/apache2/mime-extras.conf.erb +211 -0
  164. data/lib/poolparty/templates/apache2/mime-minimal.conf.erb +15 -0
  165. data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +20 -0
  166. data/lib/poolparty/templates/apache2/mpm-worker.erb +20 -0
  167. data/lib/poolparty/templates/apache2/passenger.conf.erb +20 -0
  168. data/lib/poolparty/templates/apache2/php.ini.erb +1253 -0
  169. data/lib/poolparty/templates/apache2/server-status.erb +19 -0
  170. data/lib/poolparty/templates/erlang_cookie_maker +6 -0
  171. data/lib/poolparty/templates/gemrc_template +11 -0
  172. data/lib/poolparty/templates/ha.cf +1 -1
  173. data/lib/poolparty/templates/haproxy.conf +29 -27
  174. data/lib/poolparty/templates/haresources +2 -2
  175. data/lib/poolparty/templates/monitor.ru +16 -0
  176. data/lib/poolparty/templates/php.ini.erb +1253 -0
  177. data/lib/poolparty/templates/puppet/add_puppet_to_hosts +6 -0
  178. data/lib/poolparty/templates/puppet/puppet.conf +2 -0
  179. data/lib/poolparty/templates/puppet/puppetrunner +14 -0
  180. data/lib/poolparty/templates/puppet/site.pp +4 -0
  181. data/lib/poolparty/templates/puppetrunner +11 -5
  182. data/lib/poolparty/verification/verifier_base.rb +17 -0
  183. data/lib/poolparty/verification/verifiers/http_match.rb +43 -0
  184. data/lib/poolparty/verification/verifiers/http_status.rb +59 -0
  185. data/lib/poolparty/verification/verifiers/ping.rb +34 -0
  186. data/lib/poolparty/verification/verify.rb +76 -0
  187. data/lib/poolparty.rb +76 -22
  188. data/lib/poolpartycl.rb +66 -1
  189. data/script/destroy +1 -1
  190. data/script/generate +1 -1
  191. data/spec/bin/bin_spec_helper.rb +7 -0
  192. data/spec/bin/fixtures/bin_cloud_for_test.rb +13 -0
  193. data/spec/bin/server-list-active_spec.rb +24 -0
  194. data/spec/poolparty/aska/aska_spec.rb +5 -5
  195. data/spec/poolparty/base_packages/haproxy_spec.rb +2 -8
  196. data/spec/poolparty/base_packages/heartbeat_spec.rb +3 -26
  197. data/spec/poolparty/bin/console_spec.rb +11 -29
  198. data/spec/poolparty/core/array_spec.rb +20 -3
  199. data/spec/poolparty/core/hash_spec.rb +30 -28
  200. data/spec/poolparty/core/object_spec.rb +2 -3
  201. data/spec/poolparty/core/ordered_hash_spec.rb +48 -0
  202. data/spec/poolparty/core/string_spec.rb +1 -27
  203. data/spec/poolparty/dependencies_spec.rb +11 -0
  204. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +107 -0
  205. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +122 -0
  206. data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +16 -0
  207. data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +121 -0
  208. data/spec/poolparty/extra/deployments_spec.rb +9 -5
  209. data/spec/poolparty/fixtures/clouds.json +128 -0
  210. data/spec/poolparty/fixtures/test_template.erb +1 -0
  211. data/spec/poolparty/helpers/binary_spec.rb +1 -1
  212. data/spec/poolparty/helpers/hash_printer_spec.rb +34 -0
  213. data/spec/poolparty/helpers/optioner_spec.rb +1 -1
  214. data/spec/poolparty/id_rsa +27 -0
  215. data/spec/poolparty/modules/cloud_resourcer_spec.rb +26 -111
  216. data/spec/poolparty/modules/definable_resource.rb +1 -1
  217. data/spec/poolparty/modules/file_writer_spec.rb +10 -4
  218. data/spec/poolparty/modules/searchable_paths_spec.rb +76 -0
  219. data/spec/poolparty/monitors/base_monitor_spec.rb +112 -111
  220. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +18 -16
  221. data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +48 -47
  222. data/spec/poolparty/net/remote_instance_spec.rb +9 -73
  223. data/spec/poolparty/net/remote_spec.rb +287 -310
  224. data/spec/poolparty/net/remoter_base_spec.rb +3 -56
  225. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +24 -0
  226. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +114 -0
  227. data/spec/poolparty/net/{remote_bases → remoter_bases}/ec2_spec.rb +51 -53
  228. data/spec/poolparty/net/remoter_spec.rb +96 -86
  229. data/spec/poolparty/plugins/chef_spec.rb +7 -0
  230. data/spec/poolparty/plugins/deploydirectory_spec.rb +51 -52
  231. data/spec/poolparty/plugins/git_spec.rb +16 -20
  232. data/spec/poolparty/plugins/line_spec.rb +14 -8
  233. data/spec/poolparty/poolparty/cloud_spec.rb +85 -183
  234. data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +3 -4
  235. data/spec/poolparty/poolparty/configurers/ruby_spec.rb +7 -23
  236. data/spec/poolparty/poolparty/{base_spec.rb → default_spec.rb} +44 -41
  237. data/spec/poolparty/poolparty/example_spec.rb +43 -11
  238. data/spec/poolparty/poolparty/key_spec.rb +42 -0
  239. data/spec/poolparty/poolparty/neighborhoods_spec.rb +65 -0
  240. data/spec/poolparty/poolparty/plugin_model_spec.rb +14 -24
  241. data/spec/poolparty/poolparty/plugin_spec.rb +25 -96
  242. data/spec/poolparty/poolparty/pool_spec.rb +3 -1
  243. data/spec/poolparty/poolparty/resource_spec.rb +70 -270
  244. data/spec/poolparty/poolparty/script_spec.rb +30 -53
  245. data/spec/poolparty/poolparty/service_spec.rb +5 -0
  246. data/spec/poolparty/poolparty/template_spec.rb +26 -0
  247. data/spec/poolparty/poolparty/test_plugins/webserver.rb +8 -25
  248. data/spec/poolparty/poolparty_base_class_spec.rb +84 -0
  249. data/spec/poolparty/poolparty_spec.rb +7 -4
  250. data/spec/poolparty/resources/cron_spec.rb +44 -0
  251. data/spec/poolparty/resources/directory_spec.rb +40 -0
  252. data/spec/poolparty/resources/exec_spec.rb +37 -0
  253. data/spec/poolparty/resources/file_spec.rb +64 -0
  254. data/spec/poolparty/resources/gem_spec.rb +7 -0
  255. data/spec/poolparty/resources/host_spec.rb +35 -0
  256. data/spec/poolparty/resources/package_spec.rb +26 -0
  257. data/spec/poolparty/resources/service_spec.rb +29 -0
  258. data/spec/poolparty/resources/sshkey_spec.rb +40 -0
  259. data/spec/poolparty/resources/symlink_spec.rb +29 -0
  260. data/spec/poolparty/resources/user_spec.rb +48 -0
  261. data/spec/poolparty/resources/variable_spec.rb +26 -0
  262. data/spec/poolparty/schema_spec.rb +53 -0
  263. data/spec/poolparty/spec_helper.rb +107 -23
  264. data/spec/poolparty/test_spec_helper.rb +13 -0
  265. data/tasks/development.rake +85 -69
  266. data/tasks/poolparty.rake +54 -0
  267. data/tasks/server.rake +41 -39
  268. data/tasks/spec.rake +35 -1
  269. data/test/fixtures/test_template.erb +1 -0
  270. data/test/poolparty/core/array_test.rb +21 -0
  271. data/test/poolparty/core/hash_test.rb +34 -0
  272. data/test/poolparty/core/string_test.rb +29 -0
  273. data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +90 -0
  274. data/test/poolparty/modules/callbacks_test.rb +40 -0
  275. data/test/poolparty/modules/cloud_dsl_test.rb +60 -0
  276. data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +54 -0
  277. data/test/poolparty/net/remoter_test.rb +14 -0
  278. data/test/poolparty/poolparty/neighborhood_test.rb +23 -0
  279. data/test/poolparty/poolparty/poolparty_base_class_test.rb +84 -0
  280. data/test/poolparty/poolparty/template_test.rb +31 -0
  281. data/test/poolparty/provision/boot_strapper_test.rb +6 -0
  282. data/test/poolparty/provision/dr_configure_test.rb +6 -0
  283. data/test/poolparty/verification/verify_test.rb +49 -0
  284. data/test/test_helper.rb +8 -2
  285. data/test/test_poolparty.rb +6 -5
  286. data/vendor/chef/apache2/README.rdoc +59 -0
  287. data/vendor/chef/apache2/attributes/apache.rb +72 -0
  288. data/vendor/chef/apache2/definitions/apache_module.rb +36 -0
  289. data/vendor/chef/apache2/definitions/apache_site.rb +36 -0
  290. data/vendor/chef/apache2/definitions/web_app.rb +45 -0
  291. data/vendor/chef/apache2/files/default/apache2_module_conf_generate.pl +41 -0
  292. data/vendor/chef/apache2/recipes/default.rb +132 -0
  293. data/vendor/chef/apache2/recipes/mod_alias.rb +20 -0
  294. data/vendor/chef/apache2/recipes/mod_auth_basic.rb +20 -0
  295. data/vendor/chef/apache2/recipes/mod_auth_digest.rb +20 -0
  296. data/vendor/chef/apache2/recipes/mod_authn_file.rb +20 -0
  297. data/vendor/chef/apache2/recipes/mod_authnz_ldap.rb +20 -0
  298. data/vendor/chef/apache2/recipes/mod_authz_default.rb +20 -0
  299. data/vendor/chef/apache2/recipes/mod_authz_groupfile.rb +20 -0
  300. data/vendor/chef/apache2/recipes/mod_authz_host.rb +20 -0
  301. data/vendor/chef/apache2/recipes/mod_authz_user.rb +20 -0
  302. data/vendor/chef/apache2/recipes/mod_autoindex.rb +20 -0
  303. data/vendor/chef/apache2/recipes/mod_cgi.rb +20 -0
  304. data/vendor/chef/apache2/recipes/mod_dav.rb +20 -0
  305. data/vendor/chef/apache2/recipes/mod_dav_svn.rb +20 -0
  306. data/vendor/chef/apache2/recipes/mod_deflate.rb +20 -0
  307. data/vendor/chef/apache2/recipes/mod_dir.rb +20 -0
  308. data/vendor/chef/apache2/recipes/mod_env.rb +20 -0
  309. data/vendor/chef/apache2/recipes/mod_expires.rb +20 -0
  310. data/vendor/chef/apache2/recipes/mod_fcgid.rb +35 -0
  311. data/vendor/chef/apache2/recipes/mod_headers.rb +20 -0
  312. data/vendor/chef/apache2/recipes/mod_ldap.rb +20 -0
  313. data/vendor/chef/apache2/recipes/mod_log_config.rb +20 -0
  314. data/vendor/chef/apache2/recipes/mod_mime.rb +20 -0
  315. data/vendor/chef/apache2/recipes/mod_negotiation.rb +20 -0
  316. data/vendor/chef/apache2/recipes/mod_php5.rb +27 -0
  317. data/vendor/chef/apache2/recipes/mod_proxy.rb +20 -0
  318. data/vendor/chef/apache2/recipes/mod_proxy_http.rb +20 -0
  319. data/vendor/chef/apache2/recipes/mod_python.rb +22 -0
  320. data/vendor/chef/apache2/recipes/mod_rewrite.rb +20 -0
  321. data/vendor/chef/apache2/recipes/mod_setenvif.rb +20 -0
  322. data/vendor/chef/apache2/recipes/mod_ssl.rb +20 -0
  323. data/vendor/chef/apache2/recipes/mod_status.rb +20 -0
  324. data/vendor/chef/apache2/templates/default/a2dismod.erb +22 -0
  325. data/vendor/chef/apache2/templates/default/a2dissite.erb +29 -0
  326. data/vendor/chef/apache2/templates/default/a2enmod.erb +37 -0
  327. data/vendor/chef/apache2/templates/default/a2ensite.erb +38 -0
  328. data/vendor/chef/apache2/templates/default/apache2.conf.erb +630 -0
  329. data/vendor/chef/apache2/templates/default/default-site.erb +45 -0
  330. data/vendor/chef/apache2/templates/default/port_apache.erb +2 -0
  331. data/vendor/chef/apache2/templates/default/ports.conf.erb +6 -0
  332. data/vendor/chef/apache2/templates/default/web_app.conf.erb +43 -0
  333. data/vendor/chef/chef-deploy/LICENSE +201 -0
  334. data/vendor/chef/chef-deploy/README.rdoc +24 -0
  335. data/vendor/chef/chef-deploy/Rakefile +57 -0
  336. data/vendor/chef/chef-deploy/TODO +4 -0
  337. data/vendor/chef/chef-deploy/lib/chef-deploy/cached_deploy.rb +230 -0
  338. data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +132 -0
  339. data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +98 -0
  340. data/vendor/chef/chef-deploy/lib/chef-deploy.rb +183 -0
  341. data/vendor/gems/butterfly/History.txt +4 -0
  342. data/vendor/gems/butterfly/PostInstall.txt +2 -0
  343. data/vendor/gems/butterfly/README.rdoc +48 -0
  344. data/vendor/gems/butterfly/Rakefile +62 -0
  345. data/vendor/gems/butterfly/VERSION.yml +4 -0
  346. data/vendor/gems/butterfly/bin/flutter +4 -0
  347. data/vendor/gems/butterfly/butterfly.gemspec +37 -0
  348. data/vendor/gems/butterfly/examples/config.ru +15 -0
  349. data/vendor/gems/butterfly/examples/my_app.rb +12 -0
  350. data/vendor/gems/butterfly/lib/butterfly.rb +14 -0
  351. data/vendor/gems/butterfly/lib/handler.rb +48 -0
  352. data/vendor/gems/butterfly/lib/request.rb +29 -0
  353. data/vendor/gems/butterfly/lib/response.rb +49 -0
  354. data/vendor/gems/butterfly/script/console +10 -0
  355. data/vendor/gems/butterfly/script/destroy +14 -0
  356. data/vendor/gems/butterfly/script/generate +14 -0
  357. data/vendor/gems/butterfly/test/test_adapter_base.rb +23 -0
  358. data/vendor/gems/butterfly/test/test_butterfly_request.rb +46 -0
  359. data/vendor/gems/butterfly/test/test_butterfly_response.rb +43 -0
  360. data/vendor/gems/butterfly/test/test_butterfly_server.rb +16 -0
  361. data/vendor/gems/butterfly/test/test_default.rb +12 -0
  362. data/vendor/gems/butterfly/test/test_helper.rb +6 -0
  363. data/vendor/gems/dslify/History.txt +4 -0
  364. data/vendor/gems/dslify/Manifest.txt +25 -0
  365. data/vendor/gems/dslify/PostInstall.txt +5 -0
  366. data/vendor/gems/dslify/README.txt +60 -0
  367. data/vendor/gems/dslify/Rakefile +56 -0
  368. data/{config → vendor/gems/dslify/config}/hoe.rb +12 -55
  369. data/vendor/gems/dslify/config/requirements.rb +15 -0
  370. data/vendor/gems/dslify/dslify.gemspec +40 -0
  371. data/vendor/gems/dslify/lib/dslify/dslify.rb +76 -0
  372. data/vendor/gems/dslify/lib/dslify/version.rb +10 -0
  373. data/vendor/gems/dslify/lib/dslify.rb +7 -0
  374. data/vendor/gems/dslify/script/console +10 -0
  375. data/vendor/gems/dslify/script/destroy +14 -0
  376. data/vendor/gems/dslify/script/generate +14 -0
  377. data/{script → vendor/gems/dslify/script}/txt2html +4 -4
  378. data/{setup.rb → vendor/gems/dslify/setup.rb} +3 -3
  379. data/{tasks → vendor/gems/dslify/tasks}/deployment.rake +4 -18
  380. data/vendor/gems/dslify/tasks/environment.rake +7 -0
  381. data/{tasks → vendor/gems/dslify/tasks}/website.rake +0 -0
  382. data/vendor/gems/dslify/test/test_dslify.rb +138 -0
  383. data/vendor/gems/dslify/website/index.html +86 -0
  384. data/vendor/gems/dslify/website/index.txt +83 -0
  385. data/{website → vendor/gems/dslify/website}/javascripts/rounded_corners_lite.inc.js +0 -0
  386. data/{website → vendor/gems/dslify/website}/stylesheets/screen.css +18 -27
  387. data/{website → vendor/gems/dslify/website}/template.html.erb +1 -2
  388. data/vendor/gems/parenting/History.txt +4 -0
  389. data/vendor/gems/parenting/Manifest.txt +14 -0
  390. data/vendor/gems/parenting/PostInstall.txt +2 -0
  391. data/vendor/gems/parenting/README.rdoc +47 -0
  392. data/vendor/gems/parenting/Rakefile +28 -0
  393. data/vendor/gems/parenting/lib/parenting/parenting.rb +61 -0
  394. data/vendor/gems/parenting/lib/parenting.rb +10 -0
  395. data/vendor/gems/parenting/parenting.gemspec +39 -0
  396. data/vendor/gems/parenting/script/console +10 -0
  397. data/vendor/gems/parenting/script/destroy +14 -0
  398. data/vendor/gems/parenting/script/generate +14 -0
  399. data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
  400. data/vendor/gems/parenting/test/test_helper.rb +5 -0
  401. data/vendor/gems/parenting/test/test_parenting.rb +117 -0
  402. data/vendor/gems/suitcase/LICENSE +20 -0
  403. data/vendor/gems/suitcase/README.rdoc +31 -0
  404. data/vendor/gems/suitcase/Rakefile +57 -0
  405. data/vendor/gems/suitcase/VERSION.yml +4 -0
  406. data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
  407. data/vendor/gems/suitcase/lib/suitcase/zipper.rb +119 -0
  408. data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
  409. data/vendor/gems/suitcase/suitcase.gemspec +32 -0
  410. data/vendor/gems/suitcase/test/suitcase_test.rb +102 -0
  411. data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
  412. data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
  413. data/vendor/gems/suitcase/test/test_helper.rb +12 -0
  414. metadata +370 -343
  415. data/Capfile +0 -1
  416. data/Manifest.txt +0 -414
  417. data/bin/cloud-add-keypair +0 -28
  418. data/bin/cloud-ensure-provisioning +0 -39
  419. data/bin/cloud-maintain +0 -30
  420. data/bin/cloud-refresh +0 -17
  421. data/bin/cloud-run +0 -18
  422. data/bin/cloud-stats +0 -17
  423. data/bin/messenger-get-current-nodes +0 -14
  424. data/bin/pool +0 -31
  425. data/bin/pool-describe +0 -8
  426. data/bin/pool-generate +0 -18
  427. data/bin/pool-init +0 -28
  428. data/bin/pool-list +0 -30
  429. data/bin/pool-start +0 -26
  430. data/bin/server-build-messenger +0 -27
  431. data/bin/server-clean-cert-for +0 -15
  432. data/bin/server-list-responding +0 -24
  433. data/bin/server-start-client +0 -29
  434. data/bin/server-start-master +0 -26
  435. data/bin/server-start-node +0 -32
  436. data/bin/server-stop-client +0 -3
  437. data/bin/server-stop-master +0 -3
  438. data/bin/server-stop-node +0 -3
  439. data/bin/server-update-hosts +0 -49
  440. data/lib/erlang/messenger/Emakefile +0 -1
  441. data/lib/erlang/messenger/Makefile +0 -15
  442. data/lib/erlang/messenger/README +0 -5
  443. data/lib/erlang/messenger/Rakefile +0 -72
  444. data/lib/erlang/messenger/control +0 -11
  445. data/lib/erlang/messenger/ebin/client.app +0 -19
  446. data/lib/erlang/messenger/ebin/client_app.beam +0 -0
  447. data/lib/erlang/messenger/ebin/client_server.beam +0 -0
  448. data/lib/erlang/messenger/ebin/erl_crash.dump +0 -10326
  449. data/lib/erlang/messenger/ebin/master.app +0 -19
  450. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  451. data/lib/erlang/messenger/ebin/node.app +0 -19
  452. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  453. data/lib/erlang/messenger/ebin/packager.app +0 -19
  454. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  455. data/lib/erlang/messenger/ebin/pm_client_old.beam +0 -0
  456. data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +0 -1
  457. data/lib/erlang/messenger/ebin/pm_client_supervisor.beam +0 -0
  458. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  459. data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
  460. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  461. data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
  462. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +0 -1
  463. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  464. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  465. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +0 -1
  466. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  467. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  468. data/lib/erlang/messenger/ebin/pm_spawner.beam +0 -0
  469. data/lib/erlang/messenger/ebin/pm_strings.beam +0 -0
  470. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  471. data/lib/erlang/messenger/include/defines.hrl +0 -27
  472. data/lib/erlang/messenger/lib/eunit/AUTHORS +0 -2
  473. data/lib/erlang/messenger/lib/eunit/CHANGELOG +0 -14
  474. data/lib/erlang/messenger/lib/eunit/COPYING +0 -504
  475. data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
  476. data/lib/erlang/messenger/lib/eunit/NOTES +0 -276
  477. data/lib/erlang/messenger/lib/eunit/README +0 -3
  478. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +0 -3
  479. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  480. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +0 -172
  481. data/lib/erlang/messenger/lib/eunit/doc/index.html +0 -17
  482. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +0 -12
  483. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +0 -984
  484. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +0 -980
  485. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +0 -11
  486. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +0 -55
  487. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  488. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  489. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +0 -21
  490. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +0 -1
  491. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  492. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  493. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  494. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  495. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  496. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  497. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  498. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  499. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  500. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  501. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  502. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  503. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +0 -339
  504. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +0 -19
  505. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +0 -1
  506. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +0 -313
  507. data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
  508. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +0 -388
  509. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +0 -243
  510. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +0 -21
  511. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +0 -1
  512. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +0 -196
  513. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +0 -102
  514. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +0 -798
  515. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +0 -48
  516. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +0 -682
  517. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +0 -552
  518. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +0 -157
  519. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +0 -340
  520. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +0 -64
  521. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +0 -334
  522. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +0 -45
  523. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +0 -272
  524. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +0 -409
  525. data/lib/erlang/messenger/lib/eunit/sys.config +0 -9
  526. data/lib/erlang/messenger/lib/eunit/vsn.mk +0 -1
  527. data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
  528. data/lib/erlang/messenger/pm_client_rel-0.1.script +0 -238
  529. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  530. data/lib/erlang/messenger/pm_master_rel-0.1.script +0 -239
  531. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  532. data/lib/erlang/messenger/pm_node_rel-0.1.script +0 -237
  533. data/lib/erlang/messenger/src/client_app.erl +0 -39
  534. data/lib/erlang/messenger/src/client_server.erl +0 -60
  535. data/lib/erlang/messenger/src/master_app.erl +0 -39
  536. data/lib/erlang/messenger/src/node_app.erl +0 -39
  537. data/lib/erlang/messenger/src/pm_client.erl +0 -49
  538. data/lib/erlang/messenger/src/pm_client_supervisor.erl +0 -38
  539. data/lib/erlang/messenger/src/pm_cluster.erl +0 -61
  540. data/lib/erlang/messenger/src/pm_event_manager.erl +0 -27
  541. data/lib/erlang/messenger/src/pm_master.erl +0 -215
  542. data/lib/erlang/messenger/src/pm_master_event_handler.erl +0 -72
  543. data/lib/erlang/messenger/src/pm_master_supervisor.erl +0 -39
  544. data/lib/erlang/messenger/src/pm_node.erl +0 -200
  545. data/lib/erlang/messenger/src/pm_node_supervisor.erl +0 -38
  546. data/lib/erlang/messenger/src/pm_packager.erl +0 -76
  547. data/lib/erlang/messenger/src/pm_spawner.erl +0 -213
  548. data/lib/erlang/messenger/src/pm_strings.erl +0 -11
  549. data/lib/erlang/messenger/src/utils.erl +0 -73
  550. data/lib/erlang/messenger/useful_snippets +0 -17
  551. data/lib/poolparty/capistrano.rb +0 -18
  552. data/lib/poolparty/config/postlaunchmessage.txt +0 -5
  553. data/lib/poolparty/dependency_resolutions/base.rb +0 -12
  554. data/lib/poolparty/modules/configurable.rb +0 -36
  555. data/lib/poolparty/modules/method_missing_sugar.rb +0 -58
  556. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +0 -15
  557. data/lib/poolparty/monitors/monitors/web_monitor.rb +0 -18
  558. data/lib/poolparty/net/messenger.rb +0 -72
  559. data/lib/poolparty/net/remote.rb +0 -38
  560. data/lib/poolparty/net/remote_bases/ec2.rb +0 -190
  561. data/lib/poolparty/net/remoter.rb +0 -343
  562. data/lib/poolparty/plugins/deploydirectory.rb +0 -71
  563. data/lib/poolparty/plugins/line.rb +0 -77
  564. data/lib/poolparty/plugins/rsyncmirror.rb +0 -26
  565. data/lib/poolparty/poolparty/custom_resource.rb +0 -45
  566. data/lib/poolparty/poolparty/resources/class_package.rb +0 -105
  567. data/lib/poolparty/poolparty/resources/conditional.rb +0 -67
  568. data/lib/poolparty/poolparty/resources/cron.rb +0 -14
  569. data/lib/poolparty/poolparty/resources/custom_service.rb +0 -30
  570. data/lib/poolparty/poolparty/resources/directory.rb +0 -26
  571. data/lib/poolparty/poolparty/resources/exec.rb +0 -28
  572. data/lib/poolparty/poolparty/resources/file.rb +0 -23
  573. data/lib/poolparty/poolparty/resources/gem_package.rb +0 -52
  574. data/lib/poolparty/poolparty/resources/host.rb +0 -14
  575. data/lib/poolparty/poolparty/resources/mount.rb +0 -22
  576. data/lib/poolparty/poolparty/resources/package.rb +0 -24
  577. data/lib/poolparty/poolparty/resources/remote_file.rb +0 -26
  578. data/lib/poolparty/poolparty/resources/service.rb +0 -21
  579. data/lib/poolparty/poolparty/resources/sshkey.rb +0 -23
  580. data/lib/poolparty/poolparty/resources/symlink.rb +0 -25
  581. data/lib/poolparty/poolparty/resources/variable.rb +0 -32
  582. data/lib/poolparty/provisioners/capistrano/capistrano.rb +0 -127
  583. data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +0 -58
  584. data/lib/poolparty/provisioners/capistrano/recipies/base.rb +0 -104
  585. data/lib/poolparty/provisioners/capistrano/recipies/master.rb +0 -121
  586. data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +0 -12
  587. data/lib/poolparty/provisioners/provisioner_base.rb +0 -204
  588. data/lib/poolparty/spec/core/string.rb +0 -16
  589. data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
  590. data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
  591. data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
  592. data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
  593. data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
  594. data/lib/poolparty/spec/matchers/have_file.rb +0 -28
  595. data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
  596. data/lib/poolparty/spec/matchers/have_git.rb +0 -28
  597. data/lib/poolparty/spec/matchers/have_host.rb +0 -28
  598. data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
  599. data/lib/poolparty/spec/matchers/have_package.rb +0 -28
  600. data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
  601. data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
  602. data/lib/poolparty/spec/matchers/have_service.rb +0 -28
  603. data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
  604. data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
  605. data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
  606. data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
  607. data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
  608. data/lib/poolparty/spec/templates/have_base.rb +0 -28
  609. data/lib/poolparty/templates/puppet.conf +0 -26
  610. data/lib/poolparty/templates/puppetcleaner +0 -12
  611. data/lib/poolparty/templates/puppetrerun +0 -22
  612. data/lib/poolparty/version.rb +0 -9
  613. data/lib/poolpartyspec.rb +0 -34
  614. data/log/pool.log +0 -0
  615. data/poolparty.gemspec +0 -580
  616. data/spec/poolparty/dependency_resolutions/base_spec.rb +0 -11
  617. data/spec/poolparty/modules/configurable_spec.rb +0 -29
  618. data/spec/poolparty/net/log/pool.log +0 -0
  619. data/spec/poolparty/net/messenger_spec.rb +0 -16
  620. data/spec/poolparty/plugins/svn_spec.rb +0 -16
  621. data/spec/poolparty/poolparty/custom_resource_spec.rb +0 -120
  622. data/spec/poolparty/poolparty/resources/class_package_spec.rb +0 -120
  623. data/spec/poolparty/poolparty/resources/conditional_spec.rb +0 -77
  624. data/spec/poolparty/poolparty/resources/cron_spec.rb +0 -50
  625. data/spec/poolparty/poolparty/resources/directory_spec.rb +0 -40
  626. data/spec/poolparty/poolparty/resources/exec_spec.rb +0 -37
  627. data/spec/poolparty/poolparty/resources/file_spec.rb +0 -40
  628. data/spec/poolparty/poolparty/resources/gem_spec.rb +0 -46
  629. data/spec/poolparty/poolparty/resources/host_spec.rb +0 -28
  630. data/spec/poolparty/poolparty/resources/package_spec.rb +0 -44
  631. data/spec/poolparty/poolparty/resources/remote_file_spec.rb +0 -40
  632. data/spec/poolparty/poolparty/resources/service_spec.rb +0 -45
  633. data/spec/poolparty/poolparty/resources/sshkey_spec.rb +0 -48
  634. data/spec/poolparty/poolparty/resources/symlink_spec.rb +0 -22
  635. data/spec/poolparty/poolparty/resources/user_spec.rb +0 -38
  636. data/spec/poolparty/poolparty/resources/variable_spec.rb +0 -24
  637. data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +0 -27
  638. data/spec/poolparty/provisioners/provisioner_base_spec.rb +0 -120
  639. data/spec/poolparty/spec/core/string_spec.rb +0 -57
  640. data/website/index.html +0 -107
  641. data/website/index.txt +0 -95
  642. data/website/stylesheets/code.css +0 -29
@@ -1,6 +1,8 @@
1
1
  $:.unshift(File.dirname(__FILE__) + '/../../lib')
2
2
  require 'poolparty'
3
3
 
4
+ # TODO: FIX THE STUBS
5
+ # %w(context matchy).each do |library|
4
6
  %w(spec).each do |library|
5
7
  begin
6
8
  require library
@@ -12,30 +14,77 @@ end
12
14
  # Dir["#{File.dirname(__FILE__)}/helpers/**"].each {|a| require a}
13
15
 
14
16
  ENV["POOL_SPEC"] = nil
17
+ ENV["AWS_ACCESS_KEY"] = 'fake_access_key'
18
+ ENV["AWS_SECRET_ACCESS_KEY"] = 'fake_aws_secret_access_key'
15
19
 
16
20
  include PoolParty
17
21
  extend PoolParty
18
22
 
19
- def are_too_many_instances_running?
20
- end
21
- def are_any_nodes_exceeding_minimum_runtime?
23
+ def debugging(*args); false; end
24
+ def are_too_many_instances_running?; end
25
+ def are_any_nodes_exceeding_minimum_runtime?; end
26
+ def are_too_few_instances_running?; end
27
+
28
+ include Remote
29
+ require File.dirname(__FILE__)+'/net/remoter_bases/ec2_mocks_and_stubs.rb'
30
+
31
+ # Append this directory - which contains a mock key named id_rsa - to the list of searchable locations
32
+ class Key
33
+ class << self
34
+ alias :keypair_paths_without_spec_dir :keypair_paths unless method_defined?(:keypair_paths_without_spec_dir)
35
+ def keypair_paths
36
+ [keypair_paths_without_spec_dir, File.dirname(__FILE__)].flatten
37
+ end
38
+ end
39
+
22
40
  end
23
- def are_too_few_instances_running?
41
+
42
+ class TestRemoterClass < ::PoolParty::Remote::Ec2
43
+ include CloudResourcer
44
+ include CloudDsl
45
+
46
+ def ami;"ami-abc123";end
47
+ def size; "small";end
48
+ def security_group; "default";end
49
+ def ebs_volume_id; "ebs_volume_id";end
50
+ def availabilty_zone; "us-east-1a";end
51
+ def verbose; false; end
52
+ def debugging; false; end
53
+ def ec2
54
+ @ec2 ||= EC2::Base.new( :access_key_id => "not_an_access_key", :secret_access_key => "not_a_secret_access_key")
55
+ end
56
+ def describe_instances(o={})
57
+ response_list_of_instances
58
+ end
24
59
  end
25
60
 
26
- class TestClass < PoolParty::Cloud::Cloud
61
+ class TestClass < ::PoolParty::Cloud::Cloud
27
62
  include CloudResourcer
63
+ include PoolParty::Remote
28
64
  attr_accessor :parent
29
- def initialize(&block)
30
- super :test_cloud, nil, &block
65
+ def initialize(name=:name, &block)
66
+ super :test_cloud, &block
31
67
  end
32
- def keypair
33
- "fake_keypair"
68
+ def verbose
69
+ false
34
70
  end
35
71
  end
72
+ class TestCloud < TestClass
73
+ end
74
+
75
+ class TestBaseClass < PoolParty::PoolPartyBaseClass
76
+ end
36
77
 
37
78
  def setup
38
- PoolParty::Messenger.stub!(:messenger_send!).and_return false
79
+ end
80
+
81
+ def new_test_cloud(force_new=false)
82
+ unless @test_cloud || force_new
83
+ @test_cloud = TestCloud.new("test_cloud_#{rand(10000)}")
84
+ stub_list_from_remote_for @test_cloud
85
+ @test_cloud.stub!(:describe_instances).and_return response_list_of_instances
86
+ end
87
+ @test_cloud
39
88
  end
40
89
 
41
90
  def setup_cl
@@ -86,14 +135,21 @@ def stub_list_from_local_for(o)
86
135
  EOS
87
136
  @file = "filename"
88
137
  @file.stub!(:read).and_return @list
89
- o.stub!(:get_working_listing_file).and_return @file
90
138
  o.stub!(:open).and_return @file
91
139
 
92
140
  @ris = @list.split(/\n/).map {|line| PoolParty::Remote::RemoteInstance.new(line) }
93
141
  end
94
- def stub_remoter_for(o)
95
- o.stub!(:ec2).and_return EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "even more not a key")
96
- o.stub!(:list_of_running_instances).and_return sample_instances
142
+ def stub_remoter_for(o)
143
+ @ec2 = EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "even more not a key")
144
+ EC2::Base.stub!(:new).and_return @ec2
145
+
146
+ o.class.stub!(:ec2).and_return @ec2
147
+ o.stub!(:instances_by_status).and_return sample_instances
148
+
149
+ o.stub!(:list_of_instances).and_return sample_instances
150
+ @ec2.stub!(:run_instances).and_return true
151
+ @ec2.stub!(:describe_instances).and_return sample_instances
152
+ @ec2.stub!(:describe_instance).and_return sample_instances
97
153
  end
98
154
  def stub_list_from_remote_for(o, launch_stub=true)
99
155
  stub_remoter_for(o)
@@ -107,8 +163,6 @@ def stub_list_from_remote_for(o, launch_stub=true)
107
163
  stub_remoting_methods_for(o)
108
164
  end
109
165
  def stub_remoting_methods_for(o)
110
- o.stub!(:keypair).and_return "fake_keypair"
111
- o.stub!(:keypair_path).and_return "~/.ec2/fake_keypair"
112
166
  o.stub!(:other_clouds).and_return []
113
167
  o.stub!(:expand_when).and_return "cpu > 10"
114
168
  o.stub!(:copy_file_to_storage_directory).and_return true
@@ -119,22 +173,30 @@ def stub_remoting_methods_for(o)
119
173
  o.stub!(:before_install).and_return true
120
174
  o.stub!(:process_install).and_return true
121
175
  o.stub!(:after_install).and_return true
176
+ o.stub!(:can_contract_cloud?).and_return false
177
+ o.stub!(:can_expand_cloud?).and_return false
122
178
  end
123
179
  def stub_list_of_instances_for(o)
124
- # o.stub!(:list_of_running_instances).once.and_return running_remote_instances
125
- o.stub!(:keypair).and_return "fake_keypair"
126
- o.stub!(:describe_instances).and_return response_list_of_instances
180
+ o.stub!(:instances_by_status).once.and_return running_remote_instances
181
+ # o.stub!(:describe_instances).and_return response_list_of_instances
182
+ end
183
+
184
+ def stub_running_remote_instances(o)
185
+ o.stub!(:instances_by_status).and_return(running_remote_instances)
127
186
  end
128
187
 
129
188
  def response_list_of_instances(arr=[])
130
189
  unless @response_list_of_instances
131
190
  @a1 = stub_instance(1);
132
191
  @a1[:name] = "master"
133
- @a2 = stub_instance(1); @a3 = stub_instance(2, "terminated"); @a4 = stub_instance(3, "pending")
134
- @b1 = stub_instance(4, "shutting down", "blist"); @c1 = stub_instance(5, "pending", "clist")
192
+ @a2 = stub_instance(1);
193
+ @a3 = stub_instance(2, "terminated");
194
+ @a4 = stub_instance(3, "pending")
195
+ @b1 = stub_instance(4, "shutting down", "blist");
196
+ @c1 = stub_instance(5, "pending", "clist")
135
197
  @response_list_of_instances = [@a1, @a2, @a3, @a4, @b1, @c1]
136
198
  end
137
- @response_list_of_instances
199
+ @response_list_of_instances+arr
138
200
  end
139
201
 
140
202
  def running_remote_instances
@@ -154,7 +216,7 @@ def add_stub_instance_to(o, num, status="running")
154
216
  stub_remoter_for(o)
155
217
  end
156
218
  def ris
157
- @ris ||= response_list_of_instances.collect {|h| PoolParty::Remote::RemoteInstance.new(h) }
219
+ @ris ||= response_list_of_instances#.collect {|h| PoolParty::Remote::RemoteInstance.new(h) }
158
220
  end
159
221
  def remove_stub_instance_from(o, num)
160
222
  reset_response!
@@ -175,4 +237,26 @@ class Object
175
237
  def messenger_send!(*args)
176
238
  true
177
239
  end
240
+ end
241
+
242
+ class Object
243
+ def to_html_list
244
+ str = ''
245
+ str << "<ul>"
246
+ str << self.collect {|k,v|
247
+ "<li>#{k} => #{(v.instance_of?(Hash) || v.instance_of?(Array)) ? v.to_html_list : v.inspect}</li> "
248
+ }.join(" ")
249
+ str << "</ul>"
250
+ end
251
+ end
252
+
253
+ class Array
254
+ def to_html_list
255
+ str =''
256
+ str<< "<ul class='array'>"
257
+ str<< self.collect {|v|
258
+ "<li>#{(v.is_a?(Array) || v.is_a?(Hash)) ? v.to_html_list : v.inspect}</li>"
259
+ }.join(' ')
260
+ str<<"</ul>"
261
+ end
178
262
  end
@@ -0,0 +1,13 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
2
+ require 'poolparty'
3
+
4
+ %w(context matchy).each do |library|
5
+ begin
6
+ require library
7
+ rescue
8
+ STDERR.puts "== Cannot run test without #{library}"
9
+ end
10
+ end
11
+
12
+ class TestBaseClass < PoolParty::PoolPartyBaseClass
13
+ end
@@ -1,75 +1,91 @@
1
- namespace(:dev) do
2
- task :initialize do
3
- Kernel.system"mkdir ~/.ec2 >/dev/null 2>/dev/null" unless File.directory?("~/.ec2")
4
- end
5
- # Setup a basic development environment for the user
6
- desc "Setup development environment specify the config_file"
7
- task :setup => [:initialize, :setup_keypair] do
8
- certloc = "#{Base.ec2_dir}/#{Base.keypair}/cert-*.pem 2>/dev/null"
9
- pkloc = "#{Base.ec2_dir}/#{Base.keypair}/pk-*.pem 2>/dev/null"
10
- unless `ls #{certloc}`.length > 1 && `ls #{pkloc}`.length > 1
11
- puts <<-EOM
12
- Make sure you run rake dev:setup_pemkeys before you run this command
13
-
14
- I cannot continue until your keys are setup.
15
- exiting...
16
- EOM
17
- exit
1
+ namespace :poolparty do
2
+ namespace(:ec2) do
3
+
4
+ task :initialize do
5
+ Kernel.system"mkdir ~/.ec2 >/dev/null 2>/dev/null" unless File.directory?("~/.ec2")
18
6
  end
19
- keyfilename = ".#{Base.keypair}_pool_keys"
20
- run <<-EOR
21
- echo 'export AWS_ACCESS_KEY=\"#{Base.access_key}\"' > $HOME/#{keyfilename}
22
- echo 'export AWS_SECRET_ACCESS=\"#{Base.secret_access_key}\"' >> $HOME/#{keyfilename}
23
- echo 'export EC2_HOME=\"#{Base.ec2_dir}\"' >> $HOME/#{keyfilename}
24
- echo 'export KEYPAIR_NAME=\"#{Base.keypair}\"' >> $HOME/#{keyfilename}
25
- echo 'export EC2_PRIVATE_KEY=`ls ~/.ec2/#{Base.keypair}/pk-*.pem`;' >> $HOME/#{keyfilename}
26
- echo 'export EC2_CERT=`ls ~/.ec2/#{Base.keypair}/cert-*.pem`;' >> $HOME/#{keyfilename}
27
- EOR
28
- puts <<-EOM
29
- To work on this cloud, source the file like:
7
+ # Setup a basic development environment for the user
8
+
9
+ desc "Setup development environment specify the config_file"
10
+ task :setup => [:initialize, :setup_keypair] do
11
+ certloc = "#{Default.ec2_dir}/#{Default.keypair}/cert-*.pem 2>/dev/null"
12
+ pkloc = "#{Default.ec2_dir}/#{Default.keypair}/pk-*.pem 2>/dev/null"
13
+ unless `ls #{certloc}`.length > 1 && `ls #{pkloc}`.length > 1
14
+ puts <<-EOM
15
+ Make sure you run rake dev:setup_pemkeys before you run this command
16
+
17
+ I cannot continue until your keys are setup.
18
+ exiting...
19
+ EOM
20
+ exit
21
+ end
22
+ keyfilename = ".#{Default.keypair}_pool_keys"
23
+ run <<-EOR
24
+ echo 'export AWS_ACCESS_KEY=\"#{Default.access_key}\"' > $HOME/#{keyfilename}
25
+ echo 'export AWS_SECRET_ACCESS=\"#{Default.secret_access_key}\"' >> $HOME/#{keyfilename}
26
+ echo 'export EC2_HOME=\"#{Default.ec2_dir}\"' >> $HOME/#{keyfilename}
27
+ echo 'export KEYPAIR_NAME=\"#{Default.keypair}\"' >> $HOME/#{keyfilename}
28
+ echo 'export EC2_PRIVATE_KEY=`ls ~/.ec2/#{Default.keypair}/pk-*.pem`;' >> $HOME/#{keyfilename}
29
+ echo 'export EC2_CERT=`ls ~/.ec2/#{Default.keypair}/cert-*.pem`;' >> $HOME/#{keyfilename}
30
+ EOR
31
+ puts <<-EOM
32
+ To work on this cloud, source the file like:
30
33
 
31
- source $HOME/#{keyfilename}
34
+ source $HOME/#{keyfilename}
32
35
 
33
- EOM
34
- end
35
- desc "Generate a new keypair"
36
- task :setup_keypair => [:initialize] do
37
- Base.keypair ||= "#{File.basename(Dir.pwd)}"
38
- run "ec2-delete-keypair #{Base.keypair}" if File.file?(Base.keypair_path)
39
- puts "-- setting up keypair named #{Base.keypair} in #{Base.keypair_path}"
40
- run <<-EOR
41
- chmod 600 #{Base.keypair_path} 2>/dev/null
42
- mkdir ~/.ec2/#{Base.keypair} 2>/dev/null
43
- ec2-add-keypair #{Base.keypair} > #{Base.keypair_path}
44
- EOR
45
- end
46
- desc "Setup pem keys"
47
- task :setup_pemkeys => [:initialize] do
48
- puts "Setting up stubbed pem keys in ~/.ec2/#{Base.keypair}"
49
- run <<-EOR
50
- mkdir -p ~/.ec2/#{Base.keypair} 2>/dev/null
51
- echo 'UPDATE ME' > #{Base.ec2_dir}/#{Base.keypair}/cert-UPDATEME.pem
52
- echo 'UPDATE ME' > #{Base.ec2_dir}/#{Base.keypair}/pk-UPDATEME.pem
53
- EOR
54
- puts "Don't forget to replace your ~/.ec2/#{Base.keypair}/*.pem keys with the real amazon keys"
55
- end
56
- desc "initialize setup"
57
- task :init => [:setup_pemkeys]
58
- desc "Authorize base ports for application"
59
- task :authorize_ports => :initialize do
60
- run <<-EOR
61
- ec2-authorize -p 22 default
62
- ec2-authorize -p 80 default
63
- EOR
64
- end
65
- desc "Turn the gemspec into a yaml file"
66
- task :gemspec_to_yaml => [:initialize, :gemspec] do
67
- filepath = ::File.join(::File.dirname(__FILE__), "..", "poolparty.gemspec")
68
- data = open(filepath).read
69
- spec = eval("$SAFE = 3\n#{data}")
70
- yml = YAML.dump spec
71
- File.open(filepath, "w+") do |f|
72
- f << yml
36
+ EOM
37
+ end
38
+
39
+ desc "Generate a new keypair"
40
+ task :setup_keypair => [:initialize] do
41
+ Default.keypair ||= "#{File.basename(Dir.pwd)}"
42
+ run "ec2-delete-keypair #{Default.keypair}" if File.file?(Default.keypair_path)
43
+ puts "-- setting up keypair named #{Default.keypair} in #{Default.keypair_path}"
44
+ run <<-EOR
45
+ chmod 600 #{Default.keypair_path} 2>/dev/null
46
+ mkdir ~/.ec2/#{Default.keypair} 2>/dev/null
47
+ ec2-add-keypair #{Default.keypair} > #{Default.keypair_path}
48
+ EOR
49
+ end
50
+
51
+ desc "Setup pem keys"
52
+ task :setup_pemkeys => [:initialize] do
53
+ puts "Setting up stubbed pem keys in ~/.ec2/#{Default.keypair}"
54
+ run <<-EOR
55
+ mkdir -p ~/.ec2/#{Default.keypair} 2>/dev/null
56
+ echo 'UPDATE ME' > #{Default.ec2_dir}/#{Default.keypair}/cert-UPDATEME.pem
57
+ echo 'UPDATE ME' > #{Default.ec2_dir}/#{Default.keypair}/pk-UPDATEME.pem
58
+ EOR
59
+ puts "Don't forget to replace your ~/.ec2/#{Default.keypair}/*.pem keys with the real amazon keys"
73
60
  end
61
+
62
+ desc "initialize setup"
63
+ task :init => [:setup_pemkeys]
64
+ desc "Authorize base ports for application"
65
+ task :authorize_ports => :initialize do
66
+ run <<-EOR
67
+ ec2-authorize -p 22 default
68
+ ec2-authorize -p 80 default
69
+ EOR
70
+ end
71
+
72
+ desc "Turn the gemspec into a yaml file"
73
+ task :gemspec_to_yaml => [:initialize, :gemspec] do
74
+ filepath = ::File.join(::File.dirname(__FILE__), "..", "poolparty.gemspec")
75
+ data = open(filepath).read
76
+ spec = eval("$SAFE = 3\n#{data}")
77
+ yml = YAML.dump spec
78
+ File.open(filepath, "w+"){ |f|f << yml }
79
+ end
80
+
81
+ end
82
+ end
83
+
84
+ namespace :ctags do
85
+ desc "create ctags"
86
+ task :create do
87
+ dir = File.dirname(__FILE__) + "/.."
88
+ Dir.chdir(dir)
89
+ sh "time ctags -R --language-force=Ruby -F ./TAGS ."
74
90
  end
75
91
  end
@@ -0,0 +1,54 @@
1
+ desc "Run the specs"
2
+ task :slow_spec do
3
+ stats = {:example=>0, :failures=>0, :pending=>0}
4
+ Dir["#{::File.dirname(__FILE__)}/../spec/poolparty/**/*_spec.rb"].each do |sp|
5
+ puts "---------------- #{::File.basename(sp)} ----------------"
6
+ results = `spec #{sp}`
7
+ results.match(/([1-9]+0?)\sfailures|errors/)
8
+ stats[:failures] += $i.to_i
9
+ puts results
10
+ end
11
+ puts "#{stats[:failures]} total errors"
12
+ end
13
+ namespace(:poolparty) do
14
+ namespace(:setup) do
15
+ desc "Generate a manifest for quicker loading times"
16
+ task :manifest do
17
+ $GENERATING_MANIFEST = true
18
+ out = capture_stdout do
19
+ $_poolparty_load_directories.each do |dir|
20
+ PoolParty.require_directory ::File.join(::File.dirname(__FILE__), '../lib/poolparty', dir)
21
+ end
22
+ end
23
+ ::File.open(::File.join(::File.dirname(__FILE__), '../config', "manifest.pp"), "w+") {|f| f << out.map {|f| "#{f}"} }
24
+ puts "Manifest created"
25
+ end
26
+ end
27
+ namespace :vendor do
28
+ desc "Initialize the submodules"
29
+ task :setup do
30
+ `git submodule init`
31
+ end
32
+ desc "Update the submodules"
33
+ task :update do
34
+ Dir["#{::File.dirname(__FILE__)}/../vendor/gems/*"].each do |dir|
35
+ puts "Fetching #{dir}..."
36
+ `cd #{dir} && git fetch && git rebase origin/master`
37
+ end
38
+ # `git submodule update`
39
+ end
40
+ end
41
+ namespace :deps do
42
+ task :clean_gem_cache do
43
+ gem_location = "#{::File.dirname(__FILE__)}/../vendor/dependencies"
44
+ cache_dir = "#{gem_location}/cache"
45
+ Dir["#{cache_dir}/*.gem"].each {|file| ::File.unlink file }
46
+ end
47
+ desc "Update dependencies gem"
48
+ task :update => [:clean_gem_cache] do
49
+ gem_location = "#{::File.dirname(__FILE__)}/../vendor/dependencies"
50
+ Suitcase::Zipper.gems open("#{gem_location}/gems_list").read.split("\n"), gem_location
51
+ Suitcase::Zipper.packages ['http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz'], gem_location
52
+ end
53
+ end
54
+ end
data/tasks/server.rake CHANGED
@@ -1,42 +1,44 @@
1
1
  # Tasks to be run on the server
2
- namespace(:server) do
3
- task :init do
4
- PoolParty::Coordinator.init(false)
5
- end
6
- # bundle, upload and register your bundle on the server
7
- desc "Bundle, upload and register your ami"
8
- task :all => [:bundle, :upload, :register] do
9
- puts "== your ami is ready"
10
- end
11
- # Cleanup the /mnt directory
12
- desc "Clean the /mnt directory"
13
- task :clean_mnt do
14
- `rm -rf /mnt/image* img*`
15
- end
16
- # Before we can bundle, we have to make sure we have the cert and pk files
17
- desc "Ensure the required bundle files are present in /mnt"
18
- task :check_bundle_files do
19
- raise Exception.new("You must have a private key in your /mnt directory") unless File.exists?("/mnt/pk-*.pem")
20
- raise Exception.new("You must have your access key in your /mnt directory") unless File.exists?("/mnt/cert-*.pem")
21
- end
22
- # Bundle the image
23
- desc "Bundle this image into the /mnt directory"
24
- task :bundle => [:clean_mnt, :check_bundle_files] do
25
- puts `ec2-bundle-vol -k /mnt/pk-*.pem -u '#{Planner.user_id}' -d /mnt -c /mnt/cert-*.pem -r i386`
26
- end
27
- # Upload the bundle into the app_name bucket
28
- desc "Upload the bundle to your bucket with a unique name: deletes old ami"
29
- task :upload => [:init, :delete_bucket] do
30
- puts `ec2-upload-bundle -b #{Planner.app_name} -m /mnt/image.manifest.xml -a #{Planner.access_key} -s #{Planner.secret_access_key}`
31
- end
32
- # Register the bucket with amazon and get back an ami
33
- desc "Register the bundle with amazon"
34
- task :register do
35
- puts `ec2-register -K /mnt/pk-*.pem -C /mnt/cert-*.pem #{Planner.app_name}/image.manifest.xml`
36
- end
37
- # Delete the bucket
38
- desc "Delete the bucket with the bundle under tha app name"
39
- task :delete_bucket do
40
- Planner.app_name.delete_bucket
2
+ namespace :poolparty do
3
+ namespace :server do
4
+ task :init do
5
+ PoolParty::Coordinator.init(false)
6
+ end
7
+ # bundle, upload and register your bundle on the server
8
+ desc "Bundle, upload and register your ami"
9
+ task :all => [:bundle, :upload, :register] do
10
+ puts "== your ami is ready"
11
+ end
12
+ # Cleanup the /mnt directory
13
+ desc "Clean the /mnt directory"
14
+ task :clean_mnt do
15
+ `rm -rf /mnt/image* img*`
16
+ end
17
+ # Before we can bundle, we have to make sure we have the cert and pk files
18
+ desc "Ensure the required bundle files are present in /mnt"
19
+ task :check_bundle_files do
20
+ raise Exception.new("You must have a private key in your /mnt directory") unless File.exists?("/mnt/pk-*.pem")
21
+ raise Exception.new("You must have your access key in your /mnt directory") unless File.exists?("/mnt/cert-*.pem")
22
+ end
23
+ # Bundle the image
24
+ desc "Bundle this image into the /mnt directory"
25
+ task :bundle => [:clean_mnt, :check_bundle_files] do
26
+ puts `ec2-bundle-vol -k /mnt/pk-*.pem -u '#{Planner.user_id}' -d /mnt -c /mnt/cert-*.pem -r i386`
27
+ end
28
+ # Upload the bundle into the app_name bucket
29
+ desc "Upload the bundle to your bucket with a unique name: deletes old ami"
30
+ task :upload => [:init, :delete_bucket] do
31
+ puts `ec2-upload-bundle -b #{Planner.app_name} -m /mnt/image.manifest.xml -a #{Planner.access_key} -s #{Planner.secret_access_key}`
32
+ end
33
+ # Register the bucket with amazon and get back an ami
34
+ desc "Register the bundle with amazon"
35
+ task :register do
36
+ puts `ec2-register -K /mnt/pk-*.pem -C /mnt/cert-*.pem #{Planner.app_name}/image.manifest.xml`
37
+ end
38
+ # Delete the bucket
39
+ desc "Delete the bucket with the bundle under tha app name"
40
+ task :delete_bucket do
41
+ Planner.app_name.delete_bucket
42
+ end
41
43
  end
42
44
  end
data/tasks/spec.rake CHANGED
@@ -1,7 +1,11 @@
1
1
  require 'rake'
2
2
  require 'spec/rake/spectask'
3
+ require 'rake/testtask'
4
+ require 'rake/rdoctask'
3
5
 
4
- task :default => :spec
6
+ task :default => [:spec, :test]
7
+ desc "Update vendor directory and run tests"
8
+ task :ci => ["poolparty:vendor:update", :spec, :test]
5
9
 
6
10
  Spec::Rake::SpecTask.new(:spec) do |t|
7
11
  t.warning = t.rcov = false
@@ -13,4 +17,34 @@ Spec::Rake::SpecTask.new(:spec_v) do |t|
13
17
  t.rcov_opts = ['--exclude', 'gems*,spec*,website*,test*']
14
18
  t.ruby_opts = []
15
19
  t.spec_files = Dir["spec/**/*_spec.rb"]
20
+ end
21
+
22
+ # task :test do
23
+ # sh "ruby -Ilib:test #{Dir["#{File.dirname(__FILE__)}/../test/poolparty/*/*.rb"].join(" ")}"
24
+ # end
25
+
26
+ Rake::TestTask.new(:test) do |t|
27
+ t.test_files = FileList['test/poolparty/**/*_test.rb']
28
+ t.warning = false
29
+ t.verbose = false
30
+ end
31
+
32
+ begin
33
+ require 'rcov/rcovtask'
34
+
35
+ Rcov::RcovTask.new(:rcov) do |t|
36
+ t.libs << FileList['lib/poolparty/**/*.rb']
37
+ dot_rakes =
38
+ t.rcov_opts = [
39
+ '-xRakefile', '-xrakefile',
40
+ '-xlib/erlang',
41
+ '--text-report',
42
+ '--sort coverage'
43
+ ] + FileList['tasks/*.rake'].pathmap("-x%p")
44
+ t.test_files = FileList['test/poolparty/**/*_test.rb']
45
+ t.output_dir = 'coverage'
46
+ t.verbose = true
47
+ end
48
+ rescue LoadError
49
+ puts "RCov is not available"
16
50
  end
@@ -0,0 +1 @@
1
+ Hello <%= friends %>
@@ -0,0 +1,21 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class TestWrappingArray < Test::Unit::TestCase
4
+ context "wrapping_next" do
5
+ setup do
6
+ @array = %w(a b c d)
7
+ end
8
+
9
+ should "return element next in the chain" do
10
+ @array.wrapping_next("a").should == "b"
11
+ @array.wrapping_next("b").should == "c"
12
+ @array.wrapping_next("c").should == "d"
13
+ @array.wrapping_next("d").should == "a"
14
+ @array.wrapping_next("a").should == "b"
15
+ end
16
+ should "raise if the element is not in the array" do
17
+ lambda {@array.wrapping_next("z")}.should raise_error
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,34 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class TestHashClass < Test::Unit::TestCase
4
+ context "hash_get" do
5
+ setup do
6
+ @hsh = {
7
+ "10.0.0.3" => {"stuff" => "here"},
8
+ "10.0.0.1" => {"stuff" => "here"},
9
+ "10.0.0.2" => {"stuff" => "here"}
10
+ }
11
+ end
12
+ should "should return 0.1 if we are 0.2" do
13
+ assert @hsh.next_sorted_key("10.0.0.1"), "10.0.0.2"
14
+ assert @hsh.next_sorted_key("10.0.0.2"), "10.0.0.3"
15
+ assert @hsh.next_sorted_key("10.0.0.3"), "10.0.0.1"
16
+ assert @hsh.next_sorted_key("10.0.0.1"), "10.0.0.2"
17
+ end
18
+ should "should return self if there is only 1 element" do
19
+ k = {"10.0.0.2" => {"stuff" => "here"}}.next_sorted_key("10.0.0.2")
20
+ assert k, "10.0.0.2"
21
+ end
22
+ end
23
+ context "test method_missing" do
24
+ should "should be able to call a key on the hash as a method" do
25
+ {:first_name => "bob", :last_name => "frank"}.first_name.should == "bob"
26
+ end
27
+ should "should not return nil if there is no key set in the hash" do
28
+ hsh = {:first_name => "bob", :last_name => "frank"}
29
+ lambda {{:first_name => "bob", :last_name => "frank"}.neighbor}.should raise_error
30
+ end
31
+ end
32
+
33
+
34
+ end
@@ -0,0 +1,29 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class TestString < Test::Unit::TestCase
4
+ context "to_hash" do
5
+ setup do
6
+ @string =<<-EOS
7
+ a = "a"
8
+ b = "b"
9
+ c = "c"
10
+ EOS
11
+ end
12
+
13
+ should "turn it into a hash with the values from =" do
14
+ @string.to_hash[:a].should == "a"
15
+ @string.to_hash[:b].should == "b"
16
+ @string.to_hash[:c].should == "c"
17
+ end
18
+ end
19
+ context "macify" do
20
+ setup do
21
+ @mac = "00:0c:29:44:f1:0f"
22
+ end
23
+
24
+ should "should turn the mac into the response on the command-line" do
25
+ @mac.macify.should == "0:c:29:44:f1:f"
26
+ end
27
+ end
28
+
29
+ end