poolparty 0.2.84 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (642) hide show
  1. data/History.txt +7 -0
  2. data/License.txt +1 -1
  3. data/PostInstall.txt +1 -1
  4. data/README.txt +13 -22
  5. data/Rakefile +26 -35
  6. data/VERSION.yml +4 -0
  7. data/bin/cloud +24 -3
  8. data/bin/cloud-bootstrap +31 -0
  9. data/bin/cloud-configure +36 -20
  10. data/bin/{pool-console → cloud-console} +0 -0
  11. data/bin/cloud-contract +7 -7
  12. data/bin/cloud-describe +28 -0
  13. data/bin/cloud-expand +13 -6
  14. data/bin/cloud-handle-load +3 -3
  15. data/bin/cloud-list +9 -14
  16. data/bin/cloud-osxcopy +6 -5
  17. data/bin/cloud-provision +17 -22
  18. data/bin/cloud-setup-dev +11 -11
  19. data/bin/cloud-show +28 -0
  20. data/bin/cloud-spec +2 -2
  21. data/bin/cloud-ssh +10 -3
  22. data/bin/cloud-start +21 -23
  23. data/bin/cloud-terminate +15 -7
  24. data/bin/cloud-verify +32 -0
  25. data/bin/install-poolparty +216 -0
  26. data/bin/server-butterfly +25 -0
  27. data/bin/server-cloud-elections +37 -0
  28. data/bin/server-ensure-provisioning +33 -0
  29. data/bin/server-get-load +9 -12
  30. data/bin/server-list-active +25 -12
  31. data/bin/server-manage-election +67 -0
  32. data/bin/server-monitor.ru +42 -0
  33. data/bin/server-query-agent +15 -0
  34. data/bin/server-rerun +1 -1
  35. data/bin/server-write-new-nodes +2 -2
  36. data/config/jeweler.rb +52 -0
  37. data/config/requirements.rb +1 -9
  38. data/examples/basic.rb +10 -10
  39. data/examples/deploy.rb +5 -0
  40. data/examples/fairchild.rb +28 -0
  41. data/examples/fairchild_chef.rb +19 -0
  42. data/examples/maize.rb +37 -0
  43. data/examples/paparazzi.conf.erb +21 -0
  44. data/generators/poolspec/poolspec_generator.rb +1 -9
  45. data/generators/poolspec/templates/pool_spec_template.erb +0 -1
  46. data/lib/poolparty/{aska/aska.rb → aska.rb} +19 -28
  47. data/lib/poolparty/base_packages/haproxy.rb +48 -31
  48. data/lib/poolparty/base_packages/heartbeat.rb +6 -62
  49. data/lib/poolparty/base_packages/poolparty.rb +5 -105
  50. data/lib/poolparty/base_packages/ruby.rb +4 -4
  51. data/lib/poolparty/base_packages/runit.rb +1 -1
  52. data/lib/poolparty/core/array.rb +21 -3
  53. data/lib/poolparty/core/hash.rb +45 -10
  54. data/lib/poolparty/core/kernel.rb +30 -8
  55. data/lib/poolparty/core/nil.rb +8 -0
  56. data/lib/poolparty/core/object.rb +34 -25
  57. data/lib/poolparty/core/ordered_hash.rb +99 -0
  58. data/lib/poolparty/core/string.rb +112 -15
  59. data/lib/poolparty/core/symbol.rb +10 -0
  60. data/lib/poolparty/dependencies.rb +49 -0
  61. data/lib/poolparty/dependency_resolver/chef_resolver.rb +237 -0
  62. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +42 -0
  63. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +29 -0
  64. data/lib/poolparty/{dependency_resolutions → dependency_resolver}/puppet.rb +34 -29
  65. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +188 -0
  66. data/lib/poolparty/exceptions/MasterException.rb +2 -2
  67. data/lib/poolparty/exceptions/RemoteException.rb +1 -1
  68. data/lib/poolparty/exceptions/dependency_resolver_exception.rb +5 -0
  69. data/lib/poolparty/exceptions/package_exception.rb +7 -0
  70. data/lib/poolparty/extra/deployments.rb +7 -7
  71. data/lib/poolparty/helpers/binary.rb +26 -32
  72. data/lib/poolparty/helpers/console.rb +1 -1
  73. data/lib/poolparty/helpers/display.rb +1 -5
  74. data/lib/poolparty/helpers/hash_printer.rb +44 -0
  75. data/lib/poolparty/helpers/loading.rb +4 -0
  76. data/lib/poolparty/helpers/optioner.rb +39 -25
  77. data/lib/poolparty/lite.rb +30 -0
  78. data/lib/poolparty/modules/callbacks.rb +44 -0
  79. data/lib/poolparty/modules/cloud_dsl.rb +38 -8
  80. data/lib/poolparty/modules/cloud_resourcer.rb +67 -97
  81. data/lib/poolparty/modules/daemonizable.rb +141 -0
  82. data/lib/poolparty/modules/definable_resource.rb +8 -14
  83. data/lib/poolparty/modules/file_writer.rb +25 -17
  84. data/lib/poolparty/modules/pinger.rb +28 -0
  85. data/lib/poolparty/modules/pretty_printer.rb +1 -1
  86. data/lib/poolparty/modules/resourcing_dsl.rb +55 -40
  87. data/lib/poolparty/modules/searchable_paths.rb +91 -0
  88. data/lib/poolparty/modules/thread_pool.rb +107 -106
  89. data/lib/poolparty/modules/user_helpers.rb +20 -0
  90. data/lib/poolparty/monitors/base_monitor.rb +18 -75
  91. data/lib/poolparty/monitors/monitor_rack.rb +123 -0
  92. data/lib/poolparty/monitors/monitors/favicon_monitor.rb +12 -0
  93. data/lib/poolparty/monitors/monitors/load_monitor.rb +9 -0
  94. data/lib/poolparty/monitors/monitors/memory_monitor.rb +9 -9
  95. data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +77 -0
  96. data/lib/poolparty/monitors/monitors/stats_monitor.rb +187 -0
  97. data/lib/poolparty/monitors/monitors/time_monitor.rb +15 -0
  98. data/lib/poolparty/net/init.rb +10 -0
  99. data/lib/poolparty/net/remote_bases.rb +20 -0
  100. data/lib/poolparty/net/remote_instance.rb +26 -44
  101. data/lib/poolparty/net/remoter/cloud_control.rb +24 -0
  102. data/lib/poolparty/net/remoter/connections.rb +172 -0
  103. data/lib/poolparty/net/remoter/interactive.rb +45 -0
  104. data/lib/poolparty/net/remoter_base.rb +116 -111
  105. data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +245 -0
  106. data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +53 -0
  107. data/lib/poolparty/net/{remote_bases → remoter_bases}/ec2/ec2_response_object.rb +2 -4
  108. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +12 -0
  109. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +33 -0
  110. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -0
  111. data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +158 -0
  112. data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +71 -0
  113. data/lib/poolparty/plugins/apache2/apache.rb +340 -0
  114. data/lib/poolparty/plugins/bind.rb +11 -0
  115. data/lib/poolparty/plugins/chef.rb +173 -0
  116. data/lib/poolparty/plugins/chef_deploy.rb +58 -0
  117. data/lib/poolparty/plugins/deploy_directory.rb +49 -0
  118. data/lib/poolparty/plugins/gem_package.rb +61 -0
  119. data/lib/poolparty/plugins/git.rb +41 -24
  120. data/lib/poolparty/plugins/line_in_file.rb +30 -0
  121. data/lib/poolparty/plugins/nanite.rb +41 -0
  122. data/lib/poolparty/plugins/rails_deploy.rb +76 -0
  123. data/lib/poolparty/plugins/svn.rb +56 -39
  124. data/lib/poolparty/poolparty/cloud.rb +137 -167
  125. data/lib/poolparty/poolparty/{base.rb → default.rb} +62 -25
  126. data/lib/poolparty/poolparty/key.rb +78 -0
  127. data/lib/poolparty/poolparty/loggable.rb +28 -27
  128. data/lib/poolparty/poolparty/neighborhoods.rb +102 -0
  129. data/lib/poolparty/poolparty/plugin.rb +53 -18
  130. data/lib/poolparty/poolparty/plugin_model.rb +20 -23
  131. data/lib/poolparty/poolparty/pool.rb +34 -26
  132. data/lib/poolparty/poolparty/poolparty_base_class.rb +190 -0
  133. data/lib/poolparty/poolparty/resource.rb +92 -178
  134. data/lib/poolparty/poolparty/script.rb +32 -20
  135. data/lib/poolparty/poolparty/service.rb +44 -0
  136. data/lib/poolparty/poolparty/template.rb +27 -0
  137. data/lib/poolparty/provision/boot_strapper.rb +164 -0
  138. data/lib/poolparty/provision/configurations/chef.rb +26 -0
  139. data/lib/poolparty/provision/configurations/puppet.rb +28 -0
  140. data/lib/poolparty/provision/dr_configure.rb +142 -0
  141. data/lib/poolparty/resources/cron.rb +51 -0
  142. data/lib/poolparty/resources/directory.rb +36 -0
  143. data/lib/poolparty/resources/exec.rb +47 -0
  144. data/lib/poolparty/resources/file.rb +73 -0
  145. data/lib/poolparty/resources/host.rb +37 -0
  146. data/lib/poolparty/resources/mount.rb +45 -0
  147. data/lib/poolparty/resources/package.rb +41 -0
  148. data/lib/poolparty/resources/remote_file.rb +52 -0
  149. data/lib/poolparty/resources/service.rb +41 -0
  150. data/lib/poolparty/resources/sshkey.rb +49 -0
  151. data/lib/poolparty/resources/symlink.rb +43 -0
  152. data/lib/poolparty/{poolparty/resources/remote_user.rb → resources/user.rb} +1 -5
  153. data/lib/poolparty/resources/variable.rb +34 -0
  154. data/lib/poolparty/resources.rb +42 -0
  155. data/lib/poolparty/schema.rb +79 -0
  156. data/lib/poolparty/templates/apache2/apache2.conf +14 -0
  157. data/lib/poolparty/templates/apache2/base.conf.erb +168 -0
  158. data/lib/poolparty/templates/apache2/browser_fixes.conf.erb +26 -0
  159. data/lib/poolparty/templates/apache2/debian.conf.erb +675 -0
  160. data/lib/poolparty/templates/apache2/default-site.conf.erb +41 -0
  161. data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +101 -0
  162. data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +42 -0
  163. data/lib/poolparty/templates/apache2/mime-extras.conf.erb +211 -0
  164. data/lib/poolparty/templates/apache2/mime-minimal.conf.erb +15 -0
  165. data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +20 -0
  166. data/lib/poolparty/templates/apache2/mpm-worker.erb +20 -0
  167. data/lib/poolparty/templates/apache2/passenger.conf.erb +20 -0
  168. data/lib/poolparty/templates/apache2/php.ini.erb +1253 -0
  169. data/lib/poolparty/templates/apache2/server-status.erb +19 -0
  170. data/lib/poolparty/templates/erlang_cookie_maker +6 -0
  171. data/lib/poolparty/templates/gemrc_template +11 -0
  172. data/lib/poolparty/templates/ha.cf +1 -1
  173. data/lib/poolparty/templates/haproxy.conf +29 -27
  174. data/lib/poolparty/templates/haresources +2 -2
  175. data/lib/poolparty/templates/monitor.ru +16 -0
  176. data/lib/poolparty/templates/php.ini.erb +1253 -0
  177. data/lib/poolparty/templates/puppet/add_puppet_to_hosts +6 -0
  178. data/lib/poolparty/templates/puppet/puppet.conf +2 -0
  179. data/lib/poolparty/templates/puppet/puppetrunner +14 -0
  180. data/lib/poolparty/templates/puppet/site.pp +4 -0
  181. data/lib/poolparty/templates/puppetrunner +11 -5
  182. data/lib/poolparty/verification/verifier_base.rb +17 -0
  183. data/lib/poolparty/verification/verifiers/http_match.rb +43 -0
  184. data/lib/poolparty/verification/verifiers/http_status.rb +59 -0
  185. data/lib/poolparty/verification/verifiers/ping.rb +34 -0
  186. data/lib/poolparty/verification/verify.rb +76 -0
  187. data/lib/poolparty.rb +76 -22
  188. data/lib/poolpartycl.rb +66 -1
  189. data/script/destroy +1 -1
  190. data/script/generate +1 -1
  191. data/spec/bin/bin_spec_helper.rb +7 -0
  192. data/spec/bin/fixtures/bin_cloud_for_test.rb +13 -0
  193. data/spec/bin/server-list-active_spec.rb +24 -0
  194. data/spec/poolparty/aska/aska_spec.rb +5 -5
  195. data/spec/poolparty/base_packages/haproxy_spec.rb +2 -8
  196. data/spec/poolparty/base_packages/heartbeat_spec.rb +3 -26
  197. data/spec/poolparty/bin/console_spec.rb +11 -29
  198. data/spec/poolparty/core/array_spec.rb +20 -3
  199. data/spec/poolparty/core/hash_spec.rb +30 -28
  200. data/spec/poolparty/core/object_spec.rb +2 -3
  201. data/spec/poolparty/core/ordered_hash_spec.rb +48 -0
  202. data/spec/poolparty/core/string_spec.rb +1 -27
  203. data/spec/poolparty/dependencies_spec.rb +11 -0
  204. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +107 -0
  205. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +122 -0
  206. data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +16 -0
  207. data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +121 -0
  208. data/spec/poolparty/extra/deployments_spec.rb +9 -5
  209. data/spec/poolparty/fixtures/clouds.json +128 -0
  210. data/spec/poolparty/fixtures/test_template.erb +1 -0
  211. data/spec/poolparty/helpers/binary_spec.rb +1 -1
  212. data/spec/poolparty/helpers/hash_printer_spec.rb +34 -0
  213. data/spec/poolparty/helpers/optioner_spec.rb +1 -1
  214. data/spec/poolparty/id_rsa +27 -0
  215. data/spec/poolparty/modules/cloud_resourcer_spec.rb +26 -111
  216. data/spec/poolparty/modules/definable_resource.rb +1 -1
  217. data/spec/poolparty/modules/file_writer_spec.rb +10 -4
  218. data/spec/poolparty/modules/searchable_paths_spec.rb +76 -0
  219. data/spec/poolparty/monitors/base_monitor_spec.rb +112 -111
  220. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +18 -16
  221. data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +48 -47
  222. data/spec/poolparty/net/remote_instance_spec.rb +9 -73
  223. data/spec/poolparty/net/remote_spec.rb +287 -310
  224. data/spec/poolparty/net/remoter_base_spec.rb +3 -56
  225. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +24 -0
  226. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +114 -0
  227. data/spec/poolparty/net/{remote_bases → remoter_bases}/ec2_spec.rb +51 -53
  228. data/spec/poolparty/net/remoter_spec.rb +96 -86
  229. data/spec/poolparty/plugins/chef_spec.rb +7 -0
  230. data/spec/poolparty/plugins/deploydirectory_spec.rb +51 -52
  231. data/spec/poolparty/plugins/git_spec.rb +16 -20
  232. data/spec/poolparty/plugins/line_spec.rb +14 -8
  233. data/spec/poolparty/poolparty/cloud_spec.rb +85 -183
  234. data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +3 -4
  235. data/spec/poolparty/poolparty/configurers/ruby_spec.rb +7 -23
  236. data/spec/poolparty/poolparty/{base_spec.rb → default_spec.rb} +44 -41
  237. data/spec/poolparty/poolparty/example_spec.rb +43 -11
  238. data/spec/poolparty/poolparty/key_spec.rb +42 -0
  239. data/spec/poolparty/poolparty/neighborhoods_spec.rb +65 -0
  240. data/spec/poolparty/poolparty/plugin_model_spec.rb +14 -24
  241. data/spec/poolparty/poolparty/plugin_spec.rb +25 -96
  242. data/spec/poolparty/poolparty/pool_spec.rb +3 -1
  243. data/spec/poolparty/poolparty/resource_spec.rb +70 -270
  244. data/spec/poolparty/poolparty/script_spec.rb +30 -53
  245. data/spec/poolparty/poolparty/service_spec.rb +5 -0
  246. data/spec/poolparty/poolparty/template_spec.rb +26 -0
  247. data/spec/poolparty/poolparty/test_plugins/webserver.rb +8 -25
  248. data/spec/poolparty/poolparty_base_class_spec.rb +84 -0
  249. data/spec/poolparty/poolparty_spec.rb +7 -4
  250. data/spec/poolparty/resources/cron_spec.rb +44 -0
  251. data/spec/poolparty/resources/directory_spec.rb +40 -0
  252. data/spec/poolparty/resources/exec_spec.rb +37 -0
  253. data/spec/poolparty/resources/file_spec.rb +64 -0
  254. data/spec/poolparty/resources/gem_spec.rb +7 -0
  255. data/spec/poolparty/resources/host_spec.rb +35 -0
  256. data/spec/poolparty/resources/package_spec.rb +26 -0
  257. data/spec/poolparty/resources/service_spec.rb +29 -0
  258. data/spec/poolparty/resources/sshkey_spec.rb +40 -0
  259. data/spec/poolparty/resources/symlink_spec.rb +29 -0
  260. data/spec/poolparty/resources/user_spec.rb +48 -0
  261. data/spec/poolparty/resources/variable_spec.rb +26 -0
  262. data/spec/poolparty/schema_spec.rb +53 -0
  263. data/spec/poolparty/spec_helper.rb +107 -23
  264. data/spec/poolparty/test_spec_helper.rb +13 -0
  265. data/tasks/development.rake +85 -69
  266. data/tasks/poolparty.rake +54 -0
  267. data/tasks/server.rake +41 -39
  268. data/tasks/spec.rake +35 -1
  269. data/test/fixtures/test_template.erb +1 -0
  270. data/test/poolparty/core/array_test.rb +21 -0
  271. data/test/poolparty/core/hash_test.rb +34 -0
  272. data/test/poolparty/core/string_test.rb +29 -0
  273. data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +90 -0
  274. data/test/poolparty/modules/callbacks_test.rb +40 -0
  275. data/test/poolparty/modules/cloud_dsl_test.rb +60 -0
  276. data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +54 -0
  277. data/test/poolparty/net/remoter_test.rb +14 -0
  278. data/test/poolparty/poolparty/neighborhood_test.rb +23 -0
  279. data/test/poolparty/poolparty/poolparty_base_class_test.rb +84 -0
  280. data/test/poolparty/poolparty/template_test.rb +31 -0
  281. data/test/poolparty/provision/boot_strapper_test.rb +6 -0
  282. data/test/poolparty/provision/dr_configure_test.rb +6 -0
  283. data/test/poolparty/verification/verify_test.rb +49 -0
  284. data/test/test_helper.rb +8 -2
  285. data/test/test_poolparty.rb +6 -5
  286. data/vendor/chef/apache2/README.rdoc +59 -0
  287. data/vendor/chef/apache2/attributes/apache.rb +72 -0
  288. data/vendor/chef/apache2/definitions/apache_module.rb +36 -0
  289. data/vendor/chef/apache2/definitions/apache_site.rb +36 -0
  290. data/vendor/chef/apache2/definitions/web_app.rb +45 -0
  291. data/vendor/chef/apache2/files/default/apache2_module_conf_generate.pl +41 -0
  292. data/vendor/chef/apache2/recipes/default.rb +132 -0
  293. data/vendor/chef/apache2/recipes/mod_alias.rb +20 -0
  294. data/vendor/chef/apache2/recipes/mod_auth_basic.rb +20 -0
  295. data/vendor/chef/apache2/recipes/mod_auth_digest.rb +20 -0
  296. data/vendor/chef/apache2/recipes/mod_authn_file.rb +20 -0
  297. data/vendor/chef/apache2/recipes/mod_authnz_ldap.rb +20 -0
  298. data/vendor/chef/apache2/recipes/mod_authz_default.rb +20 -0
  299. data/vendor/chef/apache2/recipes/mod_authz_groupfile.rb +20 -0
  300. data/vendor/chef/apache2/recipes/mod_authz_host.rb +20 -0
  301. data/vendor/chef/apache2/recipes/mod_authz_user.rb +20 -0
  302. data/vendor/chef/apache2/recipes/mod_autoindex.rb +20 -0
  303. data/vendor/chef/apache2/recipes/mod_cgi.rb +20 -0
  304. data/vendor/chef/apache2/recipes/mod_dav.rb +20 -0
  305. data/vendor/chef/apache2/recipes/mod_dav_svn.rb +20 -0
  306. data/vendor/chef/apache2/recipes/mod_deflate.rb +20 -0
  307. data/vendor/chef/apache2/recipes/mod_dir.rb +20 -0
  308. data/vendor/chef/apache2/recipes/mod_env.rb +20 -0
  309. data/vendor/chef/apache2/recipes/mod_expires.rb +20 -0
  310. data/vendor/chef/apache2/recipes/mod_fcgid.rb +35 -0
  311. data/vendor/chef/apache2/recipes/mod_headers.rb +20 -0
  312. data/vendor/chef/apache2/recipes/mod_ldap.rb +20 -0
  313. data/vendor/chef/apache2/recipes/mod_log_config.rb +20 -0
  314. data/vendor/chef/apache2/recipes/mod_mime.rb +20 -0
  315. data/vendor/chef/apache2/recipes/mod_negotiation.rb +20 -0
  316. data/vendor/chef/apache2/recipes/mod_php5.rb +27 -0
  317. data/vendor/chef/apache2/recipes/mod_proxy.rb +20 -0
  318. data/vendor/chef/apache2/recipes/mod_proxy_http.rb +20 -0
  319. data/vendor/chef/apache2/recipes/mod_python.rb +22 -0
  320. data/vendor/chef/apache2/recipes/mod_rewrite.rb +20 -0
  321. data/vendor/chef/apache2/recipes/mod_setenvif.rb +20 -0
  322. data/vendor/chef/apache2/recipes/mod_ssl.rb +20 -0
  323. data/vendor/chef/apache2/recipes/mod_status.rb +20 -0
  324. data/vendor/chef/apache2/templates/default/a2dismod.erb +22 -0
  325. data/vendor/chef/apache2/templates/default/a2dissite.erb +29 -0
  326. data/vendor/chef/apache2/templates/default/a2enmod.erb +37 -0
  327. data/vendor/chef/apache2/templates/default/a2ensite.erb +38 -0
  328. data/vendor/chef/apache2/templates/default/apache2.conf.erb +630 -0
  329. data/vendor/chef/apache2/templates/default/default-site.erb +45 -0
  330. data/vendor/chef/apache2/templates/default/port_apache.erb +2 -0
  331. data/vendor/chef/apache2/templates/default/ports.conf.erb +6 -0
  332. data/vendor/chef/apache2/templates/default/web_app.conf.erb +43 -0
  333. data/vendor/chef/chef-deploy/LICENSE +201 -0
  334. data/vendor/chef/chef-deploy/README.rdoc +24 -0
  335. data/vendor/chef/chef-deploy/Rakefile +57 -0
  336. data/vendor/chef/chef-deploy/TODO +4 -0
  337. data/vendor/chef/chef-deploy/lib/chef-deploy/cached_deploy.rb +230 -0
  338. data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +132 -0
  339. data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +98 -0
  340. data/vendor/chef/chef-deploy/lib/chef-deploy.rb +183 -0
  341. data/vendor/gems/butterfly/History.txt +4 -0
  342. data/vendor/gems/butterfly/PostInstall.txt +2 -0
  343. data/vendor/gems/butterfly/README.rdoc +48 -0
  344. data/vendor/gems/butterfly/Rakefile +62 -0
  345. data/vendor/gems/butterfly/VERSION.yml +4 -0
  346. data/vendor/gems/butterfly/bin/flutter +4 -0
  347. data/vendor/gems/butterfly/butterfly.gemspec +37 -0
  348. data/vendor/gems/butterfly/examples/config.ru +15 -0
  349. data/vendor/gems/butterfly/examples/my_app.rb +12 -0
  350. data/vendor/gems/butterfly/lib/butterfly.rb +14 -0
  351. data/vendor/gems/butterfly/lib/handler.rb +48 -0
  352. data/vendor/gems/butterfly/lib/request.rb +29 -0
  353. data/vendor/gems/butterfly/lib/response.rb +49 -0
  354. data/vendor/gems/butterfly/script/console +10 -0
  355. data/vendor/gems/butterfly/script/destroy +14 -0
  356. data/vendor/gems/butterfly/script/generate +14 -0
  357. data/vendor/gems/butterfly/test/test_adapter_base.rb +23 -0
  358. data/vendor/gems/butterfly/test/test_butterfly_request.rb +46 -0
  359. data/vendor/gems/butterfly/test/test_butterfly_response.rb +43 -0
  360. data/vendor/gems/butterfly/test/test_butterfly_server.rb +16 -0
  361. data/vendor/gems/butterfly/test/test_default.rb +12 -0
  362. data/vendor/gems/butterfly/test/test_helper.rb +6 -0
  363. data/vendor/gems/dslify/History.txt +4 -0
  364. data/vendor/gems/dslify/Manifest.txt +25 -0
  365. data/vendor/gems/dslify/PostInstall.txt +5 -0
  366. data/vendor/gems/dslify/README.txt +60 -0
  367. data/vendor/gems/dslify/Rakefile +56 -0
  368. data/{config → vendor/gems/dslify/config}/hoe.rb +12 -55
  369. data/vendor/gems/dslify/config/requirements.rb +15 -0
  370. data/vendor/gems/dslify/dslify.gemspec +40 -0
  371. data/vendor/gems/dslify/lib/dslify/dslify.rb +76 -0
  372. data/vendor/gems/dslify/lib/dslify/version.rb +10 -0
  373. data/vendor/gems/dslify/lib/dslify.rb +7 -0
  374. data/vendor/gems/dslify/script/console +10 -0
  375. data/vendor/gems/dslify/script/destroy +14 -0
  376. data/vendor/gems/dslify/script/generate +14 -0
  377. data/{script → vendor/gems/dslify/script}/txt2html +4 -4
  378. data/{setup.rb → vendor/gems/dslify/setup.rb} +3 -3
  379. data/{tasks → vendor/gems/dslify/tasks}/deployment.rake +4 -18
  380. data/vendor/gems/dslify/tasks/environment.rake +7 -0
  381. data/{tasks → vendor/gems/dslify/tasks}/website.rake +0 -0
  382. data/vendor/gems/dslify/test/test_dslify.rb +138 -0
  383. data/vendor/gems/dslify/website/index.html +86 -0
  384. data/vendor/gems/dslify/website/index.txt +83 -0
  385. data/{website → vendor/gems/dslify/website}/javascripts/rounded_corners_lite.inc.js +0 -0
  386. data/{website → vendor/gems/dslify/website}/stylesheets/screen.css +18 -27
  387. data/{website → vendor/gems/dslify/website}/template.html.erb +1 -2
  388. data/vendor/gems/parenting/History.txt +4 -0
  389. data/vendor/gems/parenting/Manifest.txt +14 -0
  390. data/vendor/gems/parenting/PostInstall.txt +2 -0
  391. data/vendor/gems/parenting/README.rdoc +47 -0
  392. data/vendor/gems/parenting/Rakefile +28 -0
  393. data/vendor/gems/parenting/lib/parenting/parenting.rb +61 -0
  394. data/vendor/gems/parenting/lib/parenting.rb +10 -0
  395. data/vendor/gems/parenting/parenting.gemspec +39 -0
  396. data/vendor/gems/parenting/script/console +10 -0
  397. data/vendor/gems/parenting/script/destroy +14 -0
  398. data/vendor/gems/parenting/script/generate +14 -0
  399. data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
  400. data/vendor/gems/parenting/test/test_helper.rb +5 -0
  401. data/vendor/gems/parenting/test/test_parenting.rb +117 -0
  402. data/vendor/gems/suitcase/LICENSE +20 -0
  403. data/vendor/gems/suitcase/README.rdoc +31 -0
  404. data/vendor/gems/suitcase/Rakefile +57 -0
  405. data/vendor/gems/suitcase/VERSION.yml +4 -0
  406. data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
  407. data/vendor/gems/suitcase/lib/suitcase/zipper.rb +119 -0
  408. data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
  409. data/vendor/gems/suitcase/suitcase.gemspec +32 -0
  410. data/vendor/gems/suitcase/test/suitcase_test.rb +102 -0
  411. data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
  412. data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
  413. data/vendor/gems/suitcase/test/test_helper.rb +12 -0
  414. metadata +370 -343
  415. data/Capfile +0 -1
  416. data/Manifest.txt +0 -414
  417. data/bin/cloud-add-keypair +0 -28
  418. data/bin/cloud-ensure-provisioning +0 -39
  419. data/bin/cloud-maintain +0 -30
  420. data/bin/cloud-refresh +0 -17
  421. data/bin/cloud-run +0 -18
  422. data/bin/cloud-stats +0 -17
  423. data/bin/messenger-get-current-nodes +0 -14
  424. data/bin/pool +0 -31
  425. data/bin/pool-describe +0 -8
  426. data/bin/pool-generate +0 -18
  427. data/bin/pool-init +0 -28
  428. data/bin/pool-list +0 -30
  429. data/bin/pool-start +0 -26
  430. data/bin/server-build-messenger +0 -27
  431. data/bin/server-clean-cert-for +0 -15
  432. data/bin/server-list-responding +0 -24
  433. data/bin/server-start-client +0 -29
  434. data/bin/server-start-master +0 -26
  435. data/bin/server-start-node +0 -32
  436. data/bin/server-stop-client +0 -3
  437. data/bin/server-stop-master +0 -3
  438. data/bin/server-stop-node +0 -3
  439. data/bin/server-update-hosts +0 -49
  440. data/lib/erlang/messenger/Emakefile +0 -1
  441. data/lib/erlang/messenger/Makefile +0 -15
  442. data/lib/erlang/messenger/README +0 -5
  443. data/lib/erlang/messenger/Rakefile +0 -72
  444. data/lib/erlang/messenger/control +0 -11
  445. data/lib/erlang/messenger/ebin/client.app +0 -19
  446. data/lib/erlang/messenger/ebin/client_app.beam +0 -0
  447. data/lib/erlang/messenger/ebin/client_server.beam +0 -0
  448. data/lib/erlang/messenger/ebin/erl_crash.dump +0 -10326
  449. data/lib/erlang/messenger/ebin/master.app +0 -19
  450. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  451. data/lib/erlang/messenger/ebin/node.app +0 -19
  452. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  453. data/lib/erlang/messenger/ebin/packager.app +0 -19
  454. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  455. data/lib/erlang/messenger/ebin/pm_client_old.beam +0 -0
  456. data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +0 -1
  457. data/lib/erlang/messenger/ebin/pm_client_supervisor.beam +0 -0
  458. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  459. data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
  460. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  461. data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
  462. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +0 -1
  463. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  464. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  465. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +0 -1
  466. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  467. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  468. data/lib/erlang/messenger/ebin/pm_spawner.beam +0 -0
  469. data/lib/erlang/messenger/ebin/pm_strings.beam +0 -0
  470. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  471. data/lib/erlang/messenger/include/defines.hrl +0 -27
  472. data/lib/erlang/messenger/lib/eunit/AUTHORS +0 -2
  473. data/lib/erlang/messenger/lib/eunit/CHANGELOG +0 -14
  474. data/lib/erlang/messenger/lib/eunit/COPYING +0 -504
  475. data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
  476. data/lib/erlang/messenger/lib/eunit/NOTES +0 -276
  477. data/lib/erlang/messenger/lib/eunit/README +0 -3
  478. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +0 -3
  479. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  480. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +0 -172
  481. data/lib/erlang/messenger/lib/eunit/doc/index.html +0 -17
  482. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +0 -12
  483. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +0 -984
  484. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +0 -980
  485. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +0 -11
  486. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +0 -55
  487. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  488. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  489. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +0 -21
  490. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +0 -1
  491. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  492. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  493. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  494. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  495. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  496. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  497. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  498. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  499. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  500. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  501. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  502. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  503. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +0 -339
  504. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +0 -19
  505. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +0 -1
  506. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +0 -313
  507. data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
  508. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +0 -388
  509. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +0 -243
  510. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +0 -21
  511. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +0 -1
  512. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +0 -196
  513. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +0 -102
  514. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +0 -798
  515. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +0 -48
  516. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +0 -682
  517. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +0 -552
  518. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +0 -157
  519. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +0 -340
  520. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +0 -64
  521. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +0 -334
  522. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +0 -45
  523. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +0 -272
  524. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +0 -409
  525. data/lib/erlang/messenger/lib/eunit/sys.config +0 -9
  526. data/lib/erlang/messenger/lib/eunit/vsn.mk +0 -1
  527. data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
  528. data/lib/erlang/messenger/pm_client_rel-0.1.script +0 -238
  529. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  530. data/lib/erlang/messenger/pm_master_rel-0.1.script +0 -239
  531. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  532. data/lib/erlang/messenger/pm_node_rel-0.1.script +0 -237
  533. data/lib/erlang/messenger/src/client_app.erl +0 -39
  534. data/lib/erlang/messenger/src/client_server.erl +0 -60
  535. data/lib/erlang/messenger/src/master_app.erl +0 -39
  536. data/lib/erlang/messenger/src/node_app.erl +0 -39
  537. data/lib/erlang/messenger/src/pm_client.erl +0 -49
  538. data/lib/erlang/messenger/src/pm_client_supervisor.erl +0 -38
  539. data/lib/erlang/messenger/src/pm_cluster.erl +0 -61
  540. data/lib/erlang/messenger/src/pm_event_manager.erl +0 -27
  541. data/lib/erlang/messenger/src/pm_master.erl +0 -215
  542. data/lib/erlang/messenger/src/pm_master_event_handler.erl +0 -72
  543. data/lib/erlang/messenger/src/pm_master_supervisor.erl +0 -39
  544. data/lib/erlang/messenger/src/pm_node.erl +0 -200
  545. data/lib/erlang/messenger/src/pm_node_supervisor.erl +0 -38
  546. data/lib/erlang/messenger/src/pm_packager.erl +0 -76
  547. data/lib/erlang/messenger/src/pm_spawner.erl +0 -213
  548. data/lib/erlang/messenger/src/pm_strings.erl +0 -11
  549. data/lib/erlang/messenger/src/utils.erl +0 -73
  550. data/lib/erlang/messenger/useful_snippets +0 -17
  551. data/lib/poolparty/capistrano.rb +0 -18
  552. data/lib/poolparty/config/postlaunchmessage.txt +0 -5
  553. data/lib/poolparty/dependency_resolutions/base.rb +0 -12
  554. data/lib/poolparty/modules/configurable.rb +0 -36
  555. data/lib/poolparty/modules/method_missing_sugar.rb +0 -58
  556. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +0 -15
  557. data/lib/poolparty/monitors/monitors/web_monitor.rb +0 -18
  558. data/lib/poolparty/net/messenger.rb +0 -72
  559. data/lib/poolparty/net/remote.rb +0 -38
  560. data/lib/poolparty/net/remote_bases/ec2.rb +0 -190
  561. data/lib/poolparty/net/remoter.rb +0 -343
  562. data/lib/poolparty/plugins/deploydirectory.rb +0 -71
  563. data/lib/poolparty/plugins/line.rb +0 -77
  564. data/lib/poolparty/plugins/rsyncmirror.rb +0 -26
  565. data/lib/poolparty/poolparty/custom_resource.rb +0 -45
  566. data/lib/poolparty/poolparty/resources/class_package.rb +0 -105
  567. data/lib/poolparty/poolparty/resources/conditional.rb +0 -67
  568. data/lib/poolparty/poolparty/resources/cron.rb +0 -14
  569. data/lib/poolparty/poolparty/resources/custom_service.rb +0 -30
  570. data/lib/poolparty/poolparty/resources/directory.rb +0 -26
  571. data/lib/poolparty/poolparty/resources/exec.rb +0 -28
  572. data/lib/poolparty/poolparty/resources/file.rb +0 -23
  573. data/lib/poolparty/poolparty/resources/gem_package.rb +0 -52
  574. data/lib/poolparty/poolparty/resources/host.rb +0 -14
  575. data/lib/poolparty/poolparty/resources/mount.rb +0 -22
  576. data/lib/poolparty/poolparty/resources/package.rb +0 -24
  577. data/lib/poolparty/poolparty/resources/remote_file.rb +0 -26
  578. data/lib/poolparty/poolparty/resources/service.rb +0 -21
  579. data/lib/poolparty/poolparty/resources/sshkey.rb +0 -23
  580. data/lib/poolparty/poolparty/resources/symlink.rb +0 -25
  581. data/lib/poolparty/poolparty/resources/variable.rb +0 -32
  582. data/lib/poolparty/provisioners/capistrano/capistrano.rb +0 -127
  583. data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +0 -58
  584. data/lib/poolparty/provisioners/capistrano/recipies/base.rb +0 -104
  585. data/lib/poolparty/provisioners/capistrano/recipies/master.rb +0 -121
  586. data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +0 -12
  587. data/lib/poolparty/provisioners/provisioner_base.rb +0 -204
  588. data/lib/poolparty/spec/core/string.rb +0 -16
  589. data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
  590. data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
  591. data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
  592. data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
  593. data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
  594. data/lib/poolparty/spec/matchers/have_file.rb +0 -28
  595. data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
  596. data/lib/poolparty/spec/matchers/have_git.rb +0 -28
  597. data/lib/poolparty/spec/matchers/have_host.rb +0 -28
  598. data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
  599. data/lib/poolparty/spec/matchers/have_package.rb +0 -28
  600. data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
  601. data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
  602. data/lib/poolparty/spec/matchers/have_service.rb +0 -28
  603. data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
  604. data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
  605. data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
  606. data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
  607. data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
  608. data/lib/poolparty/spec/templates/have_base.rb +0 -28
  609. data/lib/poolparty/templates/puppet.conf +0 -26
  610. data/lib/poolparty/templates/puppetcleaner +0 -12
  611. data/lib/poolparty/templates/puppetrerun +0 -22
  612. data/lib/poolparty/version.rb +0 -9
  613. data/lib/poolpartyspec.rb +0 -34
  614. data/log/pool.log +0 -0
  615. data/poolparty.gemspec +0 -580
  616. data/spec/poolparty/dependency_resolutions/base_spec.rb +0 -11
  617. data/spec/poolparty/modules/configurable_spec.rb +0 -29
  618. data/spec/poolparty/net/log/pool.log +0 -0
  619. data/spec/poolparty/net/messenger_spec.rb +0 -16
  620. data/spec/poolparty/plugins/svn_spec.rb +0 -16
  621. data/spec/poolparty/poolparty/custom_resource_spec.rb +0 -120
  622. data/spec/poolparty/poolparty/resources/class_package_spec.rb +0 -120
  623. data/spec/poolparty/poolparty/resources/conditional_spec.rb +0 -77
  624. data/spec/poolparty/poolparty/resources/cron_spec.rb +0 -50
  625. data/spec/poolparty/poolparty/resources/directory_spec.rb +0 -40
  626. data/spec/poolparty/poolparty/resources/exec_spec.rb +0 -37
  627. data/spec/poolparty/poolparty/resources/file_spec.rb +0 -40
  628. data/spec/poolparty/poolparty/resources/gem_spec.rb +0 -46
  629. data/spec/poolparty/poolparty/resources/host_spec.rb +0 -28
  630. data/spec/poolparty/poolparty/resources/package_spec.rb +0 -44
  631. data/spec/poolparty/poolparty/resources/remote_file_spec.rb +0 -40
  632. data/spec/poolparty/poolparty/resources/service_spec.rb +0 -45
  633. data/spec/poolparty/poolparty/resources/sshkey_spec.rb +0 -48
  634. data/spec/poolparty/poolparty/resources/symlink_spec.rb +0 -22
  635. data/spec/poolparty/poolparty/resources/user_spec.rb +0 -38
  636. data/spec/poolparty/poolparty/resources/variable_spec.rb +0 -24
  637. data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +0 -27
  638. data/spec/poolparty/provisioners/provisioner_base_spec.rb +0 -120
  639. data/spec/poolparty/spec/core/string_spec.rb +0 -57
  640. data/website/index.html +0 -107
  641. data/website/index.txt +0 -95
  642. data/website/stylesheets/code.css +0 -29
@@ -0,0 +1,117 @@
1
+ class VmxFile
2
+ include Dslify
3
+
4
+ default_options(
5
+ ".encoding" => "UTF-8",
6
+ "config.version" => "8",
7
+ "virtualHW.version" => "6",
8
+ "guestOS" => "other26xlinux",
9
+ "displayName" => "PoolParty vmx",
10
+ "vumvcpus" => "1",
11
+ "memsize" => "256",
12
+ "MemAllowAutoScaleDown" => "TRUE",
13
+ "MemTrimRate" => "-1",
14
+ "gui.powerOnAtStartup" => "FALSE",
15
+ "gui.fullScreenAtPowerOn" => "FALSE",
16
+ "gui.exitAtPowerOff" => "FALSE",
17
+ "uuid.action" => "create",
18
+ # Settings for VMware Tools
19
+ "tools.remindInstall" => "FALSE",
20
+ "tools.upgrade.policy" => "upgradeAtPowerCycle",
21
+ # Startup hints interfers with automatic startup of a virtual machine
22
+ # This setting has no effect in VMware Player
23
+ "hints.hideAll" => "TRUE",
24
+
25
+ # Enable time synchronization between computer
26
+ # and virtual machine
27
+ "tools.syncTime" => "TRUE",
28
+
29
+ # USB settings
30
+ # This config activates USB
31
+ "usb.present" => "TRUE",
32
+ "usb.generic.autoconnect" => "FALSE",
33
+
34
+ # First serial port, physical COM1 is available
35
+ "serial0.present" => "FALSE",
36
+ "serial0.fileName" => "Auto Detect",
37
+ "serial0.autodetect" => "TRUE",
38
+ "serial0.hardwareFlowControl" => "TRUE",
39
+
40
+ # Optional second serial port, physical COM2 is not available
41
+ "serial1.present" => "FALSE",
42
+
43
+ # First parallel port, physical LPT1 is available
44
+ "parallel0.present" => "FALSE",
45
+ "parallel0.fileName" => "Auto Detect",
46
+ "parallel0.autodetect" => "TRUE",
47
+ "parallel0.bidirectional" => "TRUE",
48
+
49
+ # Sound settings
50
+ "sound.present" => "TRUE",
51
+ "sound.fileName" => "-1",
52
+ "sound.autodetect" => "TRUE",
53
+
54
+ # Logging
55
+ # This config activates logging, and keeps last log
56
+ "logging" => "TRUE",
57
+ "log.fileName" => "PoolParty.log",
58
+ "log.append" => "TRUE",
59
+ "log.keepOld" => "3",
60
+
61
+ # These settings decides interaction between your
62
+ # computer and the virtual machine
63
+ "isolation.tools.hgfs.disable" => "FALSE",
64
+ "isolation.tools.dnd.disable" => "FALSE",
65
+ "isolation.tools.copy.enable" => "TRUE",
66
+ "isolation.tools.paste.enabled" => "TRUE",
67
+
68
+ # Other default settings
69
+ "svga.autodetect" => "TRUE",
70
+ "mks.keyboardFilter" => "allow",
71
+ "snapshot.action" => "autoCommit",
72
+
73
+ # First network interface card
74
+ "ethernet0.present" => "TRUE",
75
+ "ethernet0.virtualDev" => "vlance",
76
+ "ethernet0.connectionType" => "nat",
77
+ "ethernet0.addressType" => "generated",
78
+ "ethernet0.generatedAddressOffset" => "0",
79
+
80
+ # Settings for physical floppy drive
81
+ "floppy0.present" => "FALSE",
82
+
83
+ # First IDE disk, size 4800Mb
84
+ "ide0:0.present" => "TRUE",
85
+ "ide0:0.fileName" => "PoolParty.vmdk",
86
+ "ide0:0.mode" => "persistent",
87
+ "ide0:0.startConnected" => "TRUE",
88
+ "ide0:0.writeThrough" => "TRUE",
89
+
90
+ "checkpoint.vmState" => "",
91
+ "ethernet0.generatedAddress" => "00:0c:29:73:79:fb",
92
+ "virtualHW.productCompatibility" => "hosted",
93
+ "ide0:0.redo" => "",
94
+ "vmotion.checkpointFBSize" => "65536000",
95
+ "parallel0.startConnected" => "FALSE",
96
+ "serial0.startConnected" => "FALSE"
97
+ )
98
+
99
+ def initialize(o={})
100
+ dsl_options({:vmx_file => default_dsl_options}.merge(o))
101
+ end
102
+
103
+ def set(k,v)
104
+ options[:vmx_file]["#{k}"] = v
105
+ end
106
+
107
+ def compile
108
+ ::File.open("#{base_directory}/#{name}/#{name}.vmx", "w") {|f| f << to_vmx }
109
+ end
110
+ def to_vmx
111
+ out = []
112
+ options[:vmx_file].each do |k,v|
113
+ out << "#{k}=\"#{v}\""
114
+ end
115
+ out.join("\n")
116
+ end
117
+ end
@@ -0,0 +1,158 @@
1
+ =begin rdoc
2
+ The Vmrun remote base uses the vmrun command to implement a cloud remoter base.
3
+ The Vmrun remoter base has been tested with Vmware fusion on the mac.
4
+
5
+ In order to use the Vmrun remoter base you will need to setup a few things.
6
+ First, you will need to have the Vmware fusion installed and vmrun command in your path.
7
+ The default location of the vmrun binary is /Library/Application Support/VMware Fusion/vmrun.
8
+ You will then of course need a virtual machine installed and available.
9
+ Once you have your instance installed and running, you need to setup your ssh keys so that poolparty can ssh into the instance. Get the ip of you instnace with ifconfig inside the running instance.
10
+ For example:
11
+
12
+ ssh root@172.0.1.129 "mkdir /root/.ssh && chmod 600 /root/.ssh"
13
+ scp my_key.pub root@172.0.1.129:/root/.ssh/authorized_keys
14
+
15
+ provide a using :vmrun block in your clouds.rb
16
+ for example:
17
+
18
+ using :vmrun do
19
+ vmx_hash(::File.expand_path("~/Documents/Virtual\ Machines.localized/Ubuntu-jaunty.vmwarevm/Ubuntu-jaunty.vmx") => '172.16.68.129')
20
+ end
21
+
22
+ The vmx file fulfills a similar purpose as the ami id in ec2. Note that expand path. vmrun return fuill paths, so we must provide full paths so things match up later. W
23
+ Vmrun does not provide a meta server like ec2 has, so you need to list the ip address of your VM. For this reason it is recommended that you use NAT addressing on your VM to maintain consistent addressing across different physical networks.
24
+
25
+ Also, note that vmrun does not copy the VM to a new distinct VM on each run, so if you want to be able to start from a known state, you should make a snapshot before using your vm with poolparty. Then, you can rollback to this initial state if you want to ensure you can repeat a fresh cloud-start.
26
+
27
+ =end
28
+
29
+ module PoolParty
30
+ module Remote
31
+ class Vmrun < Remote::RemoterBase
32
+ include Dslify
33
+
34
+ default_options(
35
+ :path_to_binary => 'vmrun',
36
+ :images_repo_path => ::File.expand_path("~/Documents/Virtual_Machines.localized/"),
37
+ :default_cli_options => 'gui',
38
+ :terminate_options => 'soft',
39
+ :vmx_hash => 'need to specify vmx_files to use'
40
+ )
41
+
42
+ def initialize(par, opts={}, &block)
43
+ dsl_options opts
44
+ instance_eval &block if block
45
+ super(par, &block)
46
+ end
47
+
48
+ def self.launch_new_instance!(o={})
49
+ new_instance(o).launch_new_instance!
50
+ end
51
+ def launch_new_instance!(o={})
52
+ VmwareInstance.new( :vmx_file => next_unused_vmx_file,
53
+ :ip => vmx_hash[next_unused_vmx_file],
54
+ :keypair => cloud.keypair
55
+ ).launch!
56
+ end
57
+ # Terminate an instance by id
58
+ def self.terminate_instance!(o={})
59
+ new(nil, o).terminate_instance!
60
+ end
61
+ def terminate_instance!(o={})
62
+ dsl_options o
63
+ VmwareInstance.new( :vmx_file => last_unused_vmx_file,
64
+ :ip => vmx_hash[last_unused_vmx_file],
65
+ :keypair => cloud.keypair
66
+ ).terminate!(terminate_options)
67
+ end
68
+
69
+ # Describe an instance's status, must pass :vmx_file in the options
70
+ def self.describe_instance(o={})
71
+ # vmx_file = o[:vmx_file] || Vmrun.running_instances.first
72
+ new_instance(o).describe_instance
73
+ end
74
+ def describe_instance(o={})
75
+ running_instances.select {|inst| inst.vmx_file == o[:vmx_file] }.first
76
+ end
77
+
78
+ def self.describe_instances(o={})
79
+ new_instance(o).describe_instances
80
+ end
81
+ def describe_instances(o={})
82
+ running_instances.map {|a| a.to_hash }
83
+ end
84
+
85
+ # After launch callback
86
+ # This is called after a new instance is launched
87
+ def after_launched(force=false)
88
+ puts "new vmware instance was launched"
89
+ end
90
+
91
+ # Before shutdown callback
92
+ # This is called before the cloud is contracted
93
+ def before_shutdown
94
+ end
95
+ def self.path_to_binary
96
+ new(parent).path_to_binary
97
+ end
98
+
99
+ def after_launch_instance(inst=nil)
100
+ if inst
101
+ dputs "Associate address after launched: #{inst.ip}"
102
+ end
103
+ end
104
+
105
+ private
106
+ def self.new_instance(o={})
107
+ Vmrun.new((cloud rescue o), o)
108
+ end
109
+
110
+ def running_instances(o={})
111
+ output = run_local "#{path_to_binary} list"
112
+ lines = output.split("\n")
113
+ lines.shift
114
+ lines.map {|vmx_file| VmwareInstance.new( :vmx_file => vmx_file,
115
+ :ip => vmx_hash[vmx_file],
116
+ :keypair => cloud.keypair
117
+ ) }
118
+ end
119
+
120
+ # vmrun specific methods
121
+ def self.run_local(cmd, o={:raise_on_error=>false, :verbose=>true})
122
+ output = `#{cmd}`
123
+ unless $?.success?
124
+ $stderr.puts "FAILED: #{cmd}\n code = #{$?}"
125
+ raise "ERROR: run_local" if o[:raise_on_error]
126
+ end
127
+ output
128
+ end
129
+
130
+ def run_local(cmd, o={:raise_on_error=>false, :verbose=>true})
131
+ self.class.run_local(cmd, o)
132
+ end
133
+
134
+ def next_unused_vmx_file
135
+ tmp = (vmx_files - running_instances.map {|a| a.vmx_file })
136
+ (tmp.empty? ? vmx_files : tmp).first
137
+ end
138
+
139
+ def last_unused_vmx_file
140
+ running_instances.last.vmx_file
141
+ end
142
+
143
+ def vmx_files
144
+ vmx_hash.keys
145
+ end
146
+
147
+ def id(vfile)
148
+ vmx_file(vfile)
149
+ end
150
+
151
+ ## method's to override default RemoteInstance
152
+ def instance_id
153
+ vmx_file
154
+ end
155
+
156
+ end
157
+ end
158
+ end
@@ -0,0 +1,71 @@
1
+ module PoolParty
2
+ module Remote
3
+
4
+ class VmwareInstance
5
+ attr_reader :ip, :mac_address, :vmx_file, :keypair, :cloud
6
+
7
+ def initialize(o={}, cld=nil)
8
+ raise "You must pass a vmx_file" unless o[:vmx_file]
9
+ @vmx_file = ::File.expand_path(o[:vmx_file])
10
+ @ip = o[:ip]
11
+ @keypair = o[:keypair]
12
+
13
+ @cloud = cld
14
+ end
15
+
16
+ def to_hash
17
+ {
18
+ :status => status,
19
+ :mac_addresses => mac_address,
20
+ :ip => ip,
21
+ :instance_id => vmx_file,
22
+ :internal_ip => ip,
23
+ :keypair => keypair
24
+ }
25
+ end
26
+ def status
27
+ "running"
28
+ end
29
+ # Is this instance running?
30
+ def running?
31
+ true
32
+ end
33
+ # Is this instance pending?
34
+ def pending?
35
+ false
36
+ end
37
+ # Is this instance terminating?
38
+ def terminating?
39
+ false
40
+ end
41
+ # Has this instance been terminated?
42
+ def terminated?
43
+ false
44
+ end
45
+ def launch!
46
+ Vmrun.run_local("#{Vmrun.path_to_binary} start \"#{vmx_file}\"")
47
+ dputs "Launched new vmware instance from vmx: #{vmx_file}"
48
+ to_hash
49
+ end
50
+ def terminate!(o)
51
+ Vmrun.run_local("#{Vmrun.path_to_binary} stop \"#{vmx_file}\" #{o}")
52
+ end
53
+ # Get the ip from the arp -a
54
+ # def ip
55
+ # @ip ||= %x[arp -a].select {|a| a if a =~ /#{mac_address.macify}/}.first[/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/]
56
+ # end
57
+ # Get the mac address in the vmx_file
58
+ def mac_address
59
+ @mac_address ||= parse_vmx_file[:"ethernet0.generatedAddress"]
60
+ end
61
+ def parse_vmx_file
62
+ vmx_data.to_hash
63
+ end
64
+ def vmx_data
65
+ @vmx_data ||= open(vmx_file).read
66
+ end
67
+
68
+ end
69
+
70
+ end
71
+ end
@@ -0,0 +1,340 @@
1
+ module PoolParty
2
+ class Base
3
+
4
+ =begin rdoc
5
+
6
+ Install Apache2 and make various helpers accessible.
7
+
8
+ NOTE: this will not install a virtual host by default, *including* a default
9
+ host. This means apache will not start up unless you specify at least the
10
+ default host.
11
+
12
+ =end
13
+
14
+ plugin :apache do
15
+ def loaded(opts={}, &block)
16
+ has_service("apache2", :requires => get_package("apache2"))
17
+ end
18
+
19
+ def enable
20
+ enable_default
21
+ end
22
+
23
+ def before_load(o={}, &block)
24
+ install
25
+ end
26
+
27
+ def install
28
+ installed_as_worker
29
+ end
30
+
31
+ def installed_as_worker
32
+ unless @installed_as_worker
33
+ has_package("apache2")
34
+ has_package("apache2-mpm-worker")
35
+
36
+ base_install
37
+ @installed_as_worker = true
38
+ end
39
+ end
40
+
41
+ def base_install
42
+ unless @base_install
43
+ has_exec({:name => "restart-apache2", :command => "/etc/init.d/apache2 restart", :action => :nothing})
44
+ has_exec({:name => "reload-apache2", :command => "/etc/init.d/apache2 reload", :action => :nothing})
45
+ has_exec({:name => "force-reload-apache2", :command => "/etc/init.d/apache2 force-reload", :action => :nothing})
46
+
47
+ configs
48
+ @base_install = true
49
+ end
50
+ end
51
+
52
+ # def install_passenger# {{{
53
+ # base_install
54
+ # enable_passenger
55
+ # end# }}}
56
+
57
+ # def enable_passenger# {{{
58
+ # unless @enable_passenger
59
+ # installed_as_worker
60
+ # has_package(:name => "build-essential")
61
+ # has_package(:name => "apache2-prefork-dev")
62
+ # has_gempackage(:name => "fastthread")
63
+
64
+ # has_exec(:name => "install_passenger_script",
65
+ # :command => "/usr/bin/ruby #{Base.remote_storage_path}/install_passenger.rb",
66
+ # :if_not => "test -f /etc/apache2/conf.d/passenger.conf && test -s /etc/apache2/conf.d/passenger.conf",
67
+ # :calls => get_service("apache2")
68
+ # )
69
+
70
+ # has_file(:name => "#{Base.remote_storage_path}/install_passenger.rb", :calls => get_exec("install_passenger_script")) do
71
+ # template File.dirname(__FILE__)/".."/"templates"/"apache2"/"install_passenger.rb"
72
+ # template "install_passenger.rb" # todo
73
+ # end
74
+
75
+ # has_gempackage(:name => "passenger", :calls => get_exec("install_passenger_script"))
76
+
77
+ # @enable_passenger = true
78
+ # end
79
+ # end
80
+ # }}}
81
+
82
+ # def enable_ssl# {{{
83
+ # unless @enable_ssl
84
+ # has_package("apache2.2-common")
85
+ # has_package("openssl")
86
+ # has_variable(:name => "ssl_enabled", :value => "true")
87
+
88
+ # has_exec(:command => "a2enmod ssl") do
89
+ # requires [ get_package("openssl") ]
90
+ # if_not "/usr/bin/test -L /etc/apache2/mods-enabled/ssl.load"
91
+ # calls get_exec("restart-apache2")
92
+ # end
93
+ # @enable_ssl = true
94
+ # end
95
+ # end# }}}
96
+
97
+ def configs
98
+ unless @configs
99
+ has_directory("/etc/apache2")
100
+ has_directory("/etc/apache2/conf.d")
101
+ has_directory("/etc/apache2/site-includes")
102
+
103
+ has_file(:name => "/etc/apache2/apache2.conf") do
104
+ mode 644
105
+ requires get_directory("/etc/apache2/conf.d")
106
+ template "apache2"/"apache2.conf"
107
+ end
108
+ does_not_have_file(:name => "/etc/apache2/ports.conf")
109
+
110
+ has_exec(:command => "/usr/sbin/a2dissite default") do
111
+ only_if "/usr/bin/test -L /etc/apache2/sites-enabled/000-default"
112
+ calls get_exec("reload-apache2")
113
+ end
114
+
115
+ # Base config
116
+ config("base", "apache2"/"base.conf.erb")
117
+ config("mime", "apache2"/"mime-minimal.conf.erb")
118
+ config("browser_fixes", "apache2"/"browser_fixes.conf.erb")
119
+
120
+ present_apache_module("mime", "rewrite")
121
+ # end
122
+ @configs = true
123
+ end
124
+ end
125
+
126
+ def enable_default
127
+ listen 80 # assumes no haproxy
128
+ site "default-site", :template => :apache2/"default-site.conf.erb"
129
+ end
130
+
131
+
132
+ def config(name, temp)
133
+ has_file(:name => "/etc/apache2/conf.d/#{name}.conf") do
134
+ template temp
135
+ calls get_exec("reload-apache2")
136
+ end
137
+ end
138
+
139
+ def listen(port="8080")
140
+ has_variable(:name => "port", :value => port)
141
+ end
142
+
143
+ def site(name, opts={})
144
+ case opts[:ensure] || "present"
145
+ when "present", "installed"
146
+ install_site(name, opts)
147
+ when "absent"
148
+ has_exec(:command => "/usr/sbin/a2dissite #{name}", :calls => get_exec("reload-apache2")) do
149
+ requires get_package("apache2")
150
+ only_if "/bin/sh -c \"[ -L /etc/apache2/sites-enabled/#{name} ] && [ /etc/apache2/sites-enabled/#{name} -ef /etc/apache2/sites-available/#{name}]\""
151
+ end
152
+ end
153
+ end
154
+
155
+ def install_site(name, opts={})
156
+ opts.merge!(:name => "/etc/apache2/sites-available/#{name}")
157
+ has_directory(:name => "/etc/apache2/sites-available")
158
+ has_file(opts)
159
+ has_exec(:name => "/usr/sbin/a2ensite #{name}", :calls => get_exec("reload-apache2"), :requires => get_file("/etc/apache2/sites-available/#{name}")) do
160
+ requires get_package("apache2")
161
+ if_not "/bin/sh -c '[ -L /etc/apache2/sites-enabled/#{name} ] && [ /etc/apache2/sites-enabled/#{name} -ef /etc/apache2/sites-available/#{name} ]'"
162
+ end
163
+ end
164
+
165
+ def site_include(name, content, ensureer="present")
166
+ has_file(:name => "/etc/apache2/site-includes/#{name}.inc", :ensures => ensureer, :content => content, :requires => get_file("/etc/apache2/site-includes"))
167
+ end
168
+
169
+ def present_apache_module(*names)
170
+ names.each do |name|
171
+ has_exec(:name => "mod-#{name}", :command => "/usr/sbin/a2enmod #{name}") do
172
+ requires get_package("apache2")
173
+ if_not "/bin/sh -c \'[ -L /etc/apache2/mods-enabled/#{name}.load ] && [ /etc/apache2/mods-enabled/#{name}.load -ef /etc/apache2/mods-available/#{name}.load ]\'"
174
+ calls get_exec("force-reload-apache2")
175
+ end
176
+ end
177
+ end
178
+
179
+ def absent_apache_module(*names)
180
+ names.each do |name|
181
+ has_exec({:name => "no-mod-#{name}"}, :command => "/usr/sbin/a2dismod #{name}") do
182
+ requires get_package("apache2")
183
+ if_not "/bin/sh -c \'[ -L /etc/apache2/mods-enabled/#{name}.load ] && [ /etc/apache2/mods-enabled/#{name}.load -ef /etc/apache2/mods-available/#{name}.load ]\'"
184
+ calls get_exec("force-reload-apache2")
185
+ end
186
+ end
187
+ end
188
+
189
+ end
190
+
191
+ virtual_resource(:virtualhost) do
192
+ def listen(port="8080")
193
+ has_variable(:name => "port", :value => port)
194
+ port port
195
+ end
196
+
197
+ def virtual_host_entry(file)
198
+ @virtual_host_entry = true
199
+ if ::File.file?(file)
200
+ has_file(options.merge({:name => "/etc/apache2/sites-available/#{name}",
201
+ :template => file,
202
+ :requires => get_package("apache2")}))
203
+ else
204
+ has_file(options.merge({:content => file,
205
+ :name => "/etc/apache2/sites-available/#{name}",
206
+ :requires => get_package("apache2")}))
207
+ end
208
+ end
209
+
210
+ def loaded(opts={}, parent=self)
211
+ has_directory(:name => "/var/www")
212
+ has_directory(:name => "/var/www/#{name}")
213
+ has_directory(:name => "/var/www/#{name}/logs", :owner => "www-data")
214
+
215
+ has_variable(:name => "sitename", :value => "#{name}")
216
+
217
+ unless @virtual_host_entry
218
+ virtual_host_entry <<-eof
219
+ <VirtualHost *:#{port}>
220
+ ServerName #{name}
221
+ DocumentRoot /var/www/#{name}
222
+ </VirtualHost>
223
+ eof
224
+ end
225
+
226
+ has_exec(:name => "insert-site-#{name}",
227
+ :command => "/usr/sbin/a2ensite #{name}",
228
+ :calls => get_exec("reload-apache2"),
229
+ :requires => get_file("/etc/apache2/sites-available/#{name}")) do
230
+ requires get_package("apache2")
231
+ if_not "/bin/sh -c '[ -L /etc/apache2/sites-enabled/#{parent.name} ] && [ /etc/apache2/sites-enabled/#{parent.name} -ef /etc/apache2/sites-available/#{parent.name} ]'"
232
+ end
233
+ end
234
+
235
+ end
236
+
237
+ # virtual_resource(:passengersite) do # {{{
238
+ # def loaded(opts={}, parent=self)
239
+ # enable_passenger
240
+ # passenger_entry <<-EOE
241
+ # Listen #{port ? port : "8080"}
242
+ # <VirtualHost *>
243
+ # ServerName #{name}
244
+ # DocumentRoot #{docroot || "/var/www/#{name}"}/public
245
+ # RailsEnv production
246
+ # ErrorLog #{docroot || "/var/www/#{name}"}/log/error_log
247
+ # CustomLog #{docroot || "/var/www/#{name}"}/log/access_log common
248
+ # </VirtualHost>
249
+ # EOE
250
+
251
+ # has_directory(:name => "/var/www")
252
+ # has_directory(:name => "/var/www/#{name}")
253
+ # has_directory(:name => "/var/www/#{name}/log", :requires => get_directory("/var/www/#{name}/"))
254
+
255
+ # has_variable(:name => "sitename", :value => "#{name}")
256
+
257
+ # has_exec(:command => "/usr/sbin/a2ensite #{name}", :calls => 'Exec["reload-apache2"]', :requires => get_file("/etc/apache2/sites-available/#{name}")) do
258
+ # if_not "/bin/sh -c \"[ -L /etc/apache2/sites-enabled/#{name} ] && [ /etc/apache2/sites-enabled/#{name} -ef /etc/apache2/sites-available/#{name} ]\""
259
+ # end
260
+ # end
261
+ # def passenger_entry(file)
262
+ # if ::File.file?(file)
263
+ # has_file({:name => "/etc/apache2/sites-available/#{name}", :ensures => 'present', :alias => "#{name}", :template => file, :requires => get_package("apache2")})
264
+ # else
265
+ # has_file({:content => file, :name => "/etc/apache2/sites-available/#{name}", :ensures => 'present', :alias => "#{name}", :content => file, :requires => get_package("apache2")})
266
+ # end
267
+ # end
268
+ # end
269
+
270
+ # virtual_resource(:passengersite_with_ssl) do
271
+ # def loaded(opts={}, parent=self)
272
+ # enable_passenger
273
+
274
+ # has_variable(:name => "virtualhost_name", :value => name)
275
+ # has_variable(:name => "port", :value => port.nil? ? "8080" : port)
276
+
277
+ # has_directory(:name => "/var/www")
278
+ # has_directory(:name => "/var/www/#{name}")
279
+ # has_directory(:name => "/var/www/#{name}/log", :requires => get_directory("/var/www/#{name}/"))
280
+
281
+ # has_variable(:name => "passenger_name", :value => name)
282
+
283
+ # has_file(options.merge({:name => "/etc/apache2/sites-available/#{name}", :ensures => 'present', :alias => "#{name}", :requires => get_package("apache2")})) do
284
+ # template File.dirname(__FILE__), "/../templates/webserver", "passenger.conf.erb"
285
+ # end
286
+
287
+ # has_exec(:command => "/usr/sbin/a2ensite #{name}", :calls => 'Exec["reload-apache2"]', :requires => get_file("/etc/apache2/sites-available/#{name}")) do
288
+ # if_not "/bin/sh -c \"[ -L /etc/apache2/sites-enabled/#{@parent.name} ] && [ /etc/apache2/sites-enabled/#{@parent.name} -ef /etc/apache2/sites-available/#{@parent.name} ]\""
289
+ # end
290
+ # end
291
+
292
+ # tell apache ssl which certificate/private key files to use for this virtual site
293
+ # def certificate(cert_path, key_path)
294
+ # cert_name = File.basename(cert_path)
295
+ # key_name = File.basename(key_path)
296
+ # has_variable(:name => "ssl_cert_file", :value => "/var/www/#{name}/cert/#{cert_name}")
297
+ # has_variable(:name => "ssl_private_key_file", :value => "/var/www/#{name}/cert/#{key_name}")
298
+
299
+ # has_directory(:name => "/var/www")
300
+ # has_directory(:name => "/var/www/#{name}")
301
+ # has_directory(:name => "/var/www/#{name}/cert", :requires => get_directory("/var/www/#{name}/"))
302
+
303
+ # has_file(:name => "/var/www/#{name}/cert/#{cert_name}") do
304
+ # content open(cert_path).read
305
+ # end
306
+ # has_file(:name => "/var/www/#{name}/cert/#{key_name}") do
307
+ # content open(key_path).read
308
+ # end
309
+ # end
310
+ # end
311
+ # }}}
312
+
313
+ # Usage:
314
+ #
315
+ # enable_php5 do
316
+ # extras :cli, :pspell, :mysql
317
+ # end
318
+ virtual_resource(:enable_php5) do
319
+ def loaded(opts={}, parent=self)
320
+ has_package(:name => "php5")
321
+ has_package(:name => "libapache2-mod-php5")
322
+ present_apache_module("php5")
323
+ has_file({:name => "/etc/php5/apache2/php.ini",
324
+ :template => "apache2/php.ini.erb",
325
+ :mode => 755,
326
+ :requires => get_package("libapache2-mod-php5"),
327
+ :calls => get_exec("reload-apache2")})
328
+ end
329
+
330
+ def extras(*names)
331
+ names.each do |name|
332
+ has_package(:name => "php5-#{name}", :requires => get_package("php5"))
333
+ end
334
+ end
335
+
336
+ end
337
+
338
+ end
339
+
340
+ end