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
@@ -2,26 +2,31 @@ require "ftools"
2
2
  module PoolParty
3
3
 
4
4
  # Load a file that contains a pool into memory
5
- def load_pool(filename)
6
-
5
+ def load_pool(filename=nil)
6
+ filename = filename || Binary.get_existing_spec_location
7
+ dputs "Using spec at #{filename}"
8
+
7
9
  unless filename && ::File.readable?(filename)
8
- puts "Please specify your cloud with -s, move it to ./clouds.pool or in your POOL_SPEC environment variable"
10
+ puts "Please specify your cloud with -s, move it to ./clouds.rb or in your POOL_SPEC environment variable"
9
11
  exit(1)
10
12
  else
11
13
  $pool_specfile = filename
12
- PoolParty::Script.inflate(open(filename).read, filename)
14
+ PoolParty::Pool::Pool.load_from_file filename
13
15
  end
14
16
  end
15
17
 
16
- def print_with_nice_printer(header=nil, strs=[])
17
- returning NicePrinter.new do |printer|
18
- printer.header
19
- printer.center(header) if header
20
- strs.each {|st| printer << st if st}
21
- printer.footer
22
- end.print
18
+ # Helper to print with the nice printer
19
+ def print_with_nice_printer(header=nil, strs=[], &block)
20
+ printer = NicePrinter.new
21
+ printer.header
22
+ printer.center(header) if header
23
+ yield(printer)
24
+ strs.each {|st| printer << st if st}
25
+ printer.footer
26
+ printer.print
23
27
  end
24
28
 
29
+ # Keep the pool_specfile
25
30
  def pool_specfile
26
31
  $pool_specfile
27
32
  end
@@ -42,32 +47,21 @@ module PoolParty
42
47
  # These are the locations the spec file can be before the cloud
43
48
  # aborts because it cannot load the cloud
44
49
  def get_existing_spec_location
45
- [
46
- "#{Base.remote_storage_path}/#{Base.default_specfile_name}",
47
- "#{Base.default_specfile_name}",
48
- ENV["POOL_SPEC"],
49
- "#{Base.storage_directory}/#{Base.default_specfile_name}",
50
- "#{Base.base_config_directory}/#{Base.default_specfile_name}",
51
- "#{Base.default_project_specfile_name}"
52
- ].reject {|a| a.nil?}.reject do |f|
50
+ [
51
+ "#{Dir.pwd}/#{Default.default_specfile_name}",
52
+ Dir["#{Dir.pwd}/*/#{Default.default_specfile_name}"],
53
+ "#{Default.remote_storage_path}/#{Default.default_specfile_name}",
54
+ "#{Default.default_specfile_name}",
55
+ "#{Default.base_config_directory}/#{Default.default_specfile_name}",
56
+ "#{Default.poolparty_home_path}/#{Default.default_specfile_name}",
57
+ ENV["POOL_SPEC"]
58
+ ].flatten.reject {|a| a.nil?}.reject do |f|
53
59
  f unless ::File.readable?(f)
54
60
  end.first
55
61
  end
56
62
  # Daemonize the process
57
63
  def daemonize(&block)
58
- vputs "Daemonizing..."
59
- trap("CHLD") {Process.wait(-1, Process::WNOHANG)}
60
- pid = fork do
61
- Signal.trap('HUP', 'IGNORE') # Don't die upon logout
62
- File.open("/dev/null", "r+") do |devnull|
63
- $stdout.reopen(devnull)
64
- $stderr.reopen(devnull)
65
- $stdin.reopen(devnull) unless @use_stdin
66
- end
67
- block.call if block
68
- end
69
- Process.detach(pid)
70
- pid
64
+ Daemonize.daemonize(&block)
71
65
  end
72
66
 
73
67
  end
@@ -20,7 +20,7 @@ module PoolParty
20
20
  if level >= 1
21
21
  @np.center "CloudSpeak"
22
22
  @np << "All the commands set on your cloud can be called within the console"
23
- @np << "list_of_running_instances - get list of running nodes"
23
+ @np << "instances_by_status('running') - get list of running nodes"
24
24
  @np << "list_of_pending_instances - get list of pending nodes"
25
25
  @np << "available_monitors - get list of the available monitors on the cloud"
26
26
  @np << " note: all monitors can be called as a method on the cloud"
@@ -17,11 +17,7 @@ module PoolParty
17
17
  puts ""
18
18
  pools.size
19
19
  end
20
-
21
- def available_bases
22
- puts Remote.available_bases
23
- end
24
-
20
+
25
21
  def header(str="")
26
22
  "*** #{str}"
27
23
  end
@@ -0,0 +1,44 @@
1
+ module PoolParty
2
+ class HashPrinter
3
+ def self.print_to_string(props={})
4
+ <<-EOE
5
+ Top Level
6
+ #{print_hash(props, 1)}
7
+ EOE
8
+ end
9
+ def self.print_hash(props={}, tabs=0)
10
+ out = []
11
+ if props[:options]
12
+ out << props[:options].map {|k,v| "#{print_tabs(tabs)}#{k} => #{print_value(v)}"}.join("#{print_tabs(tabs)}\n")
13
+ end
14
+ if props[:resources]
15
+ props[:resources].each do |ty,r|
16
+ out << [
17
+ "#{print_tabs(tabs)}#{ty.to_s.capitalize}",
18
+ r.map {|h| h.map {|k,v| "#{print_tabs(tabs+1)}#{k} => #{print_value(v)}"}}.join("#{print_tabs(tabs+1)}\n")
19
+ ].join("\n")
20
+ end
21
+ end
22
+ if props[:services]
23
+ props[:services].each do |nm,s|
24
+ out << [
25
+ "#{print_tabs(tabs)}#{nm.to_s.capitalize}",
26
+ print_hash(s,tabs+1)
27
+ ].join("\n")
28
+ end
29
+ end
30
+ out.join("\n")
31
+ end
32
+ def self.print_tabs(tabs=1)
33
+ "#{"\t"*tabs}"
34
+ end
35
+ def self.print_value(v)
36
+ case v
37
+ when Array
38
+ "[#{v.join(", ")}]"
39
+ else
40
+ v
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,4 @@
1
+ module PoolParty
2
+ module Loading
3
+ end
4
+ end
@@ -1,18 +1,22 @@
1
1
  require 'optparse'
2
2
  require "poolparty"
3
3
  require "poolpartycl"
4
- require 'rdoc/usage'
4
+ # require 'rdoc/usage'
5
5
  require 'ostruct'
6
6
  require 'date'
7
7
 
8
8
  module PoolParty
9
9
  class Optioner
10
- include Configurable
11
- include MethodMissingSugar
10
+ include Dslify
12
11
 
13
- def initialize(args=[], opts={}, &block)
12
+ default_options( :verbose => false,
13
+ :quiet => false,
14
+ :cloudname => false,
15
+ :poolname => false)
16
+
17
+ def initialize(args=[], opts={}, &block)
14
18
  boolean_args << opts[:boolean_args] if opts.has_key?(:boolean_args)
15
-
19
+
16
20
  @arguments = parse_args(args)
17
21
  @extra_help = opts.has_key?(:extra_help) ? opts[:extra_help] : ""
18
22
  @abstract = opts.has_key?(:abstract) ? opts[:abstract] : false
@@ -21,11 +25,10 @@ module PoolParty
21
25
  @command = opts.has_key?(:command) ? opts[:command] : false
22
26
 
23
27
  parse_options(&block) if @parse_options
24
- set_default_options
25
28
  self
26
29
  end
27
30
  def daemonizeable
28
- @opts.on('-d', '--daemonize', 'Daemonize starting the cloud') { self.daemon true }
31
+ @opts.on('-D', '--daemonize', 'Daemonize starting the cloud') { self.daemon true }
29
32
  end
30
33
  def cloudnames
31
34
  @opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| self.cloudname c }
@@ -63,18 +66,21 @@ module PoolParty
63
66
  args
64
67
  end
65
68
 
69
+ # def parent
70
+ # self
71
+ # end
72
+
66
73
  def parent
67
74
  self
68
75
  end
69
76
 
70
- def set_default_options
71
- self.verbose false
72
- self.quiet false
73
- end
74
-
75
77
  def parse_options(&blk)
78
+ self.spec = nil
79
+ self.num = nil
80
+
76
81
  progname = $0.include?("-") ? "#{::File.basename($0[/(\w+)-/, 1])} #{::File.basename($0[/-(.*)/, 1])}" : ::File.basename($0)
77
- @opts = OptionParser.new
82
+ @opts = OptionParser.new
83
+ @opts.extend(Dslify)
78
84
  @opts.banner = "Usage: #{progname} #{@abstract ? "[command] " : ""}[options]"
79
85
 
80
86
  @opts.separator ""
@@ -82,15 +88,15 @@ module PoolParty
82
88
  unless @abstract
83
89
  @opts.separator "Options:"
84
90
 
85
- @opts.on('-v', '--verbose', 'Be verbose') { self.verbose true }
86
- @opts.on("--debug", "Debug setting") {self.debug true}
87
- @opts.on('-s [file]', '--spec-file [file]', 'Set the spec file') { |file| self.spec file.chomp }
88
- @opts.on('-t', '--test', 'Testing mode') { self.testing true }
91
+ @opts.on('-v', '--verbose', 'Be verbose') { self.verbose true }
92
+ @opts.on('-d', "--debug", "Debug setting") { self.debugging true }
93
+ @opts.on('-s [file]', '--spec-file [file]', 'Set the spec file') { |file| self.spec file.chomp }
94
+ @opts.on('-t', '--test', 'Testing mode') { self.testing true }
89
95
 
90
96
  blk.call(@opts, self) if blk
91
97
  end
92
98
 
93
- @opts.on('-V', '--version', 'Display the version') { puts @version ; exit 0 }
99
+ @opts.on('-V', '--version', 'Display the version') { output_version ; exit 0 }
94
100
  @opts.on_tail("-h", "--help", "Show this message") do
95
101
  puts @opts
96
102
  puts @extra_help
@@ -103,31 +109,39 @@ module PoolParty
103
109
  output_options if verbose
104
110
 
105
111
  if @load_pools
106
- self.loaded_pool load_pool(self.spec || Binary.get_existing_spec_location)
107
-
112
+ self.loaded_pool load_pool( spec? ? spec : Binary.get_existing_spec_location)
108
113
  self.loaded_clouds extract_cloud_from_options(self)
109
114
  self.loaded_pools extract_pool_from_options(self)
110
115
 
111
116
  reject_junk_options!
112
- raise CloudNotFoundException.new("Please specify your cloud with -s, move it to ./clouds.pool or in your POOL_SPEC environment variable") unless loaded_clouds && !loaded_clouds.empty?
117
+ raise CloudNotFoundException.new("Please specify your cloud with -s, move it to ./clouds.rb or in your POOL_SPEC environment variable") unless loaded_clouds && !loaded_clouds.empty?
113
118
  loaded_pools.each do |pl|
114
- pl.configure(self.options)
119
+ pl.options(self.options)
115
120
  end
116
121
  loaded_clouds.each do |cl|
117
- cl.configure(self.options)
122
+ cl.options(self.options)
118
123
  end
119
124
  end
120
125
  end
126
+
121
127
  def reject_junk_options!
122
128
  %w(loaded_pool cloudname extract_pool_from_options).each do |opt|
123
- @options.delete(opt.to_sym)
129
+ @dsl_options.delete(opt.to_sym)
124
130
  end
125
131
  end
132
+
126
133
  def process_options
127
134
  end
135
+
136
+ def output_options
137
+ puts ""
138
+ end
128
139
 
129
140
  def output_version
130
- puts @version
141
+ puts ::PoolParty::Version
142
+ end
143
+
144
+ def output_options
131
145
  end
132
146
 
133
147
  end
@@ -0,0 +1,30 @@
1
+ require "rubygems"
2
+ require "json"
3
+ begin
4
+ require "#{::File.dirname(__FILE__)}/../../vendor/gems/dslify/lib/dslify"
5
+ rescue Exception => e
6
+ require "dslify"
7
+ end
8
+ require "#{::File.dirname(__FILE__)}/poolparty/default"
9
+ require "#{::File.dirname(__FILE__)}/modules/user_helpers"
10
+ require "#{::File.dirname(__FILE__)}/schema"
11
+ require "#{::File.dirname(__FILE__)}/core/string"
12
+ require "#{::File.dirname(__FILE__)}/net/init"
13
+ require "#{::File.dirname(__FILE__)}/core/hash"
14
+ require "#{::File.dirname(__FILE__)}/poolparty/neighborhoods"
15
+ require "#{::File.dirname(__FILE__)}/exceptions/RemoteException.rb"
16
+
17
+ module PoolParty
18
+ extend ::PoolParty::Remote
19
+
20
+ def self.load_cloud_from_json(json_file_path=nil)
21
+ json_file = json_file_path || PoolParty::Default.properties_hash_file
22
+ PoolParty::Schema.new( ::File.read(json_file) ) rescue exit 1
23
+ end
24
+ end
25
+
26
+ class String
27
+ def camelcase
28
+ gsub(/(^|_|-)(.)/) { $2.upcase }
29
+ end
30
+ end
@@ -0,0 +1,44 @@
1
+ module PoolParty
2
+ module Callbacks
3
+ module ClassMethods
4
+ def additional_callbacks(arr=[])
5
+ @additional_callbacks ||= arr
6
+ end
7
+ end
8
+
9
+ module InstanceMethods
10
+ def defined_callbacks
11
+ [
12
+ :before_bootstrap,
13
+ :after_bootstrap,
14
+ :before_configure,
15
+ :after_configure,
16
+ :after_create,
17
+ # TODO: Add after_launch_instance and after_terminate_instance
18
+ # :after_launch_instance,
19
+ # :after_terminate_instance,
20
+ self.class.additional_callbacks
21
+ ].flatten
22
+ end
23
+
24
+ # Callbacks on bootstrap and configuration
25
+ def setup_callbacks
26
+ defined_callbacks.each do |meth|
27
+ unless respond_to?("call_#{meth}_callbacks".to_sym)
28
+ self.class.module_eval <<-EOE
29
+ def call_#{meth}_callbacks(*args)
30
+ plugin_store.each {|a| a.call_#{meth}_callbacks(*args) } if respond_to?(:plugin_store) && plugin_store
31
+ self.send :#{meth}, *args if respond_to?(:#{meth})
32
+ end
33
+ EOE
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ def self.included(receiver)
40
+ receiver.extend ClassMethods
41
+ receiver.send :include, InstanceMethods
42
+ end
43
+ end
44
+ end
@@ -1,13 +1,43 @@
1
1
  module PoolParty
2
2
  module CloudDsl
3
-
4
- def mount_ebs_volume_at(id="", loc="/data")
5
- ebs_volume_id id
6
- ebs_volume_mount_point loc
7
- ebs_volume_device "/dev/#{id.sanitize}"
8
-
9
- has_mount(:name => loc, :device => ebs_volume_device)
10
- has_directory(:name => loc)
3
+
4
+ # TODO: Add to ec2 remoter_base
5
+ # def mount_ebs_volume_at(id="", loc="/data")
6
+ # ebs_volume_id id
7
+ # ebs_volume_mount_point loc
8
+ # ebs_volume_device "/dev/#{id.sanitize}"
9
+ #
10
+ # has_mount(:name => loc, :device => ebs_volume_device)
11
+ # has_directory(:name => loc)
12
+ # end
13
+
14
+ def dependency_resolver(name='puppet')
15
+ klass = name.preserved_class_constant("Resolver")
16
+ raise DependencyResolverException.new("Unknown resolver") unless klass
17
+ dsl_options[:dependency_resolver] = klass unless dsl_options[:dependency_resolver]
18
+ end
19
+
20
+ # Enable a service package
21
+ def enable(*services)
22
+ services.each do |service|
23
+ dsl_options[service] = :enabled
24
+ end
25
+ end
26
+ # Disable a service package
27
+ def disable(*services)
28
+ services.each do |service|
29
+ dsl_options[service] = :disabled
30
+ end
31
+ end
32
+
33
+ # Check to see if the package has been enabled
34
+ def enabled?(srv);dsl_options.has_key?(srv) && dsl_options[srv] == :enabled;end
35
+
36
+ # All services that are :enabled and have a plugin that corresponds, call on the cloud
37
+ def add_optional_enabled_services
38
+ dsl_options.each do |k,v|
39
+ self.send k if enabled?(k) && respond_to?(k)
40
+ end
11
41
  end
12
42
 
13
43
  end
@@ -1,11 +1,25 @@
1
+ =begin rdoc
2
+ CloudResourcer provides the cloud with convenience methods
3
+ that you can call on your cloud. This is where the
4
+
5
+ instances 2..10
6
+
7
+ method is stored, for instance. It's also where the key convenience methods are written
8
+ =end
1
9
  require "ftools"
2
10
 
3
11
  module PoolParty
4
12
  module CloudResourcer
5
13
 
6
- def plugin_directory(*args)
7
- args = ["#{::File.expand_path(Dir.pwd)}/plugins"] if args.empty?
8
- args.each {|arg| Dir["#{arg}/*/*.rb"].each {|f| require f rescue "" }}
14
+ def plugin_directory(arr=[])
15
+ arr = [arr] if arr.is_a?(String)
16
+ arr << [
17
+ "#{::File.expand_path(Dir.pwd)}/plugins",
18
+ "#{::File.expand_path(Default.poolparty_home_path)}/plugins"
19
+ ]
20
+ arr.flatten.each {|arg|
21
+ Dir["#{arg}/*/*.rb"].each {|f| require f } if ::File.directory?(arg)
22
+ }
9
23
  end
10
24
 
11
25
  # Store block
@@ -24,7 +38,9 @@ module PoolParty
24
38
  end
25
39
 
26
40
  # Set instances with a range or a number
27
- def instances(arg)
41
+ # if passed with a hash, call nodes(hash) to return filtered list of
42
+ # instances
43
+ def instances(arg)
28
44
  case arg
29
45
  when Range
30
46
  minimum_instances arg.first
@@ -32,103 +48,73 @@ module PoolParty
32
48
  when Fixnum
33
49
  minimum_instances arg
34
50
  maximum_instances arg
51
+ when Hash
52
+ nodes(arg)
35
53
  else
36
54
  raise SpecException.new("Don't know how to handle instances cloud input #{arg}")
37
55
  end
38
56
  end
39
-
40
- def setup_dev
41
- unless ::File.exists?("#{full_keypair_basename_path}.pub")
42
- cmd = "scp #{ssh_array.join(" ")} #{Base.user}@#{master.ip}:.ssh/authorized_keys #{full_keypair_basename_path}.pub"
43
- vputs "Running #{cmd}"
44
- Kernel.system(cmd)
45
- end
46
- end
47
-
48
- def full_keypair_path
49
- unless keypair_path
50
- raise RuntimeException.new("Keypair cannot be found")
57
+
58
+ # Declare the remoter base
59
+ # Check to make sure the available_bases is available, otherwise raise
60
+ # Give access to the cloud the remote_base and instantiate a new
61
+ # instance of the remote base
62
+ def using(t, &block)
63
+ @cloud = self
64
+ if t && self.class.available_bases.include?(t.to_sym)
65
+ unless using_remoter?
66
+ self.class.send :attr_reader, :remote_base
67
+ self.class.send :attr_reader, :parent_cloud
68
+ klass_string = "#{t}".classify
69
+ klass = "::PoolParty::Remote::#{klass_string}".constantize
70
+
71
+ @remote_base = klass.send :new, self, &block
72
+ @remote_base.instance_eval &block if block
73
+ options[:remote_base] = klass.to_s if respond_to?(:options)
74
+
75
+ @parent_cloud = @cloud
76
+ instance_eval "def #{t};@remote_base;end"
77
+ end
51
78
  else
52
- ::File.expand_path(keypair_path)
79
+ raise "Unknown remote base: #{t}"
53
80
  end
54
81
  end
55
- def full_pub_keypair_path
56
- @full_pub_keypair_path ||= ::File.expand_path("#{full_keypair_basename_path}.pub")
57
- end
58
- def full_keypair_basename_path
59
- dir = ::File.dirname(full_keypair_path)
60
- basename = ::File.basename(full_keypair_path, ::File.extname(full_keypair_path))
61
- ::File.join(dir, basename)
62
- end
63
82
 
64
- def keypair_path
65
- keypair_paths.each do |path|
66
- possible_keypair_basenames.each do |base|
67
- full_path = ::File.join( File.expand_path(path), "#{base}#{keypair}")
68
- return full_path if ::File.exists?(full_path)
69
- end
70
- end
71
- return nil
83
+ # Are we using a remoter?
84
+ def using_remoter?
85
+ !@remote_base.nil?
72
86
  end
73
87
 
74
- # The keypair name can be one name or another including id_rsa or not
75
- # So let's get the name that exists as a keypair
76
- def full_keypair_name
77
- keypair_paths.each do |path|
78
- possible_keypair_basenames.each do |base|
79
- full_path = ::File.join( File.expand_path(path), "#{base}#{keypair}")
80
- return "#{base}#{keypair}" if ::File.exists?(full_path)
81
- end
88
+ # Keypairs
89
+ # Use the keypair path
90
+ def keypair(*args)
91
+ if args && !args.empty?
92
+ args.each {|arg| _keypairs.unshift Key.new(arg) unless arg.nil? || arg.empty? }
93
+ else
94
+ @keypair ||= _keypairs.select {|key| key.exists? }.first
82
95
  end
83
- return nil
84
96
  end
85
97
 
86
- def remote_keypair_path
87
- ::File.join( keypair_paths.last, "#{possible_keypair_basenames.first}#{keypair}" )
88
- end
89
- def new_keypair_path
90
- ::File.join( keypair_paths.first, "#{possible_keypair_basenames.first}#{keypair}" )
91
- end
98
+ alias :set_keypairs :keypair
92
99
 
93
- def possible_keypair_basenames
94
- [
95
- "id_rsa-",
96
- ""
97
- ]
100
+ def _keypairs
101
+ dsl_options[:keypairs] ||= [Key.new]
98
102
  end
99
103
 
100
- def keypair_paths
101
- [
102
- Base.base_keypair_path,
103
- Base.base_config_directory,
104
- Base.remote_storage_path
105
- ]
106
- end
107
-
108
- def context_stack
109
- @@context_stack ||= []
104
+ def full_keypair_path
105
+ @full_keypair_path ||= keypair.full_filepath
110
106
  end
111
107
 
112
- def run_setup(parent, should_set_parent=true, &block)
113
- context_stack.push parent
114
-
115
- set_parent if should_set_parent
116
- run_in_context self, &block if block
108
+ def update_from_schema(schema)
109
+ keypairs = schema.options.delete(:keypairs).map {|a| PoolParty::Key.new(a.basename) }
110
+ options.merge! schema.options
111
+ dsl_options[:keypairs] = keypairs
112
+
113
+ dsl_options[:dependency_resolver] = schema.options.dependency_resolver.split("::")[-1].gsub(/Resolver/, '').preserved_class_constant("Resolver") rescue PoolParty::Chef
117
114
 
118
- context_stack.pop
119
- end
120
-
121
- # Set the parent on the resource
122
- def set_parent(sink_options=true)
123
- unless context_stack.last.nil?
124
- @parent = context_stack.last
125
- # Add self as a service on the parent
126
- parent.add_service(self) if parent.respond_to?(:add_service)
127
- # Take the options of the parents
128
- configure(parent.options) if parent && parent.respond_to?(:options) && sink_options
129
- end
130
115
  end
131
-
116
+
117
+ # TODO: deprecate
132
118
  def number_of_resources
133
119
  arr = resources.map do |n, r|
134
120
  r.size
@@ -136,21 +122,5 @@ module PoolParty
136
122
  resources.map {|n,r| r.size}.inject(0){|sum,i| sum+=i}
137
123
  end
138
124
 
139
- def parent
140
- @parent ||= nil
141
- end
142
-
143
- def plugin_store
144
- @plugin_store ||= []
145
- end
146
-
147
- def realize_plugins!(force=false)
148
- plugin_store.each {|plugin| plugin.realize!(force) if plugin }
149
- end
150
-
151
- def plugin_store
152
- @plugins ||= []
153
- end
154
-
155
125
  end
156
126
  end