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,7 +6,10 @@ reset!
6
6
 
7
7
  describe "Console" do
8
8
  before(:each) do
9
- ::File.stub!(:readable?).with("pop").and_return true
9
+ ::File.stub!(:readable?).and_return true
10
+ Dir.stub!(:pwd).and_return "/flop"
11
+ Dir.stub!(:[]).and_return []
12
+ Dir.stub!(:[]).with("/flop/*/*.rb").and_return ["clouds.rb"]
10
13
  end
11
14
  describe "load_pool" do
12
15
  before(:each) do
@@ -14,38 +17,22 @@ describe "Console" do
14
17
  @string =<<-EOS
15
18
  pool :app do
16
19
  maximum_instances 2
17
- cloud :rawr do
20
+ cloud :rawr do
21
+ maximum_instances 200
18
22
  end
19
23
  end
20
24
  EOS
21
25
  self.stub!(:open).and_return @string
22
26
  @string.stub!(:read).and_return @string
27
+ ::File.stub!(:readable?).with(@string).and_return true
23
28
  end
24
29
  it "should give you the load_pool method" do
25
30
  self.respond_to?(:load_pool).should == true
26
31
  end
27
32
  it "should call script inflate on the filename" do
28
- PoolParty::Script.should_receive(:inflate).once
33
+ PoolParty::Pool::Pool.should_receive(:load_from_file).and_return "wee"
29
34
  load_pool("pop")
30
35
  end
31
- describe "calling" do
32
- before(:each) do
33
- reset!
34
- load_pool("pop")
35
- end
36
- it "should instance_eval the string" do
37
- pool(:app).should_not be_nil
38
- end
39
- it "should store the cloud inside the pool after inflating" do
40
- pool(:app).cloud(:rawr).should_not be_nil
41
- end
42
- it "should say that the cloud inside the pool's parent is the containing parent" do
43
- pool(:app).cloud(:rawr).parent.should == pool(:app)
44
- end
45
- it "should say that the maximum_instances on the cloud is the containing pool's option" do
46
- pool(:app).cloud(:rawr).maximum_instances.should == 2
47
- end
48
- end
49
36
  end
50
37
  describe "reload!" do
51
38
  before(:each) do
@@ -65,6 +52,7 @@ describe "Console" do
65
52
  ::File.stub!(:readable?).with(@filename).and_return true
66
53
  @filename.stub!(:read).and_return "spec contents"
67
54
  self.stub!(:open).with(@filename).and_return @filename
55
+ Binary.stub!(:get_existing_spec_location).and_return @filename
68
56
  end
69
57
  it "should call readable on the string sent in to load_pool" do
70
58
  lambda {
@@ -73,7 +61,7 @@ describe "Console" do
73
61
  }
74
62
  end
75
63
  it "should call inflate from Script with the poolspec" do
76
- PoolParty::Script.should_receive(:inflate).with("spec contents", "myspec.spec")
64
+ PoolParty::Pool::Pool.should_receive(:load_from_file).with("myspec.spec").and_return true
77
65
  load_pool(@filename)
78
66
  end
79
67
  end
@@ -89,13 +77,7 @@ describe "Console" do
89
77
  EOS
90
78
  self.stub!(:open).and_return @string
91
79
  @string.stub!(:read).and_return @string
92
- load_pool("pop")
80
+ PoolParty::Pool::Pool.new(:dummy).instance_eval @string
93
81
  end
94
- it "should be able to print the clouds" do
95
- pools.should_not be_empty
96
- hide_output do
97
- pool_describe.should == pools.size
98
- end
99
82
  end
100
- end
101
83
  end
@@ -23,9 +23,26 @@ describe "Array" do
23
23
  @array.to_os
24
24
  end
25
25
  end
26
- describe "to_option_string" do
27
- it "should map the to_option_strings in an array of strings" do
28
- ["hi", "be"].to_option_string.should == "[ 'hi', 'be' ]"
26
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
27
+
28
+ describe "select_with_hash" do
29
+ before(:all) do
30
+ @remote_instances_list =[
31
+ {:status=>'running', :ip=>'10'},
32
+ {:status => 'pending', :ip=>'not.assigned'},
33
+ {:status=>'running', :ip=>'192', :bogus=>nil}
34
+ ]
35
+ end
36
+ it "should return the selected array" do
37
+ @remote_instances_list.select_with_hash( {:status => 'running'}).size.should == 2
38
+ @remote_instances_list.select_with_hash( {:ip => 'not.assigned'}).should == [{:status => 'pending', :ip=>'not.assigned'},]
39
+ @remote_instances_list.select_with_hash( {:bogus => nil}).size.should == 1
40
+ end
41
+ it "should not raise an error if element does not have key" do
42
+ @remote_instances_list.select_with_hash( {:snot => 'runny'}).size.should == 0
43
+ end
44
+ it "should return all the instances if there are no values passed in" do
45
+ @remote_instances_list.select_with_hash.should == @remote_instances_list
29
46
  end
30
47
  end
31
48
  end
@@ -24,42 +24,44 @@ describe "Hash" do
24
24
  it "should be able to turn itself into an open struct with the method to_hash on the object" do
25
25
  @a.to_os.to_hash.should == @a
26
26
  end
27
- it "should not put quotes around integers" do
28
- {:a => 10, :b => "q"}.flush_out.sort.should == ["a => 10", "b => 'q'"]
29
- end
30
- it "should be able to flush out into a string into an array" do
31
- @a.flush_out.sort.should == ["a => '10'","b => '20'","c => '30'"]
32
- end
33
- it "should be able to flush out with pre and posts" do
34
- @a.flush_out("hi", "ho").sort.should == ["hia => '10'ho","hib => '20'ho","hic => '30'ho"]
35
- end
36
- describe "select" do
37
- before(:each) do
38
- @selected_hash = @a.select {|k,v| k if k == :a}
39
- end
40
- it "should return a hash when selecting" do
41
- @selected_hash.class.should == Hash
27
+ describe "method_missing" do
28
+ it "should be able to call a key on the hash as a method" do
29
+ {:first_name => "bob", :last_name => "frank"}.first_name.should == "bob"
42
30
  end
43
- it "should only have the key a (selected)" do
44
- @selected_hash.keys.should == [:a]
31
+ it "should return nil if there is no key set in the hash" do
32
+ lambda {{:first_name => "bob", :last_name => "frank"}.neighbor}.should raise_error
45
33
  end
46
34
  end
47
- describe "extract!" do
35
+ describe "choose" do
48
36
  before(:each) do
49
- @rejected_hash = @a.extract! {|k,v| k == :a }
50
- end
51
- it "should have a reject with the keys" do
52
- @rejected_hash.keys.should == [:a]
37
+ @selected_hash = @a.choose {|k,v| k if k == :a}
53
38
  end
54
- it "should return the old array with the other keys" do
55
- @a.keys.sort.should == [:b, :c]
39
+ it "should return a hash when choosing" do
40
+ @selected_hash.class.should == Hash
56
41
  end
57
- it "should not throw a fit with an empty hash" do
58
- lambda {
59
- {}.extract!
60
- }.should_not raise_error
42
+ it "should only have the key a (choos)" do
43
+ @selected_hash.keys.should == [:a]
61
44
  end
62
45
  end
46
+ #TODO: deprecate
47
+ # describe "extract!" do
48
+ # before(:each) do
49
+ # @rejected_hash = @a.extract! {|k,v| k == :a }
50
+ # end
51
+ # it "should have a reject with the keys" do
52
+ # @rejected_hash.keys.should == [:a]
53
+ # end
54
+ # it "should return the old array with the other keys" do
55
+ # @a.keys.sort.should == [:b, :c]
56
+ # end
57
+ # it "should not throw a fit with an empty hash" do
58
+ # {}.extract!
59
+ # lambda {
60
+ # {}.extract!
61
+ # }.should_not raise_error
62
+ # end
63
+ # end
64
+
63
65
  describe "append" do
64
66
  before(:each) do
65
67
  @hash = {:game => "token", :required => "for_play"}
@@ -42,8 +42,7 @@ describe "Object" do
42
42
  describe "running" do
43
43
  before(:each) do
44
44
  Class.stub!(:default_options).and_return({})
45
- Class.send :include, Configurable
46
- Class.send :include, MethodMissingSugar
45
+ Class.send :include, Dslify
47
46
  @a = Class.new
48
47
  @b = Class.new
49
48
 
@@ -59,7 +58,7 @@ describe "Object" do
59
58
  describe "contextual running" do
60
59
  before(:each) do
61
60
  @obj.stub!(:default_options).and_return {}
62
- @a = @obj.run_in_context { @a = "hello world" }
61
+ @a = @obj.instance_eval { @a = "hello world" }
63
62
  end
64
63
  it "should have the method meta_eval" do
65
64
  @obj.respond_to?(:meta_eval).should == true
@@ -0,0 +1,48 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "Ordered Hash" do
4
+ before(:each) do
5
+ @oh = OrderedHash.new
6
+ @oh["var1"] = 10
7
+ @oh["var2"] = 2
8
+ @oh[:var3] = 3
9
+ @oh["var4"] = 4
10
+ end
11
+ it "should stay in order in enumeration (keys)" do
12
+ @oh.collect {|k,v| k }.should == ["var1", "var2", :var3, "var4"]
13
+ end
14
+ it "should stay in order in enumeration (values)" do
15
+ @oh.collect {|k,v| v }.should == [10,2,3,4]
16
+ end
17
+ it "should be able to be pulled out with the hash convention" do
18
+ @oh['var1'].should == 10
19
+ @oh['var2'].should == 2
20
+ @oh[:var3].should == 3
21
+ @oh["var4"].should == 4
22
+ end
23
+ it "should retain order in a merge" do
24
+ @oh.merge!(:var5 => 5)
25
+ @oh.collect {|k,v| v }.should == [10,2,3,4,5]
26
+ end
27
+ it "should retain order in a non-descructive merge" do
28
+ @oh = @oh.merge(:var5 => 5)
29
+ @oh.collect {|k,v| v }.should == [10,2,3,4,5]
30
+ end
31
+ it "should keep the keys in order too!" do
32
+ @oh.keys.should == ["var1", "var2", :var3, "var4"]
33
+ end
34
+ it "should have values method" do
35
+ @oh.values.should === [10,2,3,4]
36
+ end
37
+ it "should to_json" do
38
+ @oh[:arr] = [1,2,3]
39
+ @oh.to_json.should == "{\"var1\":10,\"var2\":2,\"var3\":3,\"var4\":4,\"arr\":[1,2,3]}"
40
+ end
41
+ it "PoolParty Key" do
42
+ @oh[:key] = [Key.new, Key.new('path/to/nowhere')]
43
+ expected=<<JSO
44
+ {\"var1\":10,\"var2\":2,\"var3\":3,\"var4\":4,\"key\":[{\"basename\":\"id_rsa\",\"full_filepath\": \"/etc/poolparty/id_rsa\"},{\"basename\":\"path/to/nowhere\",\"full_filepath\": \"/etc/poolparty/path/to/nowhere\"}]}
45
+ JSO
46
+ @oh.to_json.should == expected.strip
47
+ end
48
+ end
@@ -119,33 +119,7 @@ listen web_proxy 127.0.0.1:3000
119
119
  "file".camelcase.should == "File"
120
120
  end
121
121
  end
122
- describe "to_option_string" do
123
- it "should not touch a string, but return the string with single quotes" do
124
- "rocks".to_option_string.should == "'rocks'"
125
- end
126
- it "should return a string of the format Service[nagios] with no single quotes" do
127
- "Service[nagios]".to_option_string.should == "Service[nagios]"
128
- end
129
- it "should also return a string if there is a string within the string" do
130
- 'Package["heartbeat-2"]'.to_option_string.should == 'Package["heartbeat-2"]'
131
- end
132
- it "should return File['/etc/apache2/conf.d/base.conf'] as a string" do
133
- 'File["/etc/apache2/conf.d/base.conf"]'.to_option_string.should == "File[\"/etc/apache2/conf.d/base.conf\"]"
134
- end
135
- it "should turn a resource into a requires file" do
136
- @cloud = cloud :app do
137
- file(:name => "franke")
138
- end
139
- @file = @cloud.resource(:file).first
140
- @file.to_option_string.should == "File['franke']"
141
- end
142
- it "should turn a function into a string without quotes" do
143
- "active_nodes()".to_option_string.should == "active_nodes()"
144
- end
145
- it "should turna function into a string outsid ethe quotes with a parameter" do
146
- "active_nodes(10)".to_option_string.should == "active_nodes(10)"
147
- end
148
- end
122
+
149
123
  describe "sanitize" do
150
124
  it "should remove the periods from the string" do
151
125
  "xnot.org".sanitize.should == "xnotorg"
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ include PoolParty
4
+ describe "Dependencies" do
5
+ it "should have a method called dedependencies" do
6
+ Dependencies.respond_to?(:dependencies).should == true
7
+ end
8
+ it "should have a package(file) method" do
9
+ Dependencies.respond_to?(:package).should == true
10
+ end
11
+ end
@@ -0,0 +1,107 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "ChefResolver" do
4
+ before :all do
5
+ reset!
6
+ @cloud_reference_hash = {
7
+ :options => {:name => "dog", :keypair => "bob", :users => ["ari", "michael"]},
8
+ :resources => [
9
+ {:name => "/etc/motd", :content => "Welcome to the cloud", :pp_type => "file"},
10
+ {:name => "/etc/profile", :content => "profile info", :pp_type => "file"},
11
+ {:name => "/var/www", :pp_type => "directory"}
12
+ ],
13
+ :services => {
14
+ :apache => [{
15
+ :options => {:listen => "8080"},
16
+ :resources => [
17
+ {:name => "/etc/apache2/apache2.conf", :pp_type => "file", :template => "/absolute/path/to/template", :content => "rendered template string"}
18
+ ],
19
+ :services => {}
20
+ }]
21
+ }
22
+ }
23
+ end
24
+
25
+ it "throw an exception if not given a hash" do
26
+ pending # odd error with should raise_error
27
+ # lambda { PoolParty::ChefResolver.compile }.should raise_error
28
+ end
29
+ it "accept a hash" do
30
+ lambda { PoolParty::ChefResolver.compile(@cloud_reference_hash)}.should_not raise_error
31
+ end
32
+
33
+ describe "when passed a valid cloud hash" do
34
+
35
+ before(:all) do
36
+ @dr = ChefResolver.new(@cloud_reference_hash)
37
+ @compiled = @dr.compile
38
+ end
39
+
40
+ # describe "variables" do
41
+ # it "output options as Chef variables" do
42
+ # @compiled.should match(/bob/)
43
+ # @compiled.instance_of?(String).should == true
44
+ # @compiled.should match(/\$users = \[ \".* \]/)
45
+ # end
46
+ # end
47
+
48
+ describe "resources" do
49
+ it "should print resources in the proper layout" do
50
+ @compiled.should =~ /template "\/etc\/motd" do/
51
+ end
52
+ end
53
+
54
+ describe "services" do
55
+ it "should print apache into a class definition" do
56
+ # puts "<pre>#{@compiled.to_yaml}</pre>"
57
+ # @compiled.should =~ /class apache \{/
58
+ pending
59
+ end
60
+ end
61
+
62
+ end
63
+
64
+ describe "with a cloud" do
65
+ before(:each) do
66
+ class ChefResolverSpec
67
+ plugin :apache do
68
+ end
69
+ end
70
+ @cloud = cloud :hope do
71
+ keypair "bob"
72
+ has_file :name => "/etc/motd", :content => "Welcome to the cloud"
73
+ has_file :name => "/etc/profile", :content => "profile info"
74
+ has_directory :name => "/var/www"
75
+ has_file :name => "/var/www/index.html", :content => "profile info", :requires => get_directory("/var/www")
76
+ # has_package :name => "bash"
77
+ # parent == cloud
78
+ apache do
79
+ # parent == apache
80
+ listen "8080"
81
+ has_file :name => "/etc/apache2/apache2.conf", :template => "#{::File.dirname(__FILE__)}/../fixtures/test_template.erb", :friends => "bob"
82
+ has_exec :command => "ls /etc/apache2"
83
+ end
84
+ end
85
+ @properties = @cloud.to_properties_hash
86
+
87
+ # puts "<pre>#{@cloud_reference_hash.to_yaml}\n\n#{@properties.to_yaml}</pre>"
88
+ @dr = ChefResolver.new(@properties)
89
+ @compiled = @dr.compile
90
+ # puts "---\n#{@compiled}"
91
+ end
92
+ it "should compile to a string" do
93
+ # puts "<pre>#{@compiled.to_yaml}</pre>"
94
+ @compiled.class.should == String
95
+ end
96
+ it "should include apache class" do
97
+ @compiled.should =~ /# apache/
98
+ end
99
+ it "should require the file to have the directory (written as file)" do
100
+ @compiled.should =~ /directory \"\/var\/www\" do/
101
+ end
102
+ after(:all) do
103
+ # ::FileUtils.rm_rf "/tmp/poolparty/dr_configure/"
104
+ end
105
+ end
106
+
107
+ end
@@ -0,0 +1,122 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ class DependencyResolverCloudExtensionsSpecBase < PoolParty::PoolPartyBaseClass
4
+ include Dslify
5
+ end
6
+
7
+ # files, directories, etc...
8
+ class DependencyResolverSpecTestResource
9
+ include Dslify
10
+ include PoolParty::DependencyResolverResourceExtensions
11
+ end
12
+
13
+ # plugins, base_packages
14
+ class DependencyResolverSpecTestService < DependencyResolverCloudExtensionsSpecBase
15
+
16
+ end
17
+
18
+ # clouds, duh
19
+ class DependencyResolverSpecTestCloud < DependencyResolverCloudExtensionsSpecBase
20
+ end
21
+
22
+ class JunkClassForDefiningPlugin
23
+ plugin :apache_plugin do
24
+ def loaded(o={},&block)
25
+ end
26
+ end
27
+ end
28
+
29
+ describe "Resolution spec" do
30
+ before(:each) do
31
+ @apache_file = DependencyResolverSpecTestResource.new
32
+ @apache_file.name "/etc/apache2/apache2.conf"
33
+ @apache_file.template "/absolute/path/to/template"
34
+ @apache_file.content "rendered template string"
35
+
36
+ @apache = DependencyResolverSpecTestService.new :apache_file
37
+ @apache.listen "8080"
38
+ @apache.resources[:file] = []
39
+ @apache.resources[:file] << @apache_file
40
+
41
+ @cloud = DependencyResolverSpecTestCloud.new :cloud
42
+ @cloud.keypair "bob"
43
+ @cloud.name "dog"
44
+
45
+ (@cloud.resources[:apache] ||= []) << @apache
46
+
47
+ @cloud_file_motd = DependencyResolverSpecTestResource.new
48
+ @cloud_file_motd.name "/etc/motd"
49
+ @cloud_file_motd.content "Welcome to the cloud"
50
+
51
+ @cloud_file_profile = DependencyResolverSpecTestResource.new
52
+ @cloud_file_profile.name "/etc/profile"
53
+ @cloud_file_profile.content "profile info"
54
+
55
+ @cloud.resources[:file] = []
56
+ @cloud.resources[:file] << @cloud_file_motd
57
+ @cloud.resources[:file] << @cloud_file_profile
58
+
59
+ @cloud_directory_var_www = DependencyResolverSpecTestResource.new
60
+ @cloud_directory_var_www.name "/var/www"
61
+
62
+ @cloud.resources[:directory] = []
63
+ @cloud.resources[:directory] << @cloud_directory_var_www
64
+ end
65
+ it "be able to call to_properties_hash" do
66
+ @cloud.respond_to?(:to_properties_hash).should == true
67
+ end
68
+ describe "to_properties_hash" do
69
+ it "should output a hash" do
70
+ @cloud.to_properties_hash.class.should == Hash
71
+ end
72
+ it "should have resources on the cloud as an array of hashes" do
73
+ @cloud.to_properties_hash[:resources].class.should == Array
74
+ end
75
+ end
76
+
77
+ describe "defined cloud" do
78
+ before(:each) do
79
+ reset!
80
+ ::File.stub!(:basename).and_return "template"
81
+ @file = "Hello <%= friends %> on port <%= listen %>"
82
+ @file.stub!(:read).and_return @file
83
+ Template.stub!(:open).and_return @file
84
+
85
+ cloud :dog_for_test do
86
+ keypair "bob"
87
+ has_file :name => "/etc/motd", :content => "Welcome to the cloud"
88
+ has_file :name => "/etc/profile", :content => "profile info"
89
+ has_directory :name => "/var/www"
90
+ has_package :name => "bash"
91
+ # parent == nil
92
+ apache_plugin do
93
+ # parent == TestClass
94
+ # puts "<pre>#{parent}</pre> on <pre>#{context_stack.map {|a| a.class }.join(", ")} from #{self.class}</pre>"
95
+ listen "8080"
96
+ has_file :name => "/etc/apache2/apache2.conf", :template => "/absolute/path/to/template", :friends => "bob", :render_as => :erb
97
+ end
98
+ end
99
+ @cloud = clouds[:dog_for_test]
100
+ @properties = @cloud.to_properties_hash
101
+ @apache_key = @properties[:resources].select {|hsh| hsh[:name] =~ /apache/ }.first
102
+ end
103
+
104
+ it "should have the method to_properties_hash on the cloud" do
105
+ @cloud.respond_to?(:to_properties_hash).should == true
106
+ end
107
+ it "should have resources on the cloud as an array of hashes" do
108
+ # puts "<pre>#{cloud(:dog).to_properties_hash.to_yaml}</pre>"
109
+ @properties[:resources].class.should == Array
110
+ end
111
+ it "contain content in the template's hash" do
112
+ @apache_key.resources.select_with_hash(:pp_type => "file").last[:content].should == "Hello bob on port 8080"
113
+ end
114
+ it "contain the files in a hash" do
115
+ # puts "<pre>#{@properties.to_yaml}</pre>"
116
+ @properties[:resources].select {|a| a[:name] == "/etc/motd" }.first.nil?.should == false
117
+ end
118
+ it "contain the directory named /var/www" do
119
+ @properties[:resources].select {|a| a[:name] == "/var/www" }.first.nil?.should == false
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,16 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "Resolution spec" do
4
+ before(:each) do
5
+ @dr = DependencyResolver.new({})
6
+ DependencyResolver.stub!(:new).and_return @dr
7
+ end
8
+
9
+ it "should have a tree_hash associated with the resolver" do
10
+ @dr.properties_hash.should == {}
11
+ end
12
+ it "runs compile on a new object when calling compile on the class" do
13
+ @dr.should_receive(:compile)
14
+ DependencyResolver.compile(hash)
15
+ end
16
+ end
@@ -0,0 +1,121 @@
1
+ # MOVED TO A TEST
2
+ # require File.dirname(__FILE__) + '/../spec_helper'
3
+ #
4
+ # describe "PuppetResolver" do
5
+ # before :all do
6
+ # reset!
7
+ # @cloud_reference_hash = {
8
+ # :options => {:name => "dog", :keypair => "bob", :users => ["ari", "michael"]},
9
+ # :resources => [
10
+ # {:name => "/etc/motd", :content => "Welcome to the cloud", :pp_type => "file"},
11
+ # {:name => "/etc/profile", :content => "profile info", :pp_type => "file"},
12
+ # {:name => "/var/www", :pp_type => "directory"}
13
+ # ],
14
+ # :services => {
15
+ # :apache => [{
16
+ # :options => {:listen => "8080"},
17
+ # :resources => [
18
+ # {:name => "/etc/apache2/apache2.conf", :pp_type => "file", :template => "/absolute/path/to/template", :content => "rendered template string"}
19
+ # ],
20
+ # :services => {}
21
+ # }]
22
+ # }
23
+ # }
24
+ # end
25
+ #
26
+ # it "throw an exception if not given a hash" do
27
+ # pending # odd error with should raise_error
28
+ # # lambda { PoolParty::PuppetResolver.compile }.should raise_error
29
+ # end
30
+ # it "accept a hash" do
31
+ # lambda { PoolParty::PuppetResolver.compile(@cloud_reference_hash)}.should_not raise_error
32
+ # end
33
+ #
34
+ # describe "when passed a valid cloud hash" do
35
+ #
36
+ # before(:all) do
37
+ # reset!
38
+ # @dr = PuppetResolver.new(@cloud_reference_hash)
39
+ # @compiled = @dr.compile
40
+ # end
41
+ #
42
+ # # describe "variables" do
43
+ # # it "output options as puppet variables" do
44
+ # # @compiled.should match(/bob/)
45
+ # # @compiled.instance_of?(String).should == true
46
+ # # @compiled.should match(/\$users = \[ \".* \]/)
47
+ # # end
48
+ # # end
49
+ #
50
+ # describe "resources" do
51
+ # it "should print resources in the proper layout" do
52
+ # @compiled.should =~ /file \{ "\/etc\/motd"/
53
+ # end
54
+ # end
55
+ #
56
+ # describe "services" do
57
+ # it "should print apache into a class definition" do
58
+ # # puts "<pre>#{@compiled.to_yaml}</pre>"
59
+ # @compiled.should =~ /class apache \{/
60
+ # end
61
+ # end
62
+ #
63
+ # end
64
+ #
65
+ # describe "with a cloud" do
66
+ # before(:each) do
67
+ # class PuppetResolverSpec
68
+ # plugin :apache do
69
+ # end
70
+ # end
71
+ # # reset!
72
+ # @cloud = cloud :hope do
73
+ # keypair "bob"
74
+ # has_file :name => "/etc/motd", :content => "Welcome to the cloud"
75
+ # has_file :name => "/etc/profile", :content => "profile info"
76
+ #
77
+ # has_directory :name => "/var/www"
78
+ # has_file :name => "/var/www/index.html", :content => "profile info", :requires => get_directory("/var/www")
79
+ #
80
+ # dependency_resolver "puppet"
81
+ # # has_package :name => "bash"
82
+ # # parent == cloud
83
+ # apache do
84
+ # # parent == apache
85
+ # listen "8080"
86
+ # has_file :name => "/etc/apache2/apache2.conf", :template => "#{::File.dirname(__FILE__)}/../fixtures/test_template.erb", :friends => "bob"
87
+ # has_exec :command => "ls /etc/apache2"
88
+ # end
89
+ #
90
+ # case_of "hostname" do
91
+ # when_is 'master' do
92
+ # has_package :name=>'haproxy'
93
+ # end
94
+ # end
95
+ # end
96
+ # @properties = @cloud.to_properties_hash
97
+ #
98
+ # # puts "<pre>#{@cloud_reference_hash.to_yaml}\n\n#{@properties}</pre>"
99
+ # @dr = PuppetResolver.new(@properties)
100
+ # @compiled = @dr.compile
101
+ # end
102
+ # it "should compile to a string" do
103
+ # # puts "<pre>#{@compiled.to_yaml}</pre>"
104
+ # @compiled.class.should == String
105
+ # end
106
+ # it "should include apache class" do
107
+ # @compiled.should =~ /class apache \{/
108
+ # end
109
+ # it "should include the case statement" do
110
+ # @compiled.should =~ /case \$hostname \{/
111
+ # @compiled.should =~ /master : \{/
112
+ # end
113
+ # it "should require the file to have the directory (written as file)" do
114
+ # @compiled.should =~ /require => File\[\"\/var\/www\"\]/
115
+ # end
116
+ # it "should ensure file" do
117
+ # @compiled.should =~ /ensure => "present"/
118
+ # end
119
+ # end
120
+ #
121
+ # end