fairchild-poolparty 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (519) hide show
  1. data/History.txt +35 -0
  2. data/License.txt +20 -0
  3. data/PostInstall.txt +19 -0
  4. data/README.txt +77 -0
  5. data/Rakefile +45 -0
  6. data/VERSION.yml +4 -0
  7. data/bin/cloud +32 -0
  8. data/bin/cloud-bootstrap +21 -0
  9. data/bin/cloud-configure +28 -0
  10. data/bin/cloud-console +12 -0
  11. data/bin/cloud-contract +17 -0
  12. data/bin/cloud-expand +19 -0
  13. data/bin/cloud-handle-load +27 -0
  14. data/bin/cloud-list +23 -0
  15. data/bin/cloud-osxcopy +17 -0
  16. data/bin/cloud-provision +30 -0
  17. data/bin/cloud-rsync +28 -0
  18. data/bin/cloud-run +18 -0
  19. data/bin/cloud-setup-dev +25 -0
  20. data/bin/cloud-show +27 -0
  21. data/bin/cloud-spec +41 -0
  22. data/bin/cloud-ssh +23 -0
  23. data/bin/cloud-start +28 -0
  24. data/bin/cloud-stats +17 -0
  25. data/bin/cloud-terminate +20 -0
  26. data/bin/ec2-list-active +24 -0
  27. data/bin/messenger-get-current-nodes +14 -0
  28. data/bin/pool +31 -0
  29. data/bin/pool-describe +8 -0
  30. data/bin/pool-generate +18 -0
  31. data/bin/pool-init +28 -0
  32. data/bin/pool-list +30 -0
  33. data/bin/pool-start +26 -0
  34. data/bin/server-become-master +24 -0
  35. data/bin/server-build-messenger +28 -0
  36. data/bin/server-butterfly +25 -0
  37. data/bin/server-clean-cert-for +15 -0
  38. data/bin/server-cloud-elections +26 -0
  39. data/bin/server-ensure-provisioning +38 -0
  40. data/bin/server-fire-cmd +14 -0
  41. data/bin/server-get-load +15 -0
  42. data/bin/server-list-active +26 -0
  43. data/bin/server-list-instances +15 -0
  44. data/bin/server-manage-election +67 -0
  45. data/bin/server-monitor.ru +25 -0
  46. data/bin/server-provision +32 -0
  47. data/bin/server-query-agent +15 -0
  48. data/bin/server-rerun +23 -0
  49. data/bin/server-send-command +18 -0
  50. data/bin/server-show-stats +17 -0
  51. data/bin/server-start-agent +15 -0
  52. data/bin/server-start-client +29 -0
  53. data/bin/server-start-master +26 -0
  54. data/bin/server-start-node +32 -0
  55. data/bin/server-stop-client +3 -0
  56. data/bin/server-stop-master +3 -0
  57. data/bin/server-stop-node +3 -0
  58. data/bin/server-update-hosts +49 -0
  59. data/bin/server-write-new-nodes +26 -0
  60. data/config/jeweler.rb +43 -0
  61. data/config/requirements.rb +7 -0
  62. data/examples/basic.rb +23 -0
  63. data/examples/deploy.rb +5 -0
  64. data/examples/fairchild.rb +32 -0
  65. data/examples/fairchild_chef.rb +19 -0
  66. data/examples/paparazzi.conf.erb +21 -0
  67. data/examples/plugin_without_plugin_directory.rb +12 -0
  68. data/examples/poolparty.rb +12 -0
  69. data/generators/poolspec/USAGE +5 -0
  70. data/generators/poolspec/poolspec_generator.rb +58 -0
  71. data/generators/poolspec/templates/pool_spec_template.erb +9 -0
  72. data/lib/erlang/messenger/Emakefile +1 -0
  73. data/lib/erlang/messenger/Makefile +15 -0
  74. data/lib/erlang/messenger/README +5 -0
  75. data/lib/erlang/messenger/Rakefile +72 -0
  76. data/lib/erlang/messenger/control +11 -0
  77. data/lib/erlang/messenger/ebin/client.app +19 -0
  78. data/lib/erlang/messenger/ebin/master.app +19 -0
  79. data/lib/erlang/messenger/ebin/node.app +19 -0
  80. data/lib/erlang/messenger/ebin/packager.app +19 -0
  81. data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +1 -0
  82. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -0
  83. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -0
  84. data/lib/erlang/messenger/include/defines.hrl +27 -0
  85. data/lib/erlang/messenger/lib/eunit/AUTHORS +2 -0
  86. data/lib/erlang/messenger/lib/eunit/CHANGELOG +14 -0
  87. data/lib/erlang/messenger/lib/eunit/COPYING +504 -0
  88. data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
  89. data/lib/erlang/messenger/lib/eunit/NOTES +276 -0
  90. data/lib/erlang/messenger/lib/eunit/README +3 -0
  91. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +3 -0
  92. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  93. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +172 -0
  94. data/lib/erlang/messenger/lib/eunit/doc/index.html +17 -0
  95. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +12 -0
  96. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +984 -0
  97. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +980 -0
  98. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +11 -0
  99. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +55 -0
  100. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  101. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  102. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +21 -0
  103. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +1 -0
  104. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  105. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  106. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  107. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  108. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  109. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  110. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  111. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  112. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  113. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  114. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  115. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  116. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +339 -0
  117. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +19 -0
  118. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +1 -0
  119. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +313 -0
  120. data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
  121. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +388 -0
  122. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +243 -0
  123. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +21 -0
  124. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +1 -0
  125. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +196 -0
  126. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +102 -0
  127. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +798 -0
  128. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +48 -0
  129. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +682 -0
  130. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +552 -0
  131. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +157 -0
  132. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +340 -0
  133. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +64 -0
  134. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +334 -0
  135. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +45 -0
  136. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +272 -0
  137. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +409 -0
  138. data/lib/erlang/messenger/lib/eunit/sys.config +9 -0
  139. data/lib/erlang/messenger/lib/eunit/vsn.mk +1 -0
  140. data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
  141. data/lib/erlang/messenger/pm_client_rel-0.1.script +238 -0
  142. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  143. data/lib/erlang/messenger/pm_master_rel-0.1.script +239 -0
  144. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  145. data/lib/erlang/messenger/pm_node_rel-0.1.script +237 -0
  146. data/lib/erlang/messenger/src/client_app.erl +39 -0
  147. data/lib/erlang/messenger/src/client_server.erl +60 -0
  148. data/lib/erlang/messenger/src/master_app.erl +39 -0
  149. data/lib/erlang/messenger/src/node_app.erl +39 -0
  150. data/lib/erlang/messenger/src/pm_client.erl +49 -0
  151. data/lib/erlang/messenger/src/pm_client_supervisor.erl +38 -0
  152. data/lib/erlang/messenger/src/pm_cluster.erl +61 -0
  153. data/lib/erlang/messenger/src/pm_event_manager.erl +27 -0
  154. data/lib/erlang/messenger/src/pm_master.erl +215 -0
  155. data/lib/erlang/messenger/src/pm_master_event_handler.erl +72 -0
  156. data/lib/erlang/messenger/src/pm_master_supervisor.erl +39 -0
  157. data/lib/erlang/messenger/src/pm_node.erl +200 -0
  158. data/lib/erlang/messenger/src/pm_node_supervisor.erl +38 -0
  159. data/lib/erlang/messenger/src/pm_packager.erl +76 -0
  160. data/lib/erlang/messenger/src/pm_spawner.erl +213 -0
  161. data/lib/erlang/messenger/src/pm_strings.erl +11 -0
  162. data/lib/erlang/messenger/src/utils.erl +72 -0
  163. data/lib/erlang/messenger/useful_snippets +17 -0
  164. data/lib/poolparty/aska/aska.rb +152 -0
  165. data/lib/poolparty/base_packages/bind.rb +11 -0
  166. data/lib/poolparty/base_packages/haproxy.rb +46 -0
  167. data/lib/poolparty/base_packages/heartbeat.rb +58 -0
  168. data/lib/poolparty/base_packages/poolparty.rb +14 -0
  169. data/lib/poolparty/base_packages/ruby.rb +42 -0
  170. data/lib/poolparty/base_packages/runit.rb +21 -0
  171. data/lib/poolparty/capistrano/cloud_tasks.rb +10 -0
  172. data/lib/poolparty/capistrano.rb +54 -0
  173. data/lib/poolparty/config/postlaunchmessage.txt +5 -0
  174. data/lib/poolparty/core/array.rb +36 -0
  175. data/lib/poolparty/core/class.rb +26 -0
  176. data/lib/poolparty/core/exception.rb +10 -0
  177. data/lib/poolparty/core/float.rb +13 -0
  178. data/lib/poolparty/core/hash.rb +71 -0
  179. data/lib/poolparty/core/kernel.rb +66 -0
  180. data/lib/poolparty/core/metaid.rb +15 -0
  181. data/lib/poolparty/core/module.rb +40 -0
  182. data/lib/poolparty/core/my_open_struct.rb +18 -0
  183. data/lib/poolparty/core/object.rb +93 -0
  184. data/lib/poolparty/core/ordered_hash.rb +99 -0
  185. data/lib/poolparty/core/proc.rb +7 -0
  186. data/lib/poolparty/core/string.rb +140 -0
  187. data/lib/poolparty/core/symbol.rb +17 -0
  188. data/lib/poolparty/core/time.rb +56 -0
  189. data/lib/poolparty/dependencies.rb +49 -0
  190. data/lib/poolparty/dependency_resolver/chef_resolver.rb +221 -0
  191. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +42 -0
  192. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +28 -0
  193. data/lib/poolparty/dependency_resolver/puppet.rb +75 -0
  194. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +173 -0
  195. data/lib/poolparty/exceptions/CloudNotFoundException.rb +7 -0
  196. data/lib/poolparty/exceptions/LoadRulesException.rb +7 -0
  197. data/lib/poolparty/exceptions/MasterException.rb +10 -0
  198. data/lib/poolparty/exceptions/ProvisionerException.rb +5 -0
  199. data/lib/poolparty/exceptions/RemoteException.rb +12 -0
  200. data/lib/poolparty/exceptions/ResourceException.rb +7 -0
  201. data/lib/poolparty/exceptions/RuntimeException.rb +7 -0
  202. data/lib/poolparty/exceptions/SpecException.rb +7 -0
  203. data/lib/poolparty/exceptions/TemplateNotFound.rb +7 -0
  204. data/lib/poolparty/exceptions/UnacceptableCommand.rb +5 -0
  205. data/lib/poolparty/exceptions/dependency_resolver_exception.rb +5 -0
  206. data/lib/poolparty/exceptions/package_exception.rb +7 -0
  207. data/lib/poolparty/extra/deployments.rb +31 -0
  208. data/lib/poolparty/helpers/binary.rb +67 -0
  209. data/lib/poolparty/helpers/console.rb +48 -0
  210. data/lib/poolparty/helpers/display.rb +30 -0
  211. data/lib/poolparty/helpers/hash_printer.rb +44 -0
  212. data/lib/poolparty/helpers/loading.rb +4 -0
  213. data/lib/poolparty/helpers/nice_printer.rb +36 -0
  214. data/lib/poolparty/helpers/optioner.rb +149 -0
  215. data/lib/poolparty/helpers/ruberl.rb +33 -0
  216. data/lib/poolparty/lite.rb +20 -0
  217. data/lib/poolparty/modules/cloud_dsl.rb +20 -0
  218. data/lib/poolparty/modules/cloud_resourcer.rb +122 -0
  219. data/lib/poolparty/modules/daemonizable.rb +141 -0
  220. data/lib/poolparty/modules/definable_resource.rb +57 -0
  221. data/lib/poolparty/modules/file_writer.rb +95 -0
  222. data/lib/poolparty/modules/output.rb +13 -0
  223. data/lib/poolparty/modules/pretty_printer.rb +40 -0
  224. data/lib/poolparty/modules/resourcing_dsl.rb +74 -0
  225. data/lib/poolparty/modules/s3_string.rb +32 -0
  226. data/lib/poolparty/modules/safe_instance.rb +31 -0
  227. data/lib/poolparty/modules/thread_pool.rb +106 -0
  228. data/lib/poolparty/monitors/base_monitor.rb +81 -0
  229. data/lib/poolparty/monitors/monitor_rack.rb +132 -0
  230. data/lib/poolparty/monitors/monitors/load_monitor.rb +15 -0
  231. data/lib/poolparty/monitors/monitors/memory_monitor.rb +50 -0
  232. data/lib/poolparty/monitors/monitors/server_monitor.rb +7 -0
  233. data/lib/poolparty/monitors/monitors/web_monitor.rb +18 -0
  234. data/lib/poolparty/monitors/neighborhood_monitor.rb +25 -0
  235. data/lib/poolparty/monitors/stats_monitor.rb +182 -0
  236. data/lib/poolparty/monitors.rb +6 -0
  237. data/lib/poolparty/net/init.rb +11 -0
  238. data/lib/poolparty/net/messenger.rb +55 -0
  239. data/lib/poolparty/net/remote_bases.rb +21 -0
  240. data/lib/poolparty/net/remote_instance.rb +109 -0
  241. data/lib/poolparty/net/remoter/cloud_control.rb +251 -0
  242. data/lib/poolparty/net/remoter/connections.rb +180 -0
  243. data/lib/poolparty/net/remoter/interactive.rb +121 -0
  244. data/lib/poolparty/net/remoter/lists.rb +12 -0
  245. data/lib/poolparty/net/remoter_base.rb +97 -0
  246. data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +235 -0
  247. data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +53 -0
  248. data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +64 -0
  249. data/lib/poolparty/plugins/chef.rb +168 -0
  250. data/lib/poolparty/plugins/deploydirectory.rb +47 -0
  251. data/lib/poolparty/plugins/git.rb +66 -0
  252. data/lib/poolparty/plugins/line_in_file.rb +13 -0
  253. data/lib/poolparty/plugins/rsyncmirror.rb +28 -0
  254. data/lib/poolparty/plugins/runit.rb +96 -0
  255. data/lib/poolparty/plugins/svn.rb +48 -0
  256. data/lib/poolparty/poolparty/cloud.rb +216 -0
  257. data/lib/poolparty/poolparty/custom_resource.rb +45 -0
  258. data/lib/poolparty/poolparty/default.rb +167 -0
  259. data/lib/poolparty/poolparty/key.rb +75 -0
  260. data/lib/poolparty/poolparty/loggable.rb +28 -0
  261. data/lib/poolparty/poolparty/neighborhoods.rb +69 -0
  262. data/lib/poolparty/poolparty/plugin.rb +69 -0
  263. data/lib/poolparty/poolparty/plugin_model.rb +45 -0
  264. data/lib/poolparty/poolparty/pool.rb +76 -0
  265. data/lib/poolparty/poolparty/poolparty_base_class.rb +181 -0
  266. data/lib/poolparty/poolparty/resource.rb +205 -0
  267. data/lib/poolparty/poolparty/script.rb +58 -0
  268. data/lib/poolparty/poolparty/service.rb +34 -0
  269. data/lib/poolparty/poolparty/template.rb +27 -0
  270. data/lib/poolparty/provision/boot_strapper.rb +141 -0
  271. data/lib/poolparty/provision/configurations/chef.rb +22 -0
  272. data/lib/poolparty/provision/configurations/puppet.rb +28 -0
  273. data/lib/poolparty/provision/dr_configure.rb +85 -0
  274. data/lib/poolparty/resources/cron.rb +14 -0
  275. data/lib/poolparty/resources/custom_service.rb +30 -0
  276. data/lib/poolparty/resources/directory.rb +13 -0
  277. data/lib/poolparty/resources/exec.rb +25 -0
  278. data/lib/poolparty/resources/file.rb +29 -0
  279. data/lib/poolparty/resources/host.rb +16 -0
  280. data/lib/poolparty/resources/mount.rb +21 -0
  281. data/lib/poolparty/resources/package.rb +12 -0
  282. data/lib/poolparty/resources/remote_file.rb +20 -0
  283. data/lib/poolparty/resources/service.rb +20 -0
  284. data/lib/poolparty/resources/sshkey.rb +27 -0
  285. data/lib/poolparty/resources/symlink.rb +21 -0
  286. data/lib/poolparty/resources/user.rb +13 -0
  287. data/lib/poolparty/resources/variable.rb +9 -0
  288. data/lib/poolparty/schema.rb +64 -0
  289. data/lib/poolparty/services/conditional.rb +46 -0
  290. data/lib/poolparty/services/gem_package.rb +52 -0
  291. data/lib/poolparty/spec/core/string.rb +18 -0
  292. data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +26 -0
  293. data/lib/poolparty/spec/matchers/have_cron.rb +28 -0
  294. data/lib/poolparty/spec/matchers/have_deploydirectory.rb +15 -0
  295. data/lib/poolparty/spec/matchers/have_directory.rb +31 -0
  296. data/lib/poolparty/spec/matchers/have_exec.rb +28 -0
  297. data/lib/poolparty/spec/matchers/have_file.rb +28 -0
  298. data/lib/poolparty/spec/matchers/have_gempackage.rb +28 -0
  299. data/lib/poolparty/spec/matchers/have_git.rb +28 -0
  300. data/lib/poolparty/spec/matchers/have_host.rb +28 -0
  301. data/lib/poolparty/spec/matchers/have_mount.rb +28 -0
  302. data/lib/poolparty/spec/matchers/have_package.rb +28 -0
  303. data/lib/poolparty/spec/matchers/have_remotefile.rb +28 -0
  304. data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +28 -0
  305. data/lib/poolparty/spec/matchers/have_service.rb +28 -0
  306. data/lib/poolparty/spec/matchers/have_sshkey.rb +28 -0
  307. data/lib/poolparty/spec/matchers/have_symlink.rb +28 -0
  308. data/lib/poolparty/spec/matchers/have_variable.rb +32 -0
  309. data/lib/poolparty/spec/spec/dynamic_matchers.rb +63 -0
  310. data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +7 -0
  311. data/lib/poolparty/spec/templates/have_base.rb +28 -0
  312. data/lib/poolparty/spec.rb +31 -0
  313. data/lib/poolparty/templates/authkeys +2 -0
  314. data/lib/poolparty/templates/cib.xml +54 -0
  315. data/lib/poolparty/templates/erlang_cookie_maker +6 -0
  316. data/lib/poolparty/templates/gem +27 -0
  317. data/lib/poolparty/templates/gemrc +11 -0
  318. data/lib/poolparty/templates/ha.cf +17 -0
  319. data/lib/poolparty/templates/haproxy.conf +36 -0
  320. data/lib/poolparty/templates/haresources +3 -0
  321. data/lib/poolparty/templates/logd.cf +42 -0
  322. data/lib/poolparty/templates/messenger/client/log-run.erb +2 -0
  323. data/lib/poolparty/templates/messenger/client/run.erb +4 -0
  324. data/lib/poolparty/templates/messenger/master/log-run.erb +2 -0
  325. data/lib/poolparty/templates/messenger/master/run.erb +4 -0
  326. data/lib/poolparty/templates/messenger/node/log-run.erb +2 -0
  327. data/lib/poolparty/templates/messenger/node/run.erb +4 -0
  328. data/lib/poolparty/templates/monitor.ru +16 -0
  329. data/lib/poolparty/templates/namespaceauth.conf +19 -0
  330. data/lib/poolparty/templates/poolparty.monitor +14 -0
  331. data/lib/poolparty/templates/puppet/add_puppet_to_hosts +6 -0
  332. data/lib/poolparty/templates/puppet/puppet.conf +2 -0
  333. data/lib/poolparty/templates/puppet/puppetrunner +14 -0
  334. data/lib/poolparty/templates/puppet/site.pp +4 -0
  335. data/lib/poolparty/templates/puppetrunner +14 -0
  336. data/lib/poolparty/templates/yaws.conf +19 -0
  337. data/lib/poolparty/version.rb +15 -0
  338. data/lib/poolparty.rb +148 -0
  339. data/lib/poolpartycl.rb +7 -0
  340. data/script/destroy +14 -0
  341. data/script/generate +14 -0
  342. data/spec/bin/bin_spec_helper.rb +7 -0
  343. data/spec/bin/fixtures/bin_cloud_for_test.rb +19 -0
  344. data/spec/bin/server-list-active_spec.rb +22 -0
  345. data/spec/poolparty/aska/aska_spec.rb +117 -0
  346. data/spec/poolparty/base_packages/haproxy_spec.rb +7 -0
  347. data/spec/poolparty/base_packages/heartbeat_spec.rb +7 -0
  348. data/spec/poolparty/bin/console_spec.rb +83 -0
  349. data/spec/poolparty/core/array_spec.rb +46 -0
  350. data/spec/poolparty/core/float.rb +13 -0
  351. data/spec/poolparty/core/hash_spec.rb +83 -0
  352. data/spec/poolparty/core/kernel_spec.rb +24 -0
  353. data/spec/poolparty/core/module_spec.rb +15 -0
  354. data/spec/poolparty/core/object_spec.rb +68 -0
  355. data/spec/poolparty/core/ordered_hash_spec.rb +48 -0
  356. data/spec/poolparty/core/string_spec.rb +145 -0
  357. data/spec/poolparty/core/time_spec.rb +49 -0
  358. data/spec/poolparty/dependencies_spec.rb +11 -0
  359. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +119 -0
  360. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +128 -0
  361. data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +16 -0
  362. data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +124 -0
  363. data/spec/poolparty/extra/deployments_spec.rb +68 -0
  364. data/spec/poolparty/fixtures/clouds.json +128 -0
  365. data/spec/poolparty/fixtures/test_template.erb +1 -0
  366. data/spec/poolparty/helpers/binary_spec.rb +26 -0
  367. data/spec/poolparty/helpers/display_spec.rb +13 -0
  368. data/spec/poolparty/helpers/hash_printer_spec.rb +34 -0
  369. data/spec/poolparty/helpers/optioner_spec.rb +50 -0
  370. data/spec/poolparty/id_rsa +27 -0
  371. data/spec/poolparty/modules/cloud_resourcer_spec.rb +67 -0
  372. data/spec/poolparty/modules/definable_resource.rb +9 -0
  373. data/spec/poolparty/modules/file_writer_spec.rb +64 -0
  374. data/spec/poolparty/modules/s3_string_spec.rb +15 -0
  375. data/spec/poolparty/monitors/base_monitor_spec.rb +112 -0
  376. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +18 -0
  377. data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +48 -0
  378. data/spec/poolparty/net/messenger_spec.rb +16 -0
  379. data/spec/poolparty/net/remote_instance_spec.rb +17 -0
  380. data/spec/poolparty/net/remote_spec.rb +286 -0
  381. data/spec/poolparty/net/remoter_base_spec.rb +35 -0
  382. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +24 -0
  383. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +125 -0
  384. data/spec/poolparty/net/remoter_bases/ec2_spec.rb +119 -0
  385. data/spec/poolparty/net/remoter_spec.rb +130 -0
  386. data/spec/poolparty/plugins/chef_spec.rb +7 -0
  387. data/spec/poolparty/plugins/deploydirectory_spec.rb +51 -0
  388. data/spec/poolparty/plugins/git_spec.rb +40 -0
  389. data/spec/poolparty/plugins/line_spec.rb +22 -0
  390. data/spec/poolparty/plugins/svn_spec.rb +16 -0
  391. data/spec/poolparty/poolparty/cloud_spec.rb +345 -0
  392. data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +16 -0
  393. data/spec/poolparty/poolparty/configurers/files/ruby_plugins.rb +16 -0
  394. data/spec/poolparty/poolparty/configurers/ruby_spec.rb +42 -0
  395. data/spec/poolparty/poolparty/custom_resource_spec.rb +79 -0
  396. data/spec/poolparty/poolparty/default_spec.rb +139 -0
  397. data/spec/poolparty/poolparty/example_spec.rb +60 -0
  398. data/spec/poolparty/poolparty/key_spec.rb +42 -0
  399. data/spec/poolparty/poolparty/neighborhoods_spec.rb +66 -0
  400. data/spec/poolparty/poolparty/plugin_model_spec.rb +54 -0
  401. data/spec/poolparty/poolparty/plugin_spec.rb +41 -0
  402. data/spec/poolparty/poolparty/pool_spec.rb +100 -0
  403. data/spec/poolparty/poolparty/resource_spec.rb +209 -0
  404. data/spec/poolparty/poolparty/script_spec.rb +49 -0
  405. data/spec/poolparty/poolparty/service_spec.rb +5 -0
  406. data/spec/poolparty/poolparty/template_spec.rb +26 -0
  407. data/spec/poolparty/poolparty/test_plugins/sshkey_test +2 -0
  408. data/spec/poolparty/poolparty/test_plugins/virtual_host_template.erb +0 -0
  409. data/spec/poolparty/poolparty/test_plugins/webserver.rb +30 -0
  410. data/spec/poolparty/poolparty_base_class_spec.rb +80 -0
  411. data/spec/poolparty/poolparty_spec.rb +36 -0
  412. data/spec/poolparty/resources/cron_spec.rb +44 -0
  413. data/spec/poolparty/resources/directory_spec.rb +40 -0
  414. data/spec/poolparty/resources/exec_spec.rb +37 -0
  415. data/spec/poolparty/resources/file_spec.rb +63 -0
  416. data/spec/poolparty/resources/gem_spec.rb +7 -0
  417. data/spec/poolparty/resources/host_spec.rb +35 -0
  418. data/spec/poolparty/resources/package_spec.rb +29 -0
  419. data/spec/poolparty/resources/service_spec.rb +29 -0
  420. data/spec/poolparty/resources/sshkey_spec.rb +40 -0
  421. data/spec/poolparty/resources/symlink_spec.rb +29 -0
  422. data/spec/poolparty/resources/user_spec.rb +48 -0
  423. data/spec/poolparty/resources/variable_spec.rb +26 -0
  424. data/spec/poolparty/schema_spec.rb +53 -0
  425. data/spec/poolparty/services/conditional_spec.rb +52 -0
  426. data/spec/poolparty/spec/core/string_spec.rb +57 -0
  427. data/spec/poolparty/spec_helper.rb +263 -0
  428. data/spec/poolparty/test_spec_helper.rb +13 -0
  429. data/tasks/cloud.rake +3 -0
  430. data/tasks/development.rake +82 -0
  431. data/tasks/ec2.rake +13 -0
  432. data/tasks/environment.rake +7 -0
  433. data/tasks/instance.rake +2 -0
  434. data/tasks/poolparty.rake +54 -0
  435. data/tasks/server.rake +44 -0
  436. data/tasks/spec.rake +16 -0
  437. data/test/fixtures/test_template.erb +1 -0
  438. data/test/poolparty/core/hash_test.rb +23 -0
  439. data/test/poolparty/poolparty/template_test.rb +31 -0
  440. data/test/poolparty/provision/boot_strapper_test.rb +6 -0
  441. data/test/poolparty/provision/dr_configure_test.rb +6 -0
  442. data/test/test_generator_helper.rb +29 -0
  443. data/test/test_helper.rb +5 -0
  444. data/test/test_pool_spec_generator.rb +47 -0
  445. data/test/test_poolparty.rb +11 -0
  446. data/vendor/gems/butterfly/History.txt +4 -0
  447. data/vendor/gems/butterfly/PostInstall.txt +2 -0
  448. data/vendor/gems/butterfly/README.rdoc +48 -0
  449. data/vendor/gems/butterfly/Rakefile +62 -0
  450. data/vendor/gems/butterfly/VERSION.yml +4 -0
  451. data/vendor/gems/butterfly/bin/flutter +4 -0
  452. data/vendor/gems/butterfly/butterfly.gemspec +37 -0
  453. data/vendor/gems/butterfly/examples/config.ru +15 -0
  454. data/vendor/gems/butterfly/examples/my_app.rb +12 -0
  455. data/vendor/gems/butterfly/lib/butterfly.rb +14 -0
  456. data/vendor/gems/butterfly/lib/handler.rb +48 -0
  457. data/vendor/gems/butterfly/lib/request.rb +29 -0
  458. data/vendor/gems/butterfly/lib/response.rb +49 -0
  459. data/vendor/gems/butterfly/script/console +10 -0
  460. data/vendor/gems/butterfly/script/destroy +14 -0
  461. data/vendor/gems/butterfly/script/generate +14 -0
  462. data/vendor/gems/butterfly/test/test_adapter_base.rb +23 -0
  463. data/vendor/gems/butterfly/test/test_butterfly_request.rb +46 -0
  464. data/vendor/gems/butterfly/test/test_butterfly_response.rb +43 -0
  465. data/vendor/gems/butterfly/test/test_butterfly_server.rb +16 -0
  466. data/vendor/gems/butterfly/test/test_default.rb +12 -0
  467. data/vendor/gems/butterfly/test/test_helper.rb +6 -0
  468. data/vendor/gems/dslify/History.txt +4 -0
  469. data/vendor/gems/dslify/Manifest.txt +25 -0
  470. data/vendor/gems/dslify/PostInstall.txt +5 -0
  471. data/vendor/gems/dslify/README.txt +60 -0
  472. data/vendor/gems/dslify/Rakefile +56 -0
  473. data/vendor/gems/dslify/config/hoe.rb +73 -0
  474. data/vendor/gems/dslify/config/requirements.rb +15 -0
  475. data/vendor/gems/dslify/dslify.gemspec +40 -0
  476. data/vendor/gems/dslify/lib/dslify/dslify.rb +69 -0
  477. data/vendor/gems/dslify/lib/dslify/version.rb +10 -0
  478. data/vendor/gems/dslify/lib/dslify.rb +7 -0
  479. data/vendor/gems/dslify/script/console +10 -0
  480. data/vendor/gems/dslify/script/destroy +14 -0
  481. data/vendor/gems/dslify/script/generate +14 -0
  482. data/vendor/gems/dslify/script/txt2html +82 -0
  483. data/vendor/gems/dslify/setup.rb +1585 -0
  484. data/vendor/gems/dslify/tasks/deployment.rake +34 -0
  485. data/vendor/gems/dslify/tasks/environment.rake +7 -0
  486. data/vendor/gems/dslify/tasks/website.rake +17 -0
  487. data/vendor/gems/dslify/test/test_dslify.rb +114 -0
  488. data/vendor/gems/dslify/website/index.html +86 -0
  489. data/vendor/gems/dslify/website/index.txt +83 -0
  490. data/vendor/gems/dslify/website/javascripts/rounded_corners_lite.inc.js +285 -0
  491. data/vendor/gems/dslify/website/stylesheets/screen.css +138 -0
  492. data/vendor/gems/dslify/website/template.html.erb +48 -0
  493. data/vendor/gems/parenting/History.txt +4 -0
  494. data/vendor/gems/parenting/Manifest.txt +13 -0
  495. data/vendor/gems/parenting/PostInstall.txt +2 -0
  496. data/vendor/gems/parenting/README.rdoc +47 -0
  497. data/vendor/gems/parenting/Rakefile +28 -0
  498. data/vendor/gems/parenting/lib/parenting/base.rb +65 -0
  499. data/vendor/gems/parenting/lib/parenting.rb +10 -0
  500. data/vendor/gems/parenting/parenting.gemspec +39 -0
  501. data/vendor/gems/parenting/script/console +10 -0
  502. data/vendor/gems/parenting/script/destroy +14 -0
  503. data/vendor/gems/parenting/script/generate +14 -0
  504. data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
  505. data/vendor/gems/parenting/test/test_helper.rb +5 -0
  506. data/vendor/gems/parenting/test/test_parenting.rb +89 -0
  507. data/vendor/gems/suitcase/LICENSE +20 -0
  508. data/vendor/gems/suitcase/README.rdoc +31 -0
  509. data/vendor/gems/suitcase/Rakefile +57 -0
  510. data/vendor/gems/suitcase/VERSION.yml +4 -0
  511. data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
  512. data/vendor/gems/suitcase/lib/suitcase/zipper.rb +103 -0
  513. data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
  514. data/vendor/gems/suitcase/suitcase.gemspec +52 -0
  515. data/vendor/gems/suitcase/test/suitcase_test.rb +89 -0
  516. data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
  517. data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
  518. data/vendor/gems/suitcase/test/test_helper.rb +12 -0
  519. metadata +810 -0
@@ -0,0 +1,63 @@
1
+ require "rubygems"
2
+ require "spec"
3
+ require "#{::File.dirname(__FILE__)}/../matchers/a_spec_extensions_base.rb"
4
+ class Object
5
+ # For all of the available_resources, write the matcher template
6
+ # based on the have_base base and write the method have_
7
+ # for each of the resources available
8
+ def write_dynamic_matchers
9
+ PoolParty::Resources::Resource.available_resources.each do |ty|
10
+ ty.downcase!
11
+ filename = "#{::File.dirname(__FILE__)}/../matchers/have_#{ty}.rb"
12
+ unless ::File.file?(filename)
13
+ str = make_dynamic_matcher_string_for(ty)
14
+ ::File.open(filename, "w+") {|f| f << str}
15
+ end
16
+ end
17
+ end
18
+ # Create a dynamic matcher
19
+ # Create a matcher for spec based in the context called from
20
+ # Usage example:
21
+ # dynamic_matcher_for(:virtualhost) do
22
+ # set_description "should have virtualhost"
23
+ # it "should have the directory /var/www" do
24
+ # have_directory("/var/www")
25
+ # end
26
+ # end
27
+ # This creates a method by the name of the dynamic matcher
28
+ # so in the above example for virtualhost, the
29
+ # method have_virtualhost(name) &block is created in the spec
30
+ # context and can be called from within the describe/context
31
+ # in a spec
32
+ def dynamic_matcher_for(ty, &block)
33
+ name = "#{ty}".camelcase
34
+
35
+ begin
36
+ const = Object.const_set(name, Spec::Example::SharedExampleGroup.register(name.to_sym, &block))
37
+ rescue NameError => e
38
+ raise NameError.new(e.message + "\nThe first argument to share_as must be a legal name for a constant\n")
39
+ end
40
+
41
+ described_type = "#{ty.to_s.underscore.downcase}"
42
+
43
+ ::Spec::Example::ExampleGroupMethods.module_eval <<-EOM
44
+ def have_#{ty.to_s.underscore.downcase}(*args)
45
+ include #{const}
46
+ self.module_eval "@@described_type = args;def #{described_type}; @@described_type; end"
47
+ end
48
+ EOM
49
+ end
50
+ # Load the have_base file and fill in the variables for the
51
+ # have_base base template
52
+ def make_dynamic_matcher_string_for(ty, matcher="is_present?")
53
+ @basestr ||= open("#{::File.dirname(__FILE__)}/../templates/have_base.rb").read
54
+ typestring = ty.to_s
55
+ begin
56
+ @basestr ^ {:classname => "Have#{typestring.capitalize}",
57
+ :type => typestring,
58
+ :matches => matcher,
59
+ :includer => "SpecExtensions::Have#{typestring.capitalize}.new(name, extra)"}
60
+ rescue Exception => e
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,7 @@
1
+ require "rubygems"
2
+ require "poolparty"
3
+ Dir["#{::File.dirname(__FILE__)}/../core/*.rb"].each {|f| require f}
4
+
5
+ write_dynamic_matchers if @ensure_matchers_exist
6
+
7
+ Dir["#{::File.dirname(__FILE__)}/../matchers/*.rb"].each {|f| require f}
@@ -0,0 +1,28 @@
1
+ module Spec
2
+ module Matchers
3
+ module SpecExtensions
4
+ class :classname < SpecExtensionsBase
5
+ def initialize(expected,extra="")
6
+ @expected = expected
7
+ @extra = extra
8
+ end
9
+ def matches?(target)
10
+ @target = target
11
+ :matches
12
+ end
13
+ def failure_message
14
+ "expected #{@target.inspect} to have :type #{@expected}"
15
+ end
16
+ def negative_failure_message
17
+ "expected #{@target.inspect} not to have :type #{@expected}"
18
+ end
19
+ def type
20
+ ":type"
21
+ end
22
+ end
23
+ end
24
+ def have_:type(name, extra="")
25
+ :includer
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,31 @@
1
+ ["core", "spec"].each do |dir|
2
+ Dir[File.join(File.dirname(__FILE__), "spec", dir, "*.rb")].each {|f| require f}
3
+ end
4
+
5
+ class TestCloudClass < PoolParty::Cloud::Cloud
6
+ def build_test_manifest
7
+ returning Array.new do |arr|
8
+
9
+ services.each do |service|
10
+ service.options.merge!(:name => service.name)
11
+ classpackage_with_self(service)
12
+ end
13
+
14
+ global_classpackages.each do |cls|
15
+ arr << cls.to_string
16
+ end
17
+
18
+ end.join("\n")
19
+ end
20
+ end
21
+
22
+ def new_test_cloud(&block)
23
+ TestCloudClass.new(:test_cloud, &block)
24
+ end
25
+
26
+ def load_test_cloud(name, poolfile=nil)
27
+ PoolParty::Script.inflate_file poolfile
28
+ blk = cloud(name).stored_block.dup
29
+ PoolParty::Pool.reset!
30
+ new_test_cloud &blk
31
+ end
@@ -0,0 +1,2 @@
1
+ auth 1
2
+ 1 sha1 PasswordForpoolpartyClusterApplicationButItIsOnlyADefault
@@ -0,0 +1,54 @@
1
+ <?xml version="1.0" ?>
2
+ <cib admin_epoch="0" epoch="0" num_updates="0">
3
+ <configuration>
4
+ <crm_config>
5
+ <cluster_property_set id="cib-bootstrap-options">
6
+ <attributes>
7
+ <nvpair id="cib-bootstrap-options-symmetric-cluster" name="symmetric-cluster" value="true"/>
8
+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="stop"/>
9
+ <nvpair id="cib-bootstrap-options-default-resource-stickiness" name="default-resource-stickiness" value="0"/>
10
+ <nvpair id="cib-bootstrap-options-default-resource-failure-stickiness" name="default-resource-failure-stickiness" value="0"/>
11
+ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/>
12
+ <nvpair id="cib-bootstrap-options-stonith-action" name="stonith-action" value="reboot"/>
13
+ <nvpair id="cib-bootstrap-options-startup-fencing" name="startup-fencing" value="true"/>
14
+ <nvpair id="cib-bootstrap-options-stop-orphan-resources" name="stop-orphan-resources" value="true"/>
15
+ <nvpair id="cib-bootstrap-options-stop-orphan-actions" name="stop-orphan-actions" value="true"/>
16
+ <nvpair id="cib-bootstrap-options-remove-after-stop" name="remove-after-stop" value="false"/>
17
+ <nvpair id="cib-bootstrap-options-short-resource-names" name="short-resource-names" value="true"/>
18
+ <nvpair id="cib-bootstrap-options-transition-idle-timeout" name="transition-idle-timeout" value="5min"/>
19
+ <nvpair id="cib-bootstrap-options-default-action-timeout" name="default-action-timeout" value="20s"/>
20
+ <nvpair id="cib-bootstrap-options-is-managed-default" name="is-managed-default" value="true"/>
21
+ <nvpair id="cib-bootstrap-options-cluster-delay" name="cluster-delay" value="60s"/>
22
+ <nvpair id="cib-bootstrap-options-pe-error-series-max" name="pe-error-series-max" value="-1"/>
23
+ <nvpair id="cib-bootstrap-options-pe-warn-series-max" name="pe-warn-series-max" value="-1"/>
24
+ <nvpair id="cib-bootstrap-options-pe-input-series-max" name="pe-input-series-max" value="-1"/>
25
+ </attributes>
26
+ </cluster_property_set>
27
+ </crm_config>
28
+ <nodes/>
29
+ <resources>
30
+ <% ha_nodenames.each_with_index do |name, index| %>
31
+ <primitive class="ocf" id="IPaddr_<%= name %>" provider="heartbeat" type="IPaddr">
32
+ <operations>
33
+ <op id="IPaddr_<%= name %>_mon" interval="5s" name="monitor" timeout="<%= ha_timeout %>"/>
34
+ </operations>
35
+ <instance_attributes id="IPaddr_<%= name %>_inst_attr">
36
+ <attributes>
37
+ <nvpair id="IPaddr_<%= name %>_attr_0" name="ip" value="<%= ha_node_ips[index] %>"/>
38
+ </attributes>
39
+ </instance_attributes>
40
+ </primitive>
41
+ <% end %>
42
+ </resources>
43
+ <constraints>
44
+ <% ha_nodenames.each_with_index do |name, index| %>
45
+ <rsc_location id="rsc_location_IPaddr_<%= name %>" rsc="IPaddr_<%= name %>">
46
+ <rule id="prefered_location_IPaddr_<%= name %>" score="100">
47
+ <expression attribute="#uname" id="prefered_location_IPaddr_<%= name %>_expr" operation="eq" value="<%= name %>"/>
48
+ </rule>
49
+ </rsc_location>
50
+ <% end %>
51
+ </constraints>
52
+ </configuration>
53
+ <status/>
54
+ </cib>
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "fileutils"
4
+ if !::File.file?("/root/.erlang.cookie")
5
+ ::FileUtils.cp "/var/poolparty/dr_configure/.erlang.cookie", "/root/.erlang.cookie"
6
+ end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
8
+ require 'rubygems'
9
+ require 'rubygems/gem_runner'
10
+ require 'rubygems/exceptions'
11
+
12
+ required_version = Gem::Requirement.new "> 1.8.3"
13
+
14
+ unless required_version.satisfied_by? Gem.ruby_version then
15
+ abort "Expected Ruby Version #{required_version}, was #{Gem.ruby_version}"
16
+ end
17
+
18
+ # We need to preserve the original ARGV to use for passing gem options
19
+ # to source gems. If there is a -- in the line, strip all options after
20
+ # it...its for the source building process.
21
+ args = !ARGV.include?("--") ? ARGV.clone : ARGV[0...ARGV.index("--")]
22
+
23
+ begin
24
+ Gem::GemRunner.new.run args
25
+ rescue Gem::SystemExitException => e
26
+ exit e.exit_code
27
+ end
@@ -0,0 +1,11 @@
1
+ ---
2
+ gem: --no-rdoc --no-ri
3
+ :verbose: true
4
+ :benchmark: false
5
+ :sources:
6
+ - http://gems.rubyforge.org/
7
+ - http://gems.opscode.com
8
+ - http://gems.github.com
9
+ :update_sources: false
10
+ :backtrace: false
11
+ :bulk_threshold: 1000
@@ -0,0 +1,17 @@
1
+ # Heartbeat
2
+ keepalive 5 # Time inbetween heartbeats
3
+ deadtime 32 # wait 10 seconds before declaring dead
4
+ warntime 16 # issue a warning halfway through
5
+ initdead 60 # Don't boot instances between 60 seconds of each other
6
+ logfacility daemon # Log to syslog as facility "daemon"
7
+ auto_failback on
8
+ use_logd yes
9
+ bcast eth0
10
+
11
+ <% ha_node_ips.chomp.split(/\t/).each_with_index do |ip,index| -%>
12
+ <% if hostname != ha_nodenames.chomp.split(/\t/)[index] -%>
13
+ ucast eth0 <%= ip %>
14
+ <% end -%>
15
+ <% end -%>
16
+
17
+ node <%= ha_nodenames.chomp.split(/\t/).join(" ") %>
@@ -0,0 +1,36 @@
1
+ global
2
+ daemon
3
+ maxconn 4096 # total max connections (dependent on ulimit)
4
+ nbproc 1 # number of processing cores
5
+ user haproxy
6
+ group haproxy
7
+ chroot /var/run/haproxy
8
+ log 127.0.0.1 local0 debug
9
+ pidfile /var/run/haproxy.pid
10
+
11
+ defaults
12
+ log global # Log to the global log
13
+ clitimeout 150000
14
+ srvtimeout 150000
15
+ contimeout 30000
16
+
17
+ option httplog
18
+ option httpclose # disable keepalive (HAProxy does not yet support the HTTP keep-alive mode)
19
+ option forwardfor # enable insert of X-Forwarded-For headers
20
+ retries 3
21
+ option redispatch
22
+
23
+ balance roundrobin # each server is used in turns, according to assigned weight
24
+
25
+ # Stats
26
+ stats enable
27
+ stats uri /poolparty
28
+ stats realm Statistics\ for\ PoolParty
29
+
30
+ listen <%= @node[:poolparty][:haproxy_name] %>
31
+ mode <%= @node[:poolparty][:proxy_mode] %>
32
+ bind 0.0.0.0:<%= @node[:poolparty][:ports_haproxy].join(",0.0.0.0:") %>
33
+ cookie POOLPARTYPARTY
34
+ <% %x[/usr/bin/server-list-active ip].split("\t").each_with_index do |ip, index| %>
35
+ server <%= index == 0 ? "master" : "node#{index}" %> <%= ip %>:<%= @node[:poolparty][:forwarding_port] %> weight 1 check cookie
36
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <% @node[:poolparty][:ha_nodenames].split(/\t/).each_with_index do |name, index| -%>
2
+ <%= name -%> <%= @node[:poolparty][:ha_nodenames][index] -%>/eth0:0
3
+ <% end %>
@@ -0,0 +1,42 @@
1
+ # File to write debug messages to
2
+ # Default: /var/log/ha-debug
3
+ #debugfile /var/log/ha-debug
4
+
5
+ #
6
+ #
7
+ # File to write other messages to
8
+ # Default: /var/log/ha-log
9
+ #logfile /var/log/ha-log
10
+
11
+ #
12
+ #
13
+ # Facility to use for syslog()/logger
14
+ # Default: daemon
15
+ logfacility daemon
16
+
17
+
18
+ # Entity to be shown at beginning of a message
19
+ # for logging daemon
20
+ # Default: "logd"
21
+ #entity logd
22
+
23
+
24
+ # Do we register to apphbd
25
+ # Default: no
26
+ #useapphbd no
27
+
28
+ # There are two processes running for logging daemon
29
+ # 1. parent process which reads messages from all client channels
30
+ # and writes them to the child process
31
+ #
32
+ # 2. the child process which reads messages from the parent process through IPC
33
+ # and writes them to syslog/disk
34
+
35
+
36
+ # set the send queue length from the parent process to the child process
37
+ #
38
+ #sendqlen 256
39
+
40
+ # set the recv queue length in child process
41
+ #
42
+ #recvqlen 256
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ exec svlogd -tt ./main
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+
3
+ exec 2>&1
4
+ . /etc/profile && server-start-client
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ exec svlogd -tt ./main
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+
3
+ exec 2>&1
4
+ . /etc/profile && server-start-master
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ exec svlogd -tt ./main
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+
3
+ exec 2>&1
4
+ . /etc/profile && server-start-node
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'rack'
4
+ require 'json'
5
+ require 'thin'
6
+ require "poolparty/monitors"
7
+
8
+ app = Rack::Builder.new do
9
+ use Rack::Reloader, 2
10
+ use Rack::ShowExceptions
11
+ use Rack::Lint
12
+ # use Rack::PostBodyContentTypeParser #parses json requests to params hash
13
+ run Monitors::MonitorRack.new()
14
+ end
15
+
16
+ run app
@@ -0,0 +1,19 @@
1
+ [fileserver]
2
+ allow *
3
+ allow *.internal
4
+
5
+ [puppetmaster]
6
+ allow *
7
+ allow *.internal
8
+
9
+ [puppetrunner]
10
+ allow *
11
+ allow *.internal
12
+
13
+ [puppetbucket]
14
+ allow *
15
+ allow *.internal
16
+
17
+ [puppetreports]
18
+ allow *
19
+ allow *.internal
@@ -0,0 +1,14 @@
1
+ #!/bin/sh
2
+ # Based on puppet High Availability recipe
3
+ #
4
+ # http://reductivelabs.com/trac/puppet/wiki/Recipes/HighAvailability
5
+ # Modified for PoolParty
6
+ #
7
+ exitstatus=0
8
+ processid=`ps aux | grep puppetmasterd | awk '{print $2}'`
9
+
10
+ if [ -z $processid ] || test `netstat -apn | grep "${processid}/ruby" | wc -l` -eq 0 ; then
11
+ exitstatus=1
12
+ fi
13
+
14
+ exit $exitstatus
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ::File.open("/etc/hosts", "a+") do |f|
4
+ str = "127.0.0.1 localhost master puppet\n"
5
+ f << str if f.read.scan(Regexp.new(str)).empty?
6
+ end
@@ -0,0 +1,2 @@
1
+ [main]
2
+ modulepath = /etc/poolparty/modules:$confdir/modules:/usr/share/puppet/modules
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env bash
2
+ . /etc/profile
3
+ echo 'checking if puppet is running'
4
+ PUPRUN=`ps aux | grep \/usr\/bin\/puppet\/ | grep -v grep | wc -c`
5
+ echo $PUPRUN
6
+ if [ $PUPRUN -eq 0 ]; then
7
+ # /usr/bin/puppet -d --logdest syslog /etc/puppet/manifests/site.pp
8
+ /usr/bin/puppet -d /etc/puppet/manifests/site.pp
9
+ echo 'puppet was run'
10
+ # echo 'puppet was run `date`'>>/root/log/pool.log
11
+ else
12
+ echo 'puppet was not run. It may already be running.'
13
+ # echo 'puppet was not run. It may already be running.' >> /root/log/pool.log
14
+ fi
@@ -0,0 +1,4 @@
1
+ node default {
2
+ include poolparty
3
+ }
4
+ import 'classes/*.pp'
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env bash
2
+ . /etc/profile
3
+ echo 'checking if puppet is running'
4
+ PUPRUN=`ps aux | grep \/usr\/bin\/puppet\/ | grep -v grep | wc -c`
5
+ echo "$PUPRUN"
6
+ if [ $PUPRUN -eq 0 ]; then
7
+ # /usr/bin/puppet -d --logdest syslog /etc/puppet/manifests/site.pp
8
+ /usr/bin/puppet -d /etc/puppet/manifests/site.pp
9
+ echo "puppet was run"
10
+ echo "puppet was run `date`">>/root/log/pool.log
11
+ else
12
+ echo "puppet was not run. It may already be running."
13
+ echo "puppet was not run. It may already be running.">>/root/log/pool.log
14
+ fi
@@ -0,0 +1,19 @@
1
+ # Configuration file for Yaws HTTP daemon
2
+
3
+ # This config defines virtual server localhost. It is
4
+ # enabled by default. If you want to disable it, remove
5
+ # symlink from /etc/yaws/conf.d/.
6
+
7
+ # Instead you may edit this file and after that reload
8
+ # yaws configureation using invoke-rc.d yaws reload
9
+
10
+ # (If you want to use privileged port, run yaws as root,
11
+ # setting YAWS_USER in /etc/default/yaws, or use port
12
+ # redirection, e.g. via iptables.)
13
+
14
+ <server localhost>
15
+ port = 8000
16
+ listen = 0.0.0.0
17
+ docroot = /var/www/cloudpanel
18
+ # dir_listings = true
19
+ </server>
@@ -0,0 +1,15 @@
1
+ module PoolParty
2
+ module VERSION #:nodoc:
3
+ MAJOR = 1
4
+ MINOR = 0
5
+ TINY = 0
6
+
7
+ STRING = [MAJOR, MINOR, TINY].join('.')
8
+ end
9
+ class Version
10
+ def self.to_s
11
+ [VERSION::MAJOR, VERSION::MINOR, VERSION::TINY].join('.')
12
+ end
13
+ end
14
+
15
+ end
data/lib/poolparty.rb ADDED
@@ -0,0 +1,148 @@
1
+ $LOAD_PATH<< File.dirname(__FILE__)
2
+ # Load required gems
3
+ #TODO: remove activesupport
4
+ @required_software = Array.new
5
+ %w(rubygems activesupport ftools logging resolv ruby2ruby digest/sha2 json pp).each do |lib|
6
+ begin
7
+ require lib
8
+ rescue Exception => e
9
+ @required_software << lib
10
+ end
11
+ end
12
+
13
+ require "#{File.dirname(__FILE__)}/poolparty/helpers/nice_printer"
14
+
15
+ unless @required_software.empty?
16
+ @np = NicePrinter.new(45)
17
+
18
+ # error_initializing_message.txt
19
+ @np.header
20
+ @np.center("Error")
21
+ @np.left("Missing required software")
22
+ @required_software.map {|a| @np << " #{a}" }
23
+ @np << "Please install the required software"
24
+ @np << "and try again"
25
+ @np.empty
26
+ @np << "Try installing #{@required_software.size == 1 ? "it" : "them"} with"
27
+ @required_software.map {|a| @np << " gem install #{a}" }
28
+ @np.empty
29
+ @np.footer
30
+
31
+ @np.print
32
+ exit(0)
33
+ end
34
+
35
+ Dir.glob(File.join(File.dirname(__FILE__),'..', 'vendor/gems/*/lib/*.rb')).each do |d|
36
+ require d
37
+ end
38
+
39
+ t=Time.now
40
+ ## Load PoolParty
41
+ %w(version).each do |f|
42
+ require "#{File.dirname(__FILE__)}/poolparty/#{f}"
43
+ end
44
+
45
+ def PoolParty.require_directory(dir)
46
+ if ::File.file?(dir)
47
+ puts "#{::File.expand_path(dir)}" if $DEBUGGING || $GENERATING_MANIFEST
48
+ require dir
49
+ else
50
+ Dir["#{dir}/*.rb"].sort.each do |file|
51
+ puts "#{::File.expand_path(file)}" if $DEBUGGING || $GENERATING_MANIFEST
52
+ require "#{file}" if ::File.file?(file)
53
+ end
54
+ Dir["#{dir}/*"].sort.each do |dir|
55
+ require_directory(dir) if ::File.directory?(dir)
56
+ end
57
+ end
58
+ end
59
+
60
+ #load poolparty framework in specific order
61
+ $_poolparty_load_directories = [
62
+ "core",
63
+ "dependencies.rb",
64
+ "dependency_resolver/dependency_resolver_cloud_extensions.rb",
65
+ "dependency_resolver/dependency_resolver.rb",
66
+ "poolparty/poolparty_base_class.rb",
67
+ "modules",
68
+ "exceptions",
69
+ 'poolparty/key.rb',
70
+ "dependency_resolver",
71
+ "aska",
72
+ "config",
73
+ "monitors",
74
+ "capistrano.rb",
75
+ 'provisioners/provisioner_base.rb',
76
+ 'provisioners/capistrano/capistrano.rb',
77
+ 'provision',
78
+ "extra",
79
+ "net",
80
+ "helpers",
81
+ "poolparty/resource.rb",
82
+ "poolparty/service.rb",
83
+ "resources",
84
+ "services",
85
+ "poolparty/cloud.rb",
86
+ "poolparty",
87
+ "templates"
88
+ ]
89
+ manifest_file_location = ::File.join(::File.dirname(__FILE__), '../config/manifest.pp')
90
+
91
+ if ::File.file?(manifest_file_location)
92
+ ::File.readlines(manifest_file_location).each do |line|
93
+ puts "#{::File.expand_path(line)}" if $DEBUGGING
94
+ require "#{line.gsub(/\n/, '')}"
95
+ end
96
+ else
97
+ $_poolparty_load_directories.each do |dir|
98
+ PoolParty.require_directory(::File.join(::File.dirname(__FILE__),'poolparty', dir))
99
+ end
100
+ end
101
+
102
+ Logging.init :debug, :info, :warn, :error, :fatal
103
+
104
+ module PoolParty
105
+ include FileWriter
106
+
107
+ def log
108
+ @logger ||= make_new_logger rescue STDOUT
109
+ end
110
+ def reset!
111
+ $pools = $clouds = $plugins = @describe_instances = nil
112
+ end
113
+ class PoolParty
114
+ def initialize(spec)
115
+ reset!
116
+ Script.inflate(spec) if spec
117
+ end
118
+ end
119
+
120
+ private
121
+ #:nodoc:#
122
+ def make_new_logger
123
+ FileUtils.mkdir_p ::File.dirname(Default.pool_logger_location) unless ::File.directory?(::File.dirname(Default.pool_logger_location))
124
+ Loggable.new
125
+ end
126
+ end
127
+
128
+ class Object
129
+ include PoolParty
130
+ include PoolParty::Pool
131
+ include PoolParty::Cloud
132
+
133
+ include PoolParty::DefinableResource
134
+ end
135
+
136
+ class Class
137
+ include PoolParty::PluginModel
138
+ end
139
+
140
+ ## Load PoolParty Plugins and package
141
+ module PoolParty
142
+ %w(plugins base_packages).each do |dir|
143
+ require_directory(::File.join(::File.dirname(__FILE__), 'poolparty', dir))
144
+ end
145
+ end
146
+
147
+ PoolParty.reset!
148
+ puts "duration = #{Time.now-t}" if $DEBUGGING
@@ -0,0 +1,7 @@
1
+ Dir["#{File.dirname(__FILE__)}/poolparty/helpers/**.rb"].each do |lib|
2
+ require lib
3
+ end
4
+
5
+ def help_array
6
+ ["-h", "--help", "-V", "--version", "--debug", "-d"]
7
+ end