poolparty 0.2.69 → 0.2.84

Sign up to get free protection for your applications and to get access to all the features.
Files changed (298) hide show
  1. data/Capfile +1 -0
  2. data/History.txt +6 -0
  3. data/Manifest.txt +140 -143
  4. data/PostInstall.txt +1 -1
  5. data/README.txt +2 -0
  6. data/bin/cloud-configure +5 -2
  7. data/bin/cloud-handle-load +3 -3
  8. data/bin/cloud-maintain +3 -3
  9. data/bin/cloud-provision +6 -5
  10. data/bin/cloud-rsync +28 -0
  11. data/bin/cloud-setup-dev +25 -0
  12. data/bin/cloud-spec +40 -0
  13. data/bin/cloud-start +5 -3
  14. data/bin/server-clean-cert-for +15 -0
  15. data/bin/server-rerun +0 -1
  16. data/bin/server-start-client +1 -1
  17. data/bin/server-start-master +1 -1
  18. data/bin/server-start-node +1 -1
  19. data/bin/server-update-hosts +4 -3
  20. data/bin/server-write-new-nodes +26 -0
  21. data/generators/poolspec/USAGE +2 -2
  22. data/generators/poolspec/poolspec_generator.rb +1 -1
  23. data/lib/erlang/messenger/Makefile +15 -0
  24. data/lib/erlang/messenger/ebin/client_app.beam +0 -0
  25. data/lib/erlang/messenger/ebin/client_server.beam +0 -0
  26. data/lib/erlang/messenger/ebin/erl_crash.dump +10326 -0
  27. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  28. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  29. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  30. data/lib/erlang/messenger/ebin/pm_client_old.beam +0 -0
  31. data/lib/erlang/messenger/ebin/pm_client_supervisor.beam +0 -0
  32. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  33. data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
  34. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  35. data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
  36. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  37. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  38. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  39. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  40. data/lib/erlang/messenger/ebin/pm_spawner.beam +0 -0
  41. data/lib/erlang/messenger/ebin/pm_strings.beam +0 -0
  42. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  43. data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
  44. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  45. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  46. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  47. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  48. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  49. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  50. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  51. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  52. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  53. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  54. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  55. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  56. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  57. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  58. data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
  59. data/lib/erlang/messenger/src/pm_master.erl +5 -0
  60. data/lib/erlang/messenger/src/pm_node.erl +2 -3
  61. data/lib/erlang/messenger/src/pm_spawner.erl +213 -0
  62. data/lib/poolparty/base_packages/heartbeat.rb +57 -43
  63. data/lib/poolparty/base_packages/poolparty.rb +18 -15
  64. data/lib/poolparty/capistrano.rb +18 -0
  65. data/lib/poolparty/core/class.rb +24 -0
  66. data/lib/poolparty/core/kernel.rb +7 -0
  67. data/lib/poolparty/core/module.rb +2 -2
  68. data/lib/poolparty/core/string.rb +1 -1
  69. data/lib/poolparty/dependency_resolutions/puppet.rb +10 -2
  70. data/lib/poolparty/exceptions/ProvisionerException.rb +5 -0
  71. data/lib/poolparty/extra/deployments.rb +31 -0
  72. data/lib/poolparty/helpers/binary.rb +14 -2
  73. data/lib/poolparty/helpers/optioner.rb +61 -22
  74. data/lib/poolparty/helpers/ruberl.rb +33 -0
  75. data/lib/poolparty/modules/cloud_dsl.rb +2 -1
  76. data/lib/poolparty/modules/cloud_resourcer.rb +30 -6
  77. data/lib/poolparty/modules/configurable.rb +2 -0
  78. data/lib/poolparty/modules/file_writer.rb +4 -4
  79. data/lib/poolparty/modules/resourcing_dsl.rb +5 -5
  80. data/lib/poolparty/monitors/base_monitor.rb +1 -1
  81. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +2 -2
  82. data/lib/poolparty/net/messenger.rb +1 -1
  83. data/lib/poolparty/net/remote.rb +2 -2
  84. data/lib/poolparty/net/remote_bases/ec2.rb +51 -11
  85. data/lib/poolparty/net/remote_instance.rb +7 -3
  86. data/lib/poolparty/net/remoter.rb +72 -24
  87. data/lib/poolparty/net/remoter_base.rb +10 -0
  88. data/lib/poolparty/plugins/deploydirectory.rb +10 -5
  89. data/lib/poolparty/plugins/git.rb +51 -0
  90. data/lib/poolparty/{pool → poolparty}/base.rb +4 -2
  91. data/lib/poolparty/{pool → poolparty}/cloud.rb +32 -10
  92. data/lib/poolparty/{pool → poolparty}/plugin_model.rb +4 -4
  93. data/lib/poolparty/{pool → poolparty}/pool.rb +2 -2
  94. data/lib/poolparty/{pool → poolparty}/resource.rb +33 -15
  95. data/lib/poolparty/{pool → poolparty}/resources/class_package.rb +3 -3
  96. data/lib/poolparty/{pool → poolparty}/resources/directory.rb +6 -3
  97. data/lib/poolparty/{pool → poolparty}/resources/exec.rb +2 -5
  98. data/lib/poolparty/{pool → poolparty}/resources/file.rb +3 -3
  99. data/lib/poolparty/{pool → poolparty}/resources/package.rb +1 -1
  100. data/lib/poolparty/{pool → poolparty}/resources/remote_file.rb +1 -1
  101. data/lib/poolparty/poolparty/resources/remote_user.rb +17 -0
  102. data/lib/poolparty/{pool → poolparty}/resources/sshkey.rb +5 -1
  103. data/lib/poolparty/{pool → poolparty}/script.rb +1 -1
  104. data/lib/poolparty/provisioners/capistrano/capistrano.rb +127 -0
  105. data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +58 -0
  106. data/lib/poolparty/provisioners/capistrano/recipies/base.rb +104 -0
  107. data/lib/poolparty/provisioners/capistrano/recipies/master.rb +121 -0
  108. data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +12 -0
  109. data/lib/poolparty/provisioners/provisioner_base.rb +204 -0
  110. data/lib/poolparty/spec/core/string.rb +16 -0
  111. data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +26 -0
  112. data/lib/poolparty/spec/matchers/have_cron.rb +28 -0
  113. data/lib/poolparty/spec/matchers/have_deploydirectory.rb +15 -0
  114. data/lib/poolparty/spec/matchers/have_directory.rb +31 -0
  115. data/lib/poolparty/spec/matchers/have_exec.rb +28 -0
  116. data/lib/poolparty/spec/matchers/have_file.rb +28 -0
  117. data/lib/poolparty/spec/matchers/have_gempackage.rb +28 -0
  118. data/lib/poolparty/spec/matchers/have_git.rb +28 -0
  119. data/lib/poolparty/spec/matchers/have_host.rb +28 -0
  120. data/lib/poolparty/spec/matchers/have_mount.rb +28 -0
  121. data/lib/poolparty/spec/matchers/have_package.rb +28 -0
  122. data/lib/poolparty/spec/matchers/have_remotefile.rb +28 -0
  123. data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +28 -0
  124. data/lib/poolparty/spec/matchers/have_service.rb +28 -0
  125. data/lib/poolparty/spec/matchers/have_sshkey.rb +28 -0
  126. data/lib/poolparty/spec/matchers/have_symlink.rb +28 -0
  127. data/lib/poolparty/spec/matchers/have_variable.rb +32 -0
  128. data/lib/poolparty/spec/spec/dynamic_matchers.rb +63 -0
  129. data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +7 -0
  130. data/lib/poolparty/spec/templates/have_base.rb +28 -0
  131. data/lib/poolparty/templates/authkeys +1 -1
  132. data/lib/poolparty/templates/gem +12 -10
  133. data/lib/poolparty/templates/ha.cf +9 -11
  134. data/lib/poolparty/templates/haresources +1 -1
  135. data/lib/poolparty/templates/logd.cf +42 -0
  136. data/lib/poolparty/templates/puppet.conf +18 -8
  137. data/lib/poolparty/templates/puppetcleaner +9 -3
  138. data/lib/poolparty/templates/puppetrerun +16 -3
  139. data/lib/poolparty/templates/puppetrunner +1 -1
  140. data/lib/poolparty/version.rb +1 -1
  141. data/lib/poolparty.rb +12 -8
  142. data/lib/poolpartyspec.rb +34 -0
  143. data/poolparty.gemspec +151 -149
  144. data/spec/poolparty/aska/aska_spec.rb +0 -5
  145. data/spec/poolparty/bin/console_spec.rb +3 -0
  146. data/spec/poolparty/extra/deployments_spec.rb +64 -0
  147. data/spec/poolparty/helpers/binary_spec.rb +1 -1
  148. data/spec/poolparty/helpers/optioner_spec.rb +17 -4
  149. data/spec/poolparty/modules/cloud_resourcer_spec.rb +19 -2
  150. data/spec/poolparty/modules/configurable_spec.rb +2 -2
  151. data/spec/poolparty/net/remote_bases/ec2_spec.rb +5 -2
  152. data/spec/poolparty/net/remote_instance_spec.rb +5 -0
  153. data/spec/poolparty/net/remote_spec.rb +24 -31
  154. data/spec/poolparty/net/remoter_base_spec.rb +11 -6
  155. data/spec/poolparty/net/remoter_spec.rb +55 -27
  156. data/spec/poolparty/plugins/deploydirectory_spec.rb +1 -0
  157. data/spec/poolparty/plugins/git_spec.rb +45 -0
  158. data/spec/poolparty/{pool → poolparty}/cloud_spec.rb +41 -0
  159. data/spec/poolparty/{pool → poolparty}/plugin_spec.rb +1 -1
  160. data/spec/poolparty/{pool → poolparty}/pool_spec.rb +1 -1
  161. data/spec/poolparty/{pool → poolparty}/resource_spec.rb +15 -2
  162. data/spec/poolparty/poolparty/resources/user_spec.rb +38 -0
  163. data/spec/poolparty/poolparty/test_plugins/virtual_host_template.erb +0 -0
  164. data/spec/poolparty/poolparty_spec.rb +1 -1
  165. data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +27 -0
  166. data/spec/poolparty/provisioners/provisioner_base_spec.rb +120 -0
  167. data/spec/poolparty/spec/core/string_spec.rb +57 -0
  168. data/spec/poolparty/spec_helper.rb +48 -6
  169. data/tasks/deployment.rake +3 -5
  170. data/tasks/spec.rake +2 -3
  171. data/website/index.html +2 -2
  172. metadata +150 -148
  173. data/lib/erlang/messenger/lib/eunit/.svn/all-wcprops +0 -53
  174. data/lib/erlang/messenger/lib/eunit/.svn/entries +0 -140
  175. data/lib/erlang/messenger/lib/eunit/.svn/format +0 -1
  176. data/lib/erlang/messenger/lib/eunit/.svn/prop-base/NOTES.svn-base +0 -5
  177. data/lib/erlang/messenger/lib/eunit/.svn/text-base/AUTHORS.svn-base +0 -2
  178. data/lib/erlang/messenger/lib/eunit/.svn/text-base/CHANGELOG.svn-base +0 -14
  179. data/lib/erlang/messenger/lib/eunit/.svn/text-base/COPYING.svn-base +0 -504
  180. data/lib/erlang/messenger/lib/eunit/.svn/text-base/NOTES.svn-base +0 -276
  181. data/lib/erlang/messenger/lib/eunit/.svn/text-base/README.svn-base +0 -3
  182. data/lib/erlang/messenger/lib/eunit/.svn/text-base/sys.config.svn-base +0 -9
  183. data/lib/erlang/messenger/lib/eunit/.svn/text-base/vsn.mk.svn-base +0 -1
  184. data/lib/erlang/messenger/lib/eunit/doc/.svn/all-wcprops +0 -59
  185. data/lib/erlang/messenger/lib/eunit/doc/.svn/entries +0 -142
  186. data/lib/erlang/messenger/lib/eunit/doc/.svn/format +0 -1
  187. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/erlang.png.svn-base +0 -5
  188. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/eunit.html.svn-base +0 -5
  189. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/index.html.svn-base +0 -5
  190. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/modules-frame.html.svn-base +0 -5
  191. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/overview-summary.html.svn-base +0 -5
  192. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/packages-frame.html.svn-base +0 -5
  193. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/edoc-info.svn-base +0 -3
  194. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/erlang.png.svn-base +0 -0
  195. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/eunit.html.svn-base +0 -172
  196. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/index.html.svn-base +0 -17
  197. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/modules-frame.html.svn-base +0 -12
  198. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/overview-summary.html.svn-base +0 -984
  199. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/overview.edoc.svn-base +0 -980
  200. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/packages-frame.html.svn-base +0 -11
  201. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/stylesheet.css.svn-base +0 -55
  202. data/lib/erlang/messenger/lib/eunit/ebin/.svn/all-wcprops +0 -5
  203. data/lib/erlang/messenger/lib/eunit/ebin/.svn/dir-prop-base +0 -8
  204. data/lib/erlang/messenger/lib/eunit/ebin/.svn/entries +0 -28
  205. data/lib/erlang/messenger/lib/eunit/ebin/.svn/format +0 -1
  206. data/lib/erlang/messenger/lib/eunit/examples/.svn/all-wcprops +0 -23
  207. data/lib/erlang/messenger/lib/eunit/examples/.svn/entries +0 -66
  208. data/lib/erlang/messenger/lib/eunit/examples/.svn/format +0 -1
  209. data/lib/erlang/messenger/lib/eunit/examples/.svn/prop-base/eunit_examples.erl.svn-base +0 -5
  210. data/lib/erlang/messenger/lib/eunit/examples/.svn/prop-base/fib.erl.svn-base +0 -5
  211. data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/eunit_examples.erl.svn-base +0 -339
  212. data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/fib.erl.svn-base +0 -19
  213. data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/tests.txt.svn-base +0 -1
  214. data/lib/erlang/messenger/lib/eunit/include/.svn/all-wcprops +0 -11
  215. data/lib/erlang/messenger/lib/eunit/include/.svn/entries +0 -41
  216. data/lib/erlang/messenger/lib/eunit/include/.svn/format +0 -1
  217. data/lib/erlang/messenger/lib/eunit/include/.svn/prop-base/eunit.hrl.svn-base +0 -5
  218. data/lib/erlang/messenger/lib/eunit/include/.svn/text-base/eunit.hrl.svn-base +0 -313
  219. data/lib/erlang/messenger/lib/eunit/src/.svn/all-wcprops +0 -113
  220. data/lib/erlang/messenger/lib/eunit/src/.svn/entries +0 -259
  221. data/lib/erlang/messenger/lib/eunit/src/.svn/format +0 -1
  222. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/autoload.erl.svn-base +0 -5
  223. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/code_monitor.erl.svn-base +0 -5
  224. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit.erl.svn-base +0 -5
  225. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_autoexport.erl.svn-base +0 -5
  226. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_data.erl.svn-base +0 -5
  227. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_internal.hrl.svn-base +0 -5
  228. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_lib.erl.svn-base +0 -5
  229. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_proc.erl.svn-base +0 -5
  230. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_serial.erl.svn-base +0 -5
  231. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_server.erl.svn-base +0 -5
  232. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_striptests.erl.svn-base +0 -5
  233. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_test.erl.svn-base +0 -5
  234. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_tests.erl.svn-base +0 -5
  235. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_tty.erl.svn-base +0 -5
  236. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/file_monitor.erl.svn-base +0 -5
  237. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/autoload.erl.svn-base +0 -388
  238. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/code_monitor.erl.svn-base +0 -243
  239. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.app.src.svn-base +0 -21
  240. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.appup.src.svn-base +0 -1
  241. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.erl.svn-base +0 -196
  242. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_autoexport.erl.svn-base +0 -102
  243. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_data.erl.svn-base +0 -798
  244. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_internal.hrl.svn-base +0 -48
  245. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_lib.erl.svn-base +0 -682
  246. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_proc.erl.svn-base +0 -552
  247. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_serial.erl.svn-base +0 -157
  248. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_server.erl.svn-base +0 -340
  249. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_striptests.erl.svn-base +0 -64
  250. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_test.erl.svn-base +0 -334
  251. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_tests.erl.svn-base +0 -45
  252. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_tty.erl.svn-base +0 -272
  253. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/file_monitor.erl.svn-base +0 -409
  254. data/lib/erlang/messenger/src/pm_client_old.erl +0 -52
  255. data/lib/poolparty/helpers/provisioner_base.rb +0 -346
  256. data/lib/poolparty/helpers/provisioners/master.rb +0 -205
  257. data/lib/poolparty/helpers/provisioners/slave.rb +0 -64
  258. data/spec/poolparty/helpers/provisioner_base_spec.rb +0 -134
  259. data/spec/poolparty/helpers/provisioners/master_spec.rb +0 -54
  260. data/spec/poolparty/helpers/provisioners/slave_spec.rb +0 -28
  261. /data/lib/poolparty/{pool → poolparty}/custom_resource.rb +0 -0
  262. /data/lib/poolparty/{pool → poolparty}/loggable.rb +0 -0
  263. /data/lib/poolparty/{pool → poolparty}/plugin.rb +0 -0
  264. /data/lib/poolparty/{pool → poolparty}/resources/conditional.rb +0 -0
  265. /data/lib/poolparty/{pool → poolparty}/resources/cron.rb +0 -0
  266. /data/lib/poolparty/{pool → poolparty}/resources/custom_service.rb +0 -0
  267. /data/lib/poolparty/{pool → poolparty}/resources/gem_package.rb +0 -0
  268. /data/lib/poolparty/{pool → poolparty}/resources/host.rb +0 -0
  269. /data/lib/poolparty/{pool → poolparty}/resources/mount.rb +0 -0
  270. /data/lib/poolparty/{pool → poolparty}/resources/service.rb +0 -0
  271. /data/lib/poolparty/{pool → poolparty}/resources/symlink.rb +0 -0
  272. /data/lib/poolparty/{pool → poolparty}/resources/variable.rb +0 -0
  273. /data/log/{pool.logs → pool.log} +0 -0
  274. /data/spec/poolparty/{pool/test_plugins/virtual_host_template.erb → net/log/pool.log} +0 -0
  275. /data/spec/poolparty/{pool → poolparty}/base_spec.rb +0 -0
  276. /data/spec/poolparty/{pool → poolparty}/configurers/files/ruby_basic.rb +0 -0
  277. /data/spec/poolparty/{pool → poolparty}/configurers/files/ruby_plugins.rb +0 -0
  278. /data/spec/poolparty/{pool → poolparty}/configurers/ruby_spec.rb +0 -0
  279. /data/spec/poolparty/{pool → poolparty}/custom_resource_spec.rb +0 -0
  280. /data/spec/poolparty/{pool → poolparty}/example_spec.rb +0 -0
  281. /data/spec/poolparty/{pool → poolparty}/plugin_model_spec.rb +0 -0
  282. /data/spec/poolparty/{pool → poolparty}/resources/class_package_spec.rb +0 -0
  283. /data/spec/poolparty/{pool → poolparty}/resources/conditional_spec.rb +0 -0
  284. /data/spec/poolparty/{pool → poolparty}/resources/cron_spec.rb +0 -0
  285. /data/spec/poolparty/{pool → poolparty}/resources/directory_spec.rb +0 -0
  286. /data/spec/poolparty/{pool → poolparty}/resources/exec_spec.rb +0 -0
  287. /data/spec/poolparty/{pool → poolparty}/resources/file_spec.rb +0 -0
  288. /data/spec/poolparty/{pool → poolparty}/resources/gem_spec.rb +0 -0
  289. /data/spec/poolparty/{pool → poolparty}/resources/host_spec.rb +0 -0
  290. /data/spec/poolparty/{pool → poolparty}/resources/package_spec.rb +0 -0
  291. /data/spec/poolparty/{pool → poolparty}/resources/remote_file_spec.rb +0 -0
  292. /data/spec/poolparty/{pool → poolparty}/resources/service_spec.rb +0 -0
  293. /data/spec/poolparty/{pool → poolparty}/resources/sshkey_spec.rb +0 -0
  294. /data/spec/poolparty/{pool → poolparty}/resources/symlink_spec.rb +0 -0
  295. /data/spec/poolparty/{pool → poolparty}/resources/variable_spec.rb +0 -0
  296. /data/spec/poolparty/{pool → poolparty}/script_spec.rb +0 -0
  297. /data/spec/poolparty/{pool → poolparty}/test_plugins/sshkey_test +0 -0
  298. /data/spec/poolparty/{pool → poolparty}/test_plugins/webserver.rb +0 -0
@@ -0,0 +1,32 @@
1
+ module Spec
2
+ module Matchers
3
+ module SpecExtensions
4
+ class HaveVariable < SpecExtensionsBase
5
+ def initialize(varname, expected,extra="")
6
+ @varname = varname
7
+ @expected = expected
8
+ @extra = extra
9
+ end
10
+ def matches?(target)
11
+ @target = target
12
+ is_present?
13
+ end
14
+ def is_present?
15
+ @target.match(/\$#{@varname}(\W+)=(\W+)#{@expected}/)[0]
16
+ end
17
+ def failure_message
18
+ "expected #{@target.inspect} to have variable #{@expected}"
19
+ end
20
+ def negative_failure_message
21
+ "expected #{@target.inspect} not to have variable #{@expected}"
22
+ end
23
+ def type
24
+ "variable"
25
+ end
26
+ end
27
+ end
28
+ def have_variable(name, extra="")
29
+ SpecExtensions::HaveVariable.new(name, extra)
30
+ end
31
+ end
32
+ end
@@ -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
@@ -1,2 +1,2 @@
1
1
  auth 1
2
- 1 md5 PasswordForpoolpartyClusterApplicationButItIsOnlyADefault
2
+ 1 sha1 PasswordForpoolpartyClusterApplicationButItIsOnlyADefault
@@ -1,20 +1,18 @@
1
- #! /usr/bin/ruby1.8
1
+ #!/usr/bin/env ruby
2
2
  #--
3
3
  # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
4
  # All rights reserved.
5
5
  # See LICENSE.txt for permissions.
6
- # /usr/bin/gem is broken, so... have to use this until it is fixed
7
6
  #++
8
7
 
8
+ require 'rubygems'
9
+ require 'rubygems/gem_runner'
10
+ require 'rubygems/exceptions'
9
11
 
10
- require "rubygems"
11
- require "rubygems/gem_runner"
12
- Gem.manage_gems
12
+ required_version = Gem::Requirement.new "> 1.8.3"
13
13
 
14
- required_version = Gem::Version::Requirement.new(">= 1.8.0")
15
- unless required_version.satisfied_by?(Gem::Version.new(RUBY_VERSION))
16
- puts "Expected Ruby Version #{required_version}, was #{RUBY_VERSION}"
17
- exit(1)
14
+ unless required_version.satisfied_by? Gem.ruby_version then
15
+ abort "Expected Ruby Version #{required_version}, was #{Gem.ruby_version}"
18
16
  end
19
17
 
20
18
  # We need to preserve the original ARGV to use for passing gem options
@@ -22,4 +20,8 @@ end
22
20
  # it...its for the source building process.
23
21
  args = !ARGV.include?("--") ? ARGV.clone : ARGV[0...ARGV.index("--")]
24
22
 
25
- Gem::GemRunner.new.run(args)
23
+ begin
24
+ Gem::GemRunner.new.run args
25
+ rescue Gem::SystemExitException => e
26
+ exit e.exit_code
27
+ end
@@ -1,19 +1,17 @@
1
1
  # Heartbeat
2
- keepalive 2 # Time inbetween heartbeats
3
- deadtime 32 # wait 32 seconds before declaring dead
2
+ keepalive 5 # Time inbetween heartbeats
3
+ deadtime 32 # wait 10 seconds before declaring dead
4
4
  warntime 16 # issue a warning halfway through
5
5
  initdead 60 # Don't boot instances between 60 seconds of each other
6
6
  logfacility daemon # Log to syslog as facility "daemon"
7
- auto_failback off
7
+ auto_failback on
8
8
  use_logd yes
9
- bcast eth0
10
- crm on
11
- logfile /var/log/ha.log
9
+ crm yes
12
10
 
13
11
  <% ha_node_ips.chomp.split(/\t/).each_with_index do |ip,index| -%>
14
- <% if $hostname != ha_nodenames.chomp.split(/\t/)[index] -%>
15
- ucast eth0 <%= ip %>
16
- <% end %>
17
- <% end %>
12
+ <% if hostname != ha_nodenames.chomp.split(/\t/)[index] -%>
13
+ ucast eth0 <%= ip %>
14
+ <% end -%>
15
+ <% end -%>
18
16
 
19
- node <%= ha_nodenames %>
17
+ node <%= ha_nodenames.chomp.split(/\t/).join(" ") %>
@@ -1,3 +1,3 @@
1
- <% ha_nodenames.each_with_index do |name, index| -%>
1
+ <% ha_nodenames.split(/\t/).each_with_index do |name, index| -%>
2
2
  <%= name -%> <%= ha_node_ips[index] -%>/eth0:0
3
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
@@ -1,16 +1,26 @@
1
1
  [main]
2
2
  vardir = /var/lib/puppet
3
3
  logdir = /var/log/puppet
4
- pluginsync=false
5
- factsync=false
4
+ ssldir = /etc/poolparty/ssl
5
+ pluginsync = false
6
+ factsync = false
7
+
8
+ [puppetca]
9
+ config = $config/puppetca.conf
6
10
 
11
+ [certificates]
12
+ publickeydir = /etc/poolparty/public_keys
13
+ certdir = /etc/poolparty/certs
14
+ privatekeydir = /etc/poolparty/private_keys
15
+
16
+ [ca]
17
+ signeddir = /etc/poolparty/signed
18
+
7
19
  [puppetd]
8
20
  localconfig = $vardir/localconfig
9
- report=true
10
- server=master
11
-
12
- [puppetrun]
13
- certname = master
21
+ report = true
22
+ server = master
14
23
 
15
24
  [puppetmasterd]
16
- certname = master
25
+ certname = master
26
+ server = master
@@ -1,6 +1,12 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- # /var/lib/puppet/state/puppetdlock
3
+ ARGS=1 # Number of arguments expected.
4
+ E_BADARGS=85 # Exit value if incorrect number of args passed.
5
+
6
+ test $# -ne $ARGS && echo "Usage: `basename $0` requires $ARGS argument(s)" && exit $E_BADARGS
7
+
4
8
  . /etc/profile
5
- ps aux | grep puppetmaster | awk '{print $2}' | xargs kill
6
- /etc/init.d/puppetmaster stop;rm -rf /etc/puppet/ssl;/etc/init.d/puppetmaster start;puppetmasterd --verbose
9
+ HN=$1
10
+
11
+ echo "Cleaning $1 signed certs"
12
+ rm /etc/poolparty/ssl/ca/signed/$HN.*
@@ -2,8 +2,21 @@
2
2
 
3
3
  . /etc/profile
4
4
  if [ $(/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master)]; then
5
- echo "Run successfully"
5
+ echo "Run successfully" && exit 0
6
6
  else
7
- ps aux | grep puppetmaster | awk '{print $2}' | xargs kill;rm -rf /etc/puppet/ssl;puppetmasterd --verbose;/etc/init.d/puppetmaster start
8
- /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master
7
+ echo "Clearing old certs"
8
+ HN=`hostname`
9
+ if [[ $HN == "master" ]]; then
10
+ rm /etc/poolparty/ssl/ca/signed/$HN*
11
+ if [ $(/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master) ]; then
12
+ echo "Run successfully" && exit 0
13
+ else
14
+ # /etc/init.d/puppetmaster stop;rm -rf /etc/poolparty/ssl;/etc/init.d/puppetmaster start
15
+ rm /etc/poolparty/ssl/$HN*
16
+ /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master
17
+ fi
18
+ else
19
+ rm /etc/poolparty/ssl/ca/signed/$HN*
20
+ /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master
21
+ fi
9
22
  fi
@@ -4,5 +4,5 @@
4
4
  if [ $(/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master)]; then
5
5
  echo "Run successfully"
6
6
  else
7
- /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master
7
+ /usr/bin/puppetrerun;/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master
8
8
  fi
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 69
5
+ TINY = 84
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/poolparty.rb CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  # Load required gems
4
4
  @required_software = Array.new
5
- %w(activesupport ftools logging resolv ruby2ruby).each do |lib|
5
+ %w(activesupport ftools logging resolv ruby2ruby digest/sha2 open3 capistrano).each do |lib|
6
6
  begin
7
7
  require lib
8
8
  rescue Exception => e
@@ -36,21 +36,23 @@ end
36
36
  ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__)
37
37
 
38
38
  ## Load PoolParty
39
- require "#{File.dirname(__FILE__)}/poolparty/version"
39
+ %w(version).each do |f|
40
+ require "#{File.dirname(__FILE__)}/poolparty/#{f}"
41
+ end
40
42
 
41
- %w(core modules exceptions dependency_resolutions aska monitors net).each do |dir|
43
+ %w(core modules exceptions dependency_resolutions aska monitors provisioners extra net).each do |dir|
42
44
  Dir[File.dirname(__FILE__) + "/poolparty/#{dir}/**.rb"].each do |file|
43
45
  require file
44
46
  end
45
47
  end
46
48
 
47
- Kernel.load_p File.dirname(__FILE__) + "/poolparty/pool"
49
+ Kernel.load_p File.dirname(__FILE__) + "/poolparty/poolparty"
48
50
  Logging.init :debug, :info, :warn, :error, :fatal
49
51
 
50
52
  module PoolParty
51
53
  include FileWriter
52
54
 
53
- def logger
55
+ def log
54
56
  @logger ||= make_new_logger
55
57
  end
56
58
 
@@ -81,8 +83,10 @@ class Class
81
83
  end
82
84
 
83
85
  ## Load PoolParty Plugins and package
84
- %w(plugins base_packages).each do |dir|
85
- Dir[File.dirname(__FILE__) + "/poolparty/#{dir}/**.rb"].each do |file|
86
- require file
86
+ module PoolParty
87
+ %w(plugins base_packages).each do |dir|
88
+ Dir[::File.dirname(__FILE__) + "/poolparty/#{dir}/*.rb"].each do |file|
89
+ require file
90
+ end
87
91
  end
88
92
  end
@@ -0,0 +1,34 @@
1
+ ["core", "spec"].each do |dir|
2
+ Dir[File.join(File.dirname(__FILE__), "poolparty", "spec", dir, "*.rb")].each {|f| require f}
3
+ end
4
+
5
+ class TestCloudClass < PoolParty::Cloud::Cloud
6
+ def build_test_manifest
7
+ reset_resources!
8
+ realize_plugins!
9
+
10
+ returning Array.new do |arr|
11
+
12
+ services.each do |service|
13
+ service.options.merge!(:name => service.name)
14
+ classpackage_with_self(service)
15
+ end
16
+
17
+ global_classpackages.each do |cls|
18
+ arr << cls.to_string
19
+ end
20
+
21
+ end.join("\n")
22
+ end
23
+ end
24
+
25
+ def new_test_cloud(&block)
26
+ TestCloudClass.new(:test_cloud, &block)
27
+ end
28
+
29
+ def load_test_cloud(name, poolfile=nil)
30
+ PoolParty::Script.inflate_file poolfile
31
+ blk = cloud(name).stored_block.dup
32
+ PoolParty::Pool.reset!
33
+ new_test_cloud &blk
34
+ end