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
@@ -6,9 +6,7 @@ require File.dirname(__FILE__) + '/test_plugins/webserver'
6
6
 
7
7
  class MyResource < PoolParty::Resources::Resource
8
8
  # Just to give some options for the test class
9
- def options(h={})
10
- @options ||= {:a => 1,:b => 2,:c => 3}
11
- end
9
+ default_options(:a => 1,:b => 2,:c => 3)
12
10
  end
13
11
  describe "Resource" do
14
12
  before(:each) do
@@ -29,17 +27,12 @@ describe "Resource" do
29
27
  it "should not wipe out the rest of the default options" do
30
28
  @resource.c.should == 3
31
29
  end
32
- describe "to_s" do
33
- it "should be able to coalesce the instances" do
34
- @resource.to_string.should =~ /resource \{/
35
- end
36
- end
37
30
  describe "class methods" do
38
31
  it "should have an array of available resources" do
39
32
  PoolParty::Resources::Resource.available_resources.class.should == Array
40
33
  end
41
34
  it "should not be empty" do
42
- PoolParty::Resources::Resource.available_resources.should_not be_empty
35
+ PoolParty::Resources::Resource.available_resources.empty?.should == false
43
36
  end
44
37
  end
45
38
  describe "instance methods" do
@@ -63,344 +56,151 @@ describe "Resource" do
63
56
  @resource.respond_to?(:ensures).should == true
64
57
  end
65
58
  it "should push the option ensure onto the options" do
66
- @resource.options.has_key?(:ensure).should == false
67
- @resource.ensures("nibbles")
68
- @resource.options.has_key?(:ensure).should == true
59
+ @resource.options.has_key?(:ensures).should == false
60
+ @resource.ensures :absent
61
+ @resource.options.has_key?(:ensures).should == true
69
62
  end
70
63
  it "should write the option ensures as present with is_present" do
71
- @resource.options.has_key?(:ensure).should == false
64
+ @resource.options.has_key?(:ensures).should == false
72
65
  @resource.is_present
73
- @resource.options[:ensure].should == "present"
66
+ @resource.options.has_key?(:ensures).should == true
74
67
  end
75
68
  it "should write the option ensures as absent with is_absent" do
76
- @resource.options.has_key?(:ensure).should == false
69
+ @resource.options.has_key?(:ensures).should == false
77
70
  @resource.is_absent
78
- @resource.options[:ensure].should == "absent"
71
+ @resource.options.has_key?(:ensures).should == true
79
72
  end
80
73
  it "should write the option unless for ifnot" do
81
74
  @resource.options.has_key?(:unless).should == false
82
75
  @resource.ifnot "str"
83
76
  @resource.options[:unless].should == "str"
84
77
  end
85
- describe "templating" do
86
- before(:each) do
87
- FileUtils.stub!(:cp).and_return true
88
- end
89
- it "should have the method template" do
90
- @resource.respond_to?(:template).should == true
91
- end
92
- it "should raise an exception if no file is given" do
93
- lambda {
94
- @resource.template
95
- }.should raise_error
96
- end
97
- it "should raise an excepton if the file cannot be found" do
98
- lambda {
99
- @resource.template("radar")
100
- }.should raise_error
101
- end
102
- it "should not raise an exception if there is a file passed and the file is found" do
103
- File.should_receive(:file?).with("radar").and_return true
104
- lambda {
105
- @resource.template("radar")
106
- }.should_not raise_error
107
- end
108
- # it "should push the template option on to the options" do
109
- # File.stub!(:file?).with("radar").and_return true
110
- # @resource.options.has_key?(:template).should == false
111
- # @resource.template("radar")
112
- # @resource.options.has_key?(:template).should == true
113
- # end
114
- end
115
78
  end
116
79
  describe "command" do
117
- include PoolParty::Resources
118
80
  before(:each) do
119
- @cloud = cloud :command_cloud do; end
81
+ @tc = TestBaseClass.new do
82
+ has_file(:name => "frank")
83
+ end
84
+ @cloud = @tc
120
85
  end
121
86
  describe "add_resource" do
122
87
  it "should call add_resource when creating using the command: file" do
123
- @cloud.should_receive(:add_resource).with(:file, {:name => "frank"}, @cloud)
88
+ @cloud.should_receive(:add_resource).with(:file, {:name => "frank"})
124
89
  @cloud.instance_eval do
125
- file(:name => "frank")
90
+ __file(:name => "frank")
126
91
  end
127
92
  end
128
93
  it "should return a resource when the resource does not exist" do
129
- file(:name => "/etc/frank.txt").class.should == PoolParty::Resources::File
94
+ @cloud.resource(:file).first.class.should == PoolParty::Resources::File
130
95
  end
131
96
  it "should return a resource when the resource does exist" do
132
- file(:name => "frank")
133
- file(:name => "frank").class.should == PoolParty::Resources::File
97
+ @cloud.instance_eval do
98
+ resources[:file] = nil
99
+ has_file({:name => "frank"})
100
+ end
101
+ @cloud.resource(:file).first.class.should == PoolParty::Resources::File
134
102
  end
135
103
  end
136
104
  it "should create the new 'resource' as a resource" do
137
- resource(:file).class.should == Array
138
- end
139
- it "should receive << when adding a new one" do
140
- resource(:file).should_receive(:<<).once
141
- has_file({:name => "pop"})
105
+ @tc.resource(:file).class.should == Array
142
106
  end
143
107
  it "should contain 3 instances after calling resource 3 times" do
144
- file({:name => "red"})
145
- file({:name => "hot"})
146
- file({:name => "summer"})
147
- resource(:file).size.should == 3
108
+ @cloud.instance_eval do
109
+ resources[:file] = nil
110
+ has_file({:name => "red"})
111
+ has_file({:name => "hot"})
112
+ has_file({:name => "summer"})
113
+ end
114
+ @tc.resource(:file).size.should == 3
148
115
  end
149
116
  describe "adding" do
150
117
  before(:each) do
151
- @a = file({:name => "red"})
152
- @b = file({:name => "hot"})
153
- @c = file({:name => "summer"})
118
+ @cloud.instance_eval do
119
+ resources[:file] = nil
120
+ has_file({:name => "red"})
121
+ has_file({:name => "hot"})
122
+ has_file({:name => "summer"})
123
+ end
154
124
  end
155
125
  it "should contain file named with 'red'" do
156
- get_resource(:file, "red").nil?.should == false
126
+ @cloud.get_resource(:file, "red").nil?.should == false
157
127
  end
158
128
  end
159
129
  describe "method_missing" do
160
130
  before(:each) do
161
- file({:name => "red"})
162
- file({:name => "hot"})
163
- file({:name => "summer"})
131
+ @cloud.instance_eval do
132
+ resources[:file] = nil
133
+ has_file({:name => "red"})
134
+ has_file({:name => "hot"})
135
+ has_file({:name => "summer"})
136
+ end
164
137
  end
165
138
  it "should be able to pick out methods with the phrase has_" do
166
139
  lambda {
167
- has_file
140
+ @cloud.instance_eval do
141
+ has_file({:name => "summer"})
142
+ end
168
143
  }.should_not raise_error
169
144
  end
170
- it "should not have a method prepended with crabs_" do
171
- lambda {
172
- crabs_file
173
- }.should raise_error
174
- end
175
145
  it "should pick out methods with the phrase does_not_" do
176
146
  lambda {
177
- does_not_have_file({:name => "red"})
147
+ @cloud.instance_eval do
148
+ does_not_have_file({:name => "summer"})
149
+ end
178
150
  }.should_not raise_error
179
151
  end
180
- it "should set the has_file to present ensure" do
181
- has_file({:name => "redface"})
182
- resource(:file).get_named("redface").first.options[:ensure].should == "present"
183
- end
184
- it "should set the does_not_have_file to absent ensure" do
185
- does_not_have_file({:name => "net"})
186
- resource(:file).get_named("net").first.options[:ensure].should == "absent"
187
- end
188
- it "should be able to have_service as well" do
189
- has_service({:name => "apache"})
190
- resource(:service).get_named("apache").first.options[:ensure].should == "running"
191
- end
192
152
  end
193
153
  describe "get_resource" do
194
154
  before(:each) do
195
- reset_resources!
196
- @cloud_get_resource = cloud :get_resource do
197
- file(:name => "red")
198
- file(:name => "hot")
199
- file(:name => "tamales")
155
+ @tc.instance_eval do
156
+ resources[:file] = nil
157
+ has_file(:name => "red")
158
+ has_file(:name => "hot")
159
+ has_file(:name => "tamales")
200
160
  end
201
161
  end
202
162
  it "should return a type of resource when looking for a resource that exists" do
203
- @cloud_get_resource.get_resource(:file, "hot").class.should == PoolParty::Resources::File
163
+ @tc.get_resource(:file, "hot").class.should == PoolParty::Resources::File
204
164
  end
205
165
  it "should return the resource of the name requested" do
206
- @cloud_get_resource.get_resource(:file, "hot").name.should == "hot"
166
+ @tc.get_resource(:file, "hot").name.should == "hot"
207
167
  end
208
168
  it "should return nil if the resource requested is not there" do
209
- @cloud_get_resource.get_resource(:file, "smarties").should be_nil
169
+ @tc.get_resource(:file, "smarties").nil?.should == true
210
170
  end
211
171
  it "should not have created any more resources" do
212
- @cloud_get_resource.resource(:file).size.should == 3
213
- end
214
- end
215
- describe "parent" do
216
- before(:each) do
217
- @cloud = cloud :orange do
218
- tangerine "orange"
219
- file(:name => "file.txt")
220
- end
221
- @file = @cloud.resources[:file].first
222
- end
223
- it "should take the options of the parent" do
224
- @file.parent.tangerine.should_not == nil
225
- end
226
- it "should set the option as the same from the parent" do
227
- @file.parent.tangerine.should == "orange"
172
+ @tc.resource(:file).size.should == 3
228
173
  end
229
174
  end
230
175
  describe "appending to resource" do
231
176
  before(:each) do
232
- @cloud1 = cloud :apples do
233
- directory(:name => "/var/www") do
234
- file(:name => "/var/www/file.html")
177
+ @tc = TestBaseClass.new do
178
+ has_directory(:name => "/var/www") do
179
+ has_file(:name => "/var/www/file.html")
235
180
  end
236
181
  end
237
- @dir = @cloud1.get_resource(:directory, "/var/www")
238
- @file = @dir.get_resource(:file, "/var/www/file.html")
182
+ @dir = @tc.resource(:directory).first
183
+ @file = @tc.resource(:file).first
239
184
  end
240
185
  it "should say there is 1 resource because the lower-level resources should be contained on the parenting resource" do
241
- @cloud1.resources.size.should == 1
242
- end
243
- it "should set the exec to notify apache2" do
244
- has_service("apache2")
245
- has_exec(:name => "reload-page", :notify => get_service("apache2"))
246
- resource(:exec).get_named("reload-page").first.options[:notify].to_s.should == "Service['apache2']"
186
+ @tc.resources.size.should == 2
247
187
  end
248
188
  it "should say there is one resource on the outer resource" do
249
- @dir.resources.size.should == 1
189
+ @dir.resources.size.should == 2
250
190
  end
251
191
  it "should contain the file as a resource" do
252
- @dir.resource(:file)[0].to_s.should == @file.to_s
253
- end
254
- it "should set the parent as the parenting resource" do
255
- @file.parent.to_s.should == @dir.to_s
256
- end
257
- end
258
- describe "handle_option_value" do
259
- it "should turn a string into a hash with the string as the key name" do
260
- handle_option_values("vat of cats").should == {:name => "vat of cats"}
261
- end
262
- it "should not change a hash into anything" do
263
- handle_option_values({:name => "poe"}).should == {:name => "poe"}
192
+ @dir.resource(:file)[0].class.should == PoolParty::Resources::File
264
193
  end
265
194
  end
266
195
  describe "fetching" do
267
196
  before(:each) do
268
- @file = file(:name => "pancakes")
269
- end
270
- it "should not create a new resource if the same resource exists" do
271
- PoolParty::Resources::File.should_not_receive(:new)
272
- file(:name => "pancakes")
273
- end
274
- it "should return the file preiously created" do
275
- get_resource(:file, "pancakes").options.keys.sort.should == @file.options.keys.sort
276
- end
277
- it "should be able to use the helper to grab the file" do
278
- PoolParty::Resources::File.should_not_receive(:new)
279
- self.stub!(:key).and_return "false"
280
- file(:name => "pancakes").name.should == @file.name
281
- end
282
- it "should turn the resource into a string" do
283
- @file.to_s.should == "File['pancakes']"
284
- end
285
- describe "cancelled" do
286
- it "should make a resource not cancelled by default" do
287
- @file.cancelled?.should == false
288
- end
289
- it "should say cancelled? is true if it has been cancelled" do
290
- @file.cancel
291
- @file.cancelled?.should == true
292
- end
293
- it "should be able to get the file from the helper" do
294
- get_file("pancakes").options.keys.sort.should == @file.options.keys.sort
295
- end
296
- end
297
- describe "virtual_resources" do
298
- before(:each) do
299
- @virtual_resource = git(:at => "/var/paint/cans", :name => "tank", :source => "git://github.com/auser/testgit.git")
300
- end
301
- it "should fetch a virtual resource the same" do
302
- git(:at => "/var/paint/cans", :name => "tank", :source => "git://github.com/auser/testgit.git").to_s.should == @virtual_resource.to_s
197
+ @tc = TestBaseClass.new do
198
+ has_file(:name => "pancakes")
303
199
  end
200
+ @file = @tc.resource(:file).first
304
201
  end
305
- end
306
- describe "global resources" do
307
- describe "setting" do
308
- before(:each) do
309
- @cloud2 = cloud :applepie do
310
- directory(:name => "/var/www") do
311
- file(:name => "/var/www/file.html")
312
- end
313
- end
314
- @cloud2 = cloud(:applepie)
315
- end
316
- it "should have a global_resources_store available as an Array" do
317
- @cloud2.global_resources_store.class.should == Array
318
- end
319
- it "should have stored the two resources from the cloud into the global_resources_store" do
320
- @cloud2.global_resources_store.size.should >= 2
321
- end
322
- it "should be an array of resources" do
323
- @cloud2.global_resources_store.first.is_a?(PoolParty::Resources::Resource).should == true
324
- end
325
- it "should say that the type directory of name /var/www is in the global_resources_store" do
326
- @cloud2.in_global_resource_store?(:directory, "/var/www").should == true
327
- end
328
- it "should say that the type file of the name /var/www/file.html is in the global_resources_store" do
329
- @cloud2.in_global_resource_store?(:file, "/var/www/file.html").should == true
330
- end
331
- it "should say tht the type exec of the name echo 'hello' is not in the global_resources_store" do
332
- @cloud2.in_global_resource_store?(:exec, "echo 'hello'").should == false
333
- end
334
- it "should say that the resource is in the global_resources_store when put in the global_resources_store" do
335
- @file1 = PoolParty::Resources::File.new(:name => "/var/tmp.txt")
336
- @cloud2.store_into_global_resource_store(@file1)
337
- @cloud2.in_global_resource_store?(:file, "/var/tmp.txt")
338
- end
339
- it "should put the resource into the global_resources_store when calling store_into_global_resource_store" do
340
- @file2 = PoolParty::Resources::File.new({:name => "/var/bunk.txt"})
341
- @cloud2.global_resources_store.should_receive(:<<).with(@file2)
342
- @cloud2.store_into_global_resource_store(@file2)
343
- end
344
- it "should not put a resource into the global_resources_store if it's already there" do
345
- @file3 = PoolParty::Resources::File.new({:name => "/var/www/file.html"})
346
- @cloud2.global_resources_store.should_not_receive(:<<).with(@file3)
347
- @cloud2.store_into_global_resource_store(@file3)
348
- end
349
- it "should be able to get the resource from the global_resources_store by the name and type" do
350
- @cloud2.get_from_global_resource_store(:directory, "/var/www").key.should == "/var/www"
351
- end
352
- describe "adding to global resource store" do
353
- before(:each) do
354
- @cloud3 = cloud :pumpkinpie do
355
- file(:name => "/var/www/pumpkinfile.html")
356
- file(:name => "/var/www/pumpkinfile.html")
357
- apache do
358
- file(:name => "/var/www/pumpkinfile.html")
359
- end
360
- end
361
- @cloud3 = cloud(:pumpkinpie)
362
- end
363
- it "should not have 2 of the same resources" do
364
- @cloud3.resource(:file).size.should == 1
365
- end
366
- end
367
- describe "grabbing after already instantiated" do
368
- before(:each) do
369
- @cloud2.instance_eval do
370
- has_package(:name => "apache2") do
371
- has_exec(:name => "Add apache2 module") do
372
- command "a2enmod mpm_worker"
373
- end
374
- end
375
- has_package(:name => "boxers") do
376
- has_file(:name => "/var/list_of_boxers.txt", :requires => (get_package("apache2")) )
377
- end
378
- end
379
- end
380
- describe "same_resources_of" do
381
- it "should say that two resources are the same" do
382
- has_file(:name => "tanks")
383
- has_file(:name => "tanks").same_resources_of(:file, "tanks").should == true
384
- end
385
- it "should say that two resources are the same regardless of their context" do
386
- @cloud2.instance_eval do
387
- has_file(:name => "mighty_mighty_bosstones")
388
- end
389
- @cloud2.resource(:file).first.same_resources_of(:file, "mighty_mighty_bosstones").should == true
390
- end
391
- it "should say that two resources are not the same if they are not the same" do
392
- has_file(:name => "trees").same_resources_of(:file, "timber").should == false
393
- end
394
- end
395
- it "should grab the resource when called in in a block"# do
396
- # @cloud2.resources_string_from_resources(@cloud2.resources).should =~ /\[ Package\['apache2'\], Package\['boxers'\] \]/
397
- # end
398
- end
399
- describe "inherited" do
400
- it "should turn passengersite_with_ssl into PassengerSiteWithSsl" do
401
- "PassengersiteWithSsl".to_s.split("::")[-1].underscore.should == "passengersite_with_ssl"
402
- end
403
- end
202
+ it "should return the file preiously created" do
203
+ @tc.resource(:file).first.options.keys.sort.should == @file.options.keys.sort
404
204
  end
405
205
  end
406
206
  end
@@ -4,7 +4,7 @@ include PoolParty::Resources
4
4
 
5
5
  describe "Script" do
6
6
  before(:each) do
7
- reset_resources!
7
+
8
8
  setup
9
9
  end
10
10
  describe "wrapped" do
@@ -14,59 +14,36 @@ describe "Script" do
14
14
  it "should have inflate_file as an instance method" do
15
15
  Script.respond_to?(:inflate_file).should == true
16
16
  end
17
- it "should have inflate as an instance method" do
18
- Script.new.respond_to?(:inflate).should == true
19
- end
20
17
 
21
18
  describe "with a script" do
22
- before(:each) do
23
- @script = 'script'
24
- @filename = 'filename'
25
-
26
- @pool = Script.new
27
- Script.stub!(:new).and_return(@pool)
28
- @pool.stub!(:inflate).and_return true
29
- end
30
-
31
- it "should create a new Script when calling on the class method" do
32
- Script.should_receive(:new).and_return @pool
33
- end
34
- it "should instance eval the script" do
35
- @pool.should_receive(:instance_eval).with(@script, @filename).and_return true
36
- end
37
- it "should call inflate on itself" do
38
- @pool.should_receive(:inflate).and_return true
39
- end
40
- after do
41
- Script.inflate(@script, @filename)
42
- end
43
- describe "save!" do
44
- before(:each) do
45
- reset!
46
- reset_resources!
47
- pool :appdotcomcoo do
48
- keypair "snoodle"
49
- ami "ami-123456"
50
-
51
- cloud :app do
52
- expand_when "cpu > 90", "memory > 80"
53
- contract_when "cpu < 10", "memory < 10"
54
-
55
- has_file :name => "/etc/httpd/httpd.conf"
56
- end
57
- end
58
- @saved = Script.save!(false)
59
- end
60
- it "should save the keypair" do
61
- @saved.should =~ /keypair 'snoodle'/
62
- end
63
- it "should save the ami" do
64
- @saved.should =~ /ami 'ami-123456'/
65
- end
66
- it "should save the expansions" do
67
- @saved.should =~ /expand_when 'cpu>90', 'memory>80'/
68
- end
69
- end
19
+ # describe "save!" do
20
+ # before(:each) do
21
+ # reset!
22
+ #
23
+ # pool :appdotcomcool do
24
+ # ami "ami-123456"
25
+ #
26
+ # cloud :app do
27
+ # expand_when "cpu > 90", "memory > 80"
28
+ # contract_when "cpu < 10", "memory < 10"
29
+ #
30
+ # has_file :name => "/etc/httpd/httpd.conf"
31
+ # end
32
+ # end
33
+ # @saved = Script.save!(false)
34
+ # end
35
+ # it "should save the full keypair" do
36
+ # @saved.should =~ /keypair ([\w -\/]+)+id_rsa'/
37
+ # end
38
+ # it "should save the ami" do
39
+ # @saved.should =~ /ami 'ami-123456'/
40
+ # end
41
+ # it "should save the expansions" do
42
+ # @saved.should =~ /expand_when 'cpu>90', 'memory>80'/
43
+ # end
44
+ # end
45
+ # NOT ENTIRELY CERTAIN THIS SHOULD WORK THE SAME WAY IT WORKED BEFORE
46
+ # AL
70
47
  end
71
48
  end
72
- end
49
+ end
@@ -0,0 +1,5 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "Service" do
4
+
5
+ end
@@ -0,0 +1,26 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "Template" do
4
+ describe "of string" do
5
+ before(:each) do
6
+ @template_string = "Hello <%= name %>"
7
+ end
8
+ it "should have a method compile on Template class" do
9
+ Template.respond_to?(:compile_string).should == true
10
+ end
11
+ it "should return rendered content" do
12
+ Template.compile_string(@template_string, {:name => "bob"}).should == "Hello bob"
13
+ end
14
+ end
15
+ describe "of file" do
16
+ before(:each) do
17
+ @template_file = ::File.dirname(__FILE__) + "/../fixtures/test_template.erb"
18
+ end
19
+ it "have the method compile_file on the Template class" do
20
+ Template.respond_to?(:compile_file).should == true
21
+ end
22
+ it "return the rendered content into a string" do
23
+ Template.compile_file(@template_file, {:friends => "bob"}).should == "Hello bob"
24
+ end
25
+ end
26
+ end
@@ -1,19 +1,20 @@
1
1
  class WebServers
2
- plugin :apache do
3
- include PoolParty::Resources
4
-
2
+ plugin :apachetest do
5
3
  attr_accessor :php
6
4
 
7
- def enable
5
+ def loaded(o={}, &block)
6
+ @loaded ||= true
7
+ end
8
+
9
+ def enable
8
10
  end
9
11
 
10
12
  def enable_php
11
13
  @php = true
12
- php
13
14
  end
14
15
 
15
16
  def php
16
- @php
17
+ @php ||= false
17
18
  end
18
19
 
19
20
  def site(name=:domain1, opts={})
@@ -24,24 +25,6 @@ class WebServers
24
25
  opts = {
25
26
  :document_root => opts[:document_root] || "/www/#{name}/"
26
27
  }
27
- call_function "virtual_host()"
28
- end
29
-
30
- custom_function <<-EOE
31
- define virtual_host($docroot, $ip, $order = 500, $ensure = "enabled") {
32
- $file = "/etc/sites-available/$name.conf"
33
- file { $file:
34
- content => template("virtual_host.erb"),
35
- notify => Service[apache]
36
- }
37
- file { "/etc/sites-enabled/$order-$name.conf":
38
- ensure => $ensure ? {
39
- enabled => $file,
40
- disabled => absent
41
- }
42
- }
43
- }
44
- EOE
45
-
28
+ end
46
29
  end
47
30
  end