poolparty 0.2.84 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,237 @@
1
+ =begin rdoc
2
+ ChefResolver
3
+
4
+ This takes the internal structure
5
+ {
6
+ :options => {},
7
+ :services => [{}],
8
+ :resources => []
9
+ }
10
+
11
+ and creates a chef recipe to reflect.
12
+
13
+ /cookbooks/
14
+ namespace/
15
+ recipes/
16
+ templates/
17
+ attributes/
18
+
19
+ TODO: This class is somewhat all over the place. Slim it down
20
+ =end
21
+ module PoolParty
22
+
23
+ class ChefResolver< DependencyResolver
24
+
25
+ # Compile and add to the zipper
26
+ def compile(props=@properties_hash, tabs=0, default_namespace="poolparty")
27
+ base_dir(default_namespace)
28
+ build_base_recipe_directory( default_namespace )
29
+
30
+ # ::Suitcase::Zipper.add( base_dir, "chef/cookbooks")
31
+
32
+ _compile(props, tabs, default_namespace)
33
+ end
34
+
35
+ def _compile(props=@properties_hash, tabs=0, default_namespace="poolparty")
36
+ cld_name = default_namespace
37
+ comp(cld_name, props, tabs)
38
+ end
39
+
40
+ def comp(cld_name, props, tabs)
41
+
42
+ default_recipe = resources_to_string(props[:resources],tabs)
43
+ ::File.open("#{base_dir}/recipes/default.rb", "w+") {|f| f << default_recipe }
44
+
45
+ default_recipe
46
+ end
47
+
48
+ def build_base_recipe_directory(nm)
49
+ dputs "Making new #{base_dir}"
50
+ ::FileUtils.mkdir_p "#{base_dir}"
51
+
52
+ [ "recipes", "templates", "attributes" ].each do |bdir|
53
+ ::FileUtils.mkdir_p "#{base_dir}/#{bdir}" #unless ::File.directory? "#{base_dir}/#{bdir}"
54
+ end
55
+
56
+ ::File.open("#{base_dir}/attributes/poolparty.rb", "w") do |f|
57
+ f << "poolparty Mash.new unless attribute?('poolparty')\n"
58
+ end
59
+
60
+ base_dir
61
+ end
62
+
63
+ def base_dir(nm="poolparty")
64
+ @base_dir ||= "#{Default.tmp_path}/dr_configure/chef/cookbooks/#{nm}"
65
+ end
66
+
67
+ def options_to_string(opts,tabs=0)
68
+ handle_print_variables(opts) if opts
69
+ end
70
+
71
+ def resources_to_string(opts,tabs=0)
72
+ out = []
73
+ out << opts.map do |resource|
74
+ case ty = resource.delete(:pp_type)
75
+ when "variable"
76
+ handle_print_variable(resource)
77
+ when "chef_recipe"
78
+ "#{tf(tabs)}include_recipe #{to_option_string(resource.name)}"
79
+ when "chef_library"
80
+ "#{tf(tabs)}require #{to_option_string("/etc/chef/lib/#{resource.name}")}"
81
+ when "plugin"
82
+ handle_print_service(resource, tabs)
83
+ else
84
+ real_type = handle_chef_types(ty)
85
+ real_name = resource[:name]
86
+ res = before_filter_check_on_hash(resource, real_name)
87
+ "#{tf(tabs)}#{real_type} \"#{real_name}\" do\n#{tf(tabs+1)}#{hash_flush_out(res).compact.join("\n#{tf(tabs+1)}")}\n#{tf(tabs)}end"
88
+ end
89
+ end
90
+ out.compact.join("\n")
91
+ end
92
+
93
+ def handle_print_variable(varhash)
94
+ o = []
95
+ if varhash[:namespace]
96
+ o << ["\n#{varhash[:namespace]} Mash.new unless attribute?('#{varhash[:namespace]}')"]
97
+ o << "#{varhash[:namespace]}['#{varhash[:name]}'] = #{to_option_string(varhash[:value])}\n"
98
+ else
99
+ o << "poolparty['#{varhash[:name]}'] = #{to_option_string(varhash[:value])}"
100
+ end
101
+ ::File.open("#{base_dir}/attributes/poolparty.rb", "a+") do |f|
102
+ f << o.join("\n")
103
+ f << "\n"
104
+ end
105
+ nil
106
+ end
107
+
108
+ def handle_chef_types(ty)
109
+ case ty.to_sym
110
+ when :exec
111
+ "execute"
112
+ when :file
113
+ "template"
114
+ when :symlink
115
+ "link"
116
+ when :line_in_file
117
+ "execute"
118
+ when :chef_deploy_definition
119
+ "deploy"
120
+ else
121
+ ty
122
+ end
123
+ end
124
+
125
+ # flush out the hash into something meaningful
126
+ def hash_flush_out(hash, pre="", post="")
127
+ hash.map do |k,v|
128
+ if o = handle_actions(k,v)
129
+ o
130
+ else
131
+ key = to_chef_key(k)
132
+ res = to_option_string(v)
133
+ (key.nil? || res.nil?) ? nil : "#{pre}#{key} #{res}#{post}"
134
+ end
135
+ end
136
+ end
137
+
138
+ def handle_print_service(plugin, tabs)
139
+ if plugin && plugin.has_key?(:resources) && !plugin[:resources].empty?
140
+ kname = plugin.delete(:name).to_s.gsub(/pool_party_/, '').gsub(/_class/, '')
141
+ str = "\n#{tf(tabs)}# #{kname}\n"
142
+ str << "#{tf(tabs)}"
143
+ str << _compile(plugin,tabs+1, kname)
144
+ str << "#{tf(tabs)}"
145
+ end
146
+ str
147
+ end
148
+
149
+ # Check if the hash has content and that the content exists here. This is used
150
+ # to provide a check
151
+ def before_filter_check_on_hash(hsh, nm)
152
+ if hsh.has_key?(:content)
153
+ cont = hsh.delete(:content)
154
+ temp_file = "#{base_dir}/templates/default/#{nm}.erb"
155
+
156
+ ::FileUtils.mkdir_p(::File.dirname(temp_file)) unless ::File.directory? temp_file
157
+ ::File.open(temp_file, "w+") {|f| f.print cont }
158
+
159
+ hsh.merge!({:source => "#{nm}.erb"})
160
+ end
161
+ #
162
+ hsh.delete(:require) if hsh.has_key?(:require)
163
+ hsh.delete(:name) # we don't need the names in the methods
164
+ hsh
165
+ end
166
+
167
+ # Handle ensures
168
+ def handle_actions(key,value)
169
+ case key
170
+ when :ensures
171
+ value.nil? ? nil : "action :#{value}"
172
+ else
173
+ nil
174
+ end
175
+ end
176
+
177
+ # Take the keys from the resource hash and turn them into chef-like
178
+ # meaningful keys. This is how helpers are created for chef
179
+ #
180
+ # * <tt>reloads</tt> - todo
181
+ def to_chef_key(key)
182
+ case key
183
+ when :ensures
184
+ nil
185
+ when :reloads
186
+ "notifies :reload,"
187
+ when :calls
188
+ "notifies :run,"
189
+ when :stops
190
+ "notifies :stop,"
191
+ when :starts
192
+ "notifies :start,"
193
+ when :enable
194
+ nil
195
+ when :if_not
196
+ "not_if"
197
+ when :not_if
198
+ "not_if"
199
+ when :only_if
200
+ "only_if"
201
+ else
202
+ "#{key}"
203
+ end
204
+ end
205
+
206
+ # Resolve the value of the resource hash into a meaningful chef
207
+ # value. Resources are turned into resource strings here
208
+ #
209
+ def to_option_string(obj)
210
+ case obj
211
+ when PoolParty::Resources::Resource
212
+ "resources(:#{handle_chef_types(obj.class.to_s.top_level_class.downcase.to_sym)} => \"#{obj.name}\")"
213
+ when Fixnum
214
+ "#{obj.to_i}"
215
+ when String
216
+ "\"#{obj}\""
217
+ when Array
218
+ # If we are sending a notifies with a second argument
219
+ if obj[1] && [:immediately, :delayed].include?(obj[1])
220
+ "#{to_option_string(obj[0])}, :#{obj[1]}"
221
+ else
222
+ "[ #{obj.map {|e| to_option_string(e) }.reject {|a| a.nil? || a.empty? }.join(", ")} ]"
223
+ end
224
+ when nil
225
+ nil
226
+ when Symbol
227
+ ":#{obj}"
228
+ when Hash
229
+ "#{obj.map {|k,v| ":#{k} => #{to_option_string(v)}" unless v == obj }.compact.join(",\n")}"
230
+ else
231
+ "#{obj}"
232
+ end
233
+ end
234
+
235
+ end
236
+
237
+ end
@@ -0,0 +1,42 @@
1
+ =begin rdoc
2
+ DependencyResolver
3
+
4
+ This acts as the interface between PoolParty's dependency tree
5
+ and the dependency providers. To add a new DependencyResolver,
6
+ overload this class with the appropriate calls
7
+ =end
8
+ module PoolParty
9
+ class DependencyResolver
10
+
11
+ attr_reader :properties_hash, :the_cloud
12
+
13
+ def initialize(hsh, contxt=nil)
14
+ raise DependencyResolverException.new('must pass a hash') if hsh.nil? || !(hsh.instance_of?(OrderedHash) || hsh.instance_of?(Hash))
15
+ @properties_hash = hsh
16
+ @the_cloud = contxt
17
+ end
18
+
19
+ # Compile the clouds properties_hash into the format required by the dependency resolver
20
+ # This methods should be overwritten by the supclassed methods
21
+ def compile()
22
+ raise "Not Implemented"
23
+ end
24
+
25
+ def self.compile(hsh, contxt=nil)
26
+ new(hsh, contxt).compile
27
+ end
28
+
29
+ def self.permitted_resource_options(rules={})
30
+ @permitted_resource_options ||= rules
31
+ end
32
+
33
+ def permitted_resource_options
34
+ self.class.permitted_resource_options
35
+ end
36
+
37
+ def tf(count)
38
+ "\t" * count
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,29 @@
1
+ =begin rdoc
2
+ Cloud extensions for the DependencyResolver
3
+ =end
4
+
5
+ module PoolParty
6
+ # Take the cloud dependency tree
7
+ module DependencyResolverCloudExtensions
8
+ def to_properties_hash
9
+ oh = {}
10
+ oh[:options] = options.merge(:cloud_name => name)
11
+ oh[:resources] = ordered_resources.map {|a| a.to_properties_hash }
12
+ # oh[:resources] = resources.keys.inject(OrderedHash.new) do |sum,k|
13
+ # sum.merge(k.to_sym => resources[k].map {|a| a.to_properties_hash } )
14
+ # end
15
+ # oh[:services] = services.keys.inject(OrderedHash.new) do |sum,k|
16
+ # sum.merge(k.to_sym => services[k].map {|a| a.to_properties_hash } )
17
+ # end
18
+ oh
19
+ end
20
+
21
+ end
22
+
23
+ # Adds the to_properties_hash method on top of resources, the lowest level
24
+ module DependencyResolverResourceExtensions
25
+ def to_properties_hash
26
+ {:pp_type => self.class.to_s.top_level_class}.merge!(options)
27
+ end
28
+ end
29
+ end
@@ -1,11 +1,11 @@
1
1
  module PoolParty
2
- module Resources
3
- class Resource
4
- def self.resource_string_name(n, key)
5
- "#{n.to_s.sanitize.capitalize}['#{key}']"
6
- end
7
- end
8
- end
2
+ # module Resources
3
+ # class Resource
4
+ # def self.resource_string_name(n, key)
5
+ # "#{n.to_s.sanitize.capitalize}['#{key}']"
6
+ # end
7
+ # end
8
+ # end
9
9
 
10
10
  module DependencyResolutions
11
11
  module Puppet
@@ -25,12 +25,14 @@ module PoolParty
25
25
  # Generic to_s
26
26
  # Most Resources won't need to extend this
27
27
  def to_string(pre="")
28
- opts = get_modified_options
28
+ return "" if printed?
29
+ opts = options #get_modified_options
30
+
29
31
  returning Array.new do |output|
30
32
  unless cancelled?
31
33
  output << @prestring || ""
32
34
 
33
- if resources && !resources.empty?
35
+ if resources && !resources.empty?
34
36
  output << resources_string_from_resources(resources, pre)
35
37
  end
36
38
 
@@ -39,32 +41,35 @@ module PoolParty
39
41
  output << opts.flush_out("#{pre*2}").join(",\n")
40
42
  output << "#{pre}}"
41
43
  end
42
-
44
+
45
+ printed
43
46
  output << @poststring || ""
44
47
  end
45
48
  end.join("\n")
46
49
  end
47
-
48
- def resources_string_from_resources(res, pre="\t")
49
- @variables = res.extract! {|name,resource| name == :variable}
50
-
51
- returning Array.new do |str|
52
- unless @variables.empty?
53
- str << "\n# Variables"
54
- @variables.each do |name, variable|
55
- str << variable.to_string("#{pre}")
56
- end
57
- end
58
50
 
59
- res.reject do |type, resource|
60
- str << resource.to_string("#{pre*2}")
61
- end
62
- end.join("\n")
63
- end
51
+ #TODO: deprecated
52
+ # def resources_string_from_resources(res, pre="\t")
53
+ # return nil if res.keys == [:classpackage] && res.size == 1
54
+ # @variables = res.extract! {|name,resource| name == :variable}
55
+ #
56
+ # returning Array.new do |str|
57
+ # unless @variables.empty?
58
+ # str << "\n# Variables"
59
+ # @variables.each do |name, variable|
60
+ # str << variable.to_string("#{pre}")
61
+ # end
62
+ # end
63
+ #
64
+ # res.reject do |type, resource|
65
+ # str << resource.to_string("#{pre*2}")
66
+ # end
67
+ # end.join("\n")
68
+ # end
64
69
 
65
- def to_s
66
- self.class.resource_string_name(class_type_name.capitalize, key)
67
- end
70
+ # def to_s
71
+ # self.class.resource_string_name(class_type_name.capitalize, key)
72
+ # end
68
73
  end
69
74
  end
70
75
  end
@@ -0,0 +1,188 @@
1
+ # Class: PuppetResolver< DependencyResolver
2
+ #
3
+ #
4
+ module PoolParty
5
+
6
+ class PuppetResolver< DependencyResolver
7
+
8
+ permitted_resource_options({
9
+ :global => [:require, :name],
10
+ :file => [:content, :mode, :user],
11
+ :exec => [:command, :path, :refreshonly]
12
+ })
13
+
14
+ def initialize(hsh=nil)
15
+ super(hsh)
16
+ end
17
+
18
+ def self.compile(props)
19
+ "class poolparty {
20
+ #{new(props).compile}
21
+ }"
22
+ end
23
+
24
+ def compile(props=@properties_hash, tabs=0)
25
+ resources_to_string(props[:resources],tabs)
26
+ end
27
+
28
+ def options_to_string(opts,tabs=0)
29
+ opts.map do |k,v|
30
+ res = to_option_string(v)
31
+ next unless res && !res.empty?
32
+ "#{tf(tabs)}$#{k} = #{res}"
33
+ end.join("\n") if opts
34
+ end
35
+
36
+ def resources_to_string(opts,tabs=0)
37
+ out = []
38
+ if opts
39
+ if opts.has_key?(:variable)
40
+ vars = opts.delete(:variable)
41
+ out << vars.map do |res, arr|
42
+ handle_print_resource(res, :variable, tabs)
43
+ end
44
+ end
45
+
46
+ out << opts.map do |type, arr|
47
+ arr.map do |res|
48
+ handle_print_resource(res, type, tabs)
49
+ end
50
+ end
51
+ end
52
+ out.join("\n")
53
+ end
54
+
55
+ def resources_to_string(opts,tabs=0)
56
+ out = []
57
+ out << opts.map do |resource|
58
+ case ty = resource.delete(:pp_type)
59
+ when "variable"
60
+ handle_print_variable(resource[:name], resource[:value], :variable)
61
+ when "plugin"
62
+ handle_print_service(resource.delete(:name), resource, tabs)
63
+ else
64
+ real_name = resource[:name]
65
+ handle_print_resource(resource, ty.to_sym, tabs)
66
+ end
67
+ end
68
+ out.join("\n")
69
+ end
70
+
71
+
72
+ def permitted_option?(ty, key)
73
+ true
74
+ # if permitted_resource_options.has_key?(ty)
75
+ # permitted_resource_options[ty].include?(key) || true #permitted_resource_options[:global].include?(key)
76
+ # else
77
+ # true
78
+ # end
79
+ end
80
+
81
+ def hash_flush_out(hash, pre="", post="")
82
+ setup_hash_for_output(hash).map do |k,v|
83
+ hash.empty? ? nil : "#{pre}#{k} => #{v}#{post}"
84
+ end
85
+ end
86
+
87
+ def setup_hash_for_output(hsh)
88
+ ty = hsh.delete(:klasstype)
89
+ if hsh.has_key?(:ensures)
90
+ hsh.delete(:ensures)
91
+ hsh[:ensure] = case ty.to_s
92
+ when "directory"
93
+ "directory"
94
+ when "symlink"
95
+ hsh[:source]
96
+ else
97
+ "present"
98
+ end
99
+ end
100
+ new_hsh ={}
101
+ hsh.each do |k,v|
102
+ new_hsh.merge!({k => to_option_string(v)})
103
+ end
104
+ new_hsh
105
+ end
106
+
107
+ def to_option_string(obj)
108
+ case obj
109
+ when PoolParty::Resources::Resource
110
+ case obj
111
+ when PoolParty::Resources::Directory
112
+ "File[\"#{obj.name}\"]"
113
+ else
114
+ "#{obj.class.to_s.top_level_class.capitalize}[\"#{obj.name}\"]"
115
+ end
116
+ when Fixnum
117
+ "#{obj}"
118
+ when String
119
+ obj = obj
120
+ obj =~ /generate\(/ ? "#{obj}" : "\"#{obj.safe_quote}\""
121
+ when Array
122
+ "[ #{obj.map {|e| to_option_string(e) }.reject {|a| a.nil? || a.empty? }.join(", ")} ]"
123
+ else
124
+ "#{obj}"
125
+ end
126
+ end
127
+
128
+ def handle_print_service(klassname, plugin, tabs)
129
+ case klassname.to_s
130
+ when "conditional"
131
+ # "#{tf(tabs)}case $#{klasshash[:options][:variable]} {#{klasshash[:services][:control_statements].map do |k,v|"\n#{tf(tabs+1)}#{k} : {#{compile(v.to_properties_hash, tabs+2)}#{tf(tabs+1)}\n#{tf(tabs)}}" end}}"
132
+ #
133
+ # str = ""
134
+ # plugin.each do |klasshash|
135
+ # # str << "\n#{tf(tabs+1)}#{compile(hsh,tabs+1)}"
136
+ # str << "#{tf(tabs)}case $#{klasshash[:options][:variable]} {"
137
+ # str << "#{klasshash[:services][:control_statements].map do |k,v|"\n#{tf(tabs+1)}#{k} : {#{compile(v.to_properties_hash, tabs+2)}#{tf(tabs+1)}\n#{tf(tabs)}}" end}"
138
+ # end
139
+ # str << "#{tf(tabs)}}"
140
+ # deprecated conditional
141
+
142
+ else
143
+ kname = klassname.to_s.gsub(/pool_party_/, '').gsub(/_class/, '')
144
+ str = "\n#{tf(tabs)}# #{kname}\n"
145
+ str << "#{tf(tabs)}class #{kname} {"
146
+ str << "\n#{tf(tabs+1)}#{compile(plugin,tabs+1)}"
147
+ str << "#{tf(tabs)}} include #{kname}"
148
+ end
149
+ end
150
+
151
+ def handle_print_variable(name, value, tabs)
152
+ "$#{name} = #{to_option_string(value)}"
153
+ end
154
+
155
+ def handle_print_resource(res, type, tabs)
156
+ case type.to_s
157
+ when "line_in_file"
158
+ "#{tf(tabs)}exec { \"#{res[:file]}_line_#{tabs}\": \n#{tf(tabs+1)}command => '#{PoolParty::Resources::LineInFile.command(res[:line], res[:file])}',\n#{tf(tabs+1)}path => '/usr/local/bin:$PATH'\n#{tf(tabs)}}"
159
+ else
160
+ klasstype = case type.to_s
161
+ when "directory"
162
+ "file"
163
+ when "symlink"
164
+ "file"
165
+ else
166
+ type
167
+ end
168
+ res.merge!(:klasstype => type.to_s)
169
+ "#{tf(tabs)}#{klasstype} { \"#{res.delete(:name) }\": #{res.empty? ? "" : "\n#{tf(tabs+1)}#{hash_flush_out(res.reject {|k,v| !permitted_option?(type, k) }).reject {|s| s.nil? }.join(",\n#{tf(tabs+1)}")}"}\n#{tf(tabs)}}"
170
+ end
171
+ end
172
+
173
+ # This is the method we use to turn the options into a string to build the main
174
+ # puppet manifests
175
+ def option_type(ns=[])
176
+ a_template = (self =~ /template/) == 0
177
+ a_service = self =~ /^[A-Z][a-zA-Z]*\[[a-zA-Z0-9\-\.\"\'_\$\{\}\/]*\]/i
178
+ a_function = self =~/(.)*\((.)*\)(.)*/
179
+ if is_a?(PoolParty::Resources::Resource)
180
+ self.to_s
181
+ else
182
+ (a_service || a_template || a_function) ? self : "'#{self}'"
183
+ end
184
+ end
185
+
186
+ end
187
+
188
+ end
@@ -1,10 +1,10 @@
1
1
  class MasterException < Exception
2
- EXCEPTION_MESSAGES = {
2
+ @messages = {
3
3
  :no_ip => "Master does not have an ip or has not been launched"
4
4
  }
5
5
  attr_reader :message
6
6
 
7
7
  def initialize(type=:no_ip, note="")
8
- @message = "Master Exception: #{EXCEPTION_MESSAGES[type]} #{note}"
8
+ @message = "Master Exception: #{@messages[type]} #{note}"
9
9
  end
10
10
  end
@@ -3,7 +3,7 @@ class RemoteException < Exception
3
3
  :method_not_defined => "Method is not defined",
4
4
  :invalid_formatting => "Invalid formatting",
5
5
  :could_not_install => "Could not install"
6
- }
6
+ } unless const_defined?("EXCEPTION_MESSAGES")
7
7
  attr_reader :message
8
8
 
9
9
  def initialize(type=:method_not_defined, note="")
@@ -0,0 +1,5 @@
1
+ class DependencyResolverException < Exception
2
+ def initialize(msg="Compile Error")
3
+ @message = "Dependency resolver error: #{msg}"
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ class PackageException < Exception
2
+ attr_reader :message
3
+
4
+ def initialize(msg="Package error")
5
+ @message = "Package error: #{msg}"
6
+ end
7
+ end
@@ -1,31 +1,31 @@
1
+ #TODO: Reimplement
1
2
  module PoolParty
2
3
  module Extra
3
- class Deployments
4
+ class Deployments
4
5
 
5
- class << self
6
-
7
- def include_deployment(filename)
6
+ def self.include_deployment(filename)
8
7
  return nil unless ::File.file? filename
9
8
  name = ::File.basename(filename, ::File.extname(filename))
10
9
  contents = open(filename).read
11
10
 
12
11
  plugin_klass = PoolParty::PluginModel::PluginModel.new(name)
13
- plugin_klass.klass.class_eval <<-EOE
12
+ plugin_klass.class_eval <<-EOE
14
13
  def enable
14
+ puts "Called enable"
15
15
  #{contents}
16
16
  end
17
17
  EOE
18
18
  plugin_klass
19
19
  end
20
20
 
21
- def include_deployments(dir)
21
+ def self.include_deployments(dir)
22
22
  return nil unless ::File.directory? dir
23
23
  Dir["#{dir}/*"].each do |fi|
24
24
  include_deployment fi
25
25
  end
26
26
  dir
27
27
  end
28
- end
28
+
29
29
  end
30
30
  end
31
31
  end