poolparty 0.2.69 → 0.2.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,120 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ include Provisioner
4
+
5
+ describe "ProvisionerBase" do
6
+ before(:each) do
7
+ @cloud = cloud :app do;end
8
+ @remote_instance = PoolParty::Remote::RemoteInstance.new({:ip => "192.168.0.1", :status => "running", :name => "master"}, @cloud)
9
+ @pb = PoolParty::Provisioner::ProvisionerBase.new(@remote_instance, @cloud)
10
+ stub_list_from_remote_for(@cloud)
11
+ stub_remoting_methods_for(@cloud)
12
+ end
13
+ describe "class methods" do
14
+ it "should have install" do
15
+ ProvisionerBase.respond_to?(:install).should == true
16
+ end
17
+ it "should have configure" do
18
+ ProvisionerBase.respond_to?(:configure).should == true
19
+ end
20
+ describe "in action" do
21
+ it "should call a new ProvisionerBase" do
22
+ ProvisionerBase.should_receive(:new).with(@remote_instance, @cloud).and_return @pb
23
+ ProvisionerBase.install(@remote_instance, @cloud)
24
+ end
25
+ end
26
+ end
27
+ describe "instance methods" do
28
+ before(:each) do
29
+ @pb = PoolParty::Provisioner::ProvisionerBase.new(@remote_instance, @cloud)
30
+ stub_list_from_remote_for(@pb)
31
+ stub_list_from_remote_for(@cloud)
32
+ stub_remoting_methods_for(@pb)
33
+ end
34
+ it "should store the instance on the ProvisionerBase" do
35
+ @pb.instance.should == @remote_instance
36
+ end
37
+ it "should store the cloud on the ProvisionerBase" do
38
+ @pb.cloud.should == @cloud
39
+ end
40
+ it "should say provision_master? is true if the remote instance name is master" do
41
+ @pb.provision_master?.should == true
42
+ end
43
+ it "should say the provision_master? is false if the remote instance is not the master" do
44
+ @remote_instance.stub!(:master?).and_return false
45
+ @pb.provision_master?.should == false
46
+ end
47
+ it "should say the provision_master? is false if the remote instance is nil" do
48
+ PoolParty::Provisioner::ProvisionerBase.new(nil, @cloud).provision_master?.should == false
49
+ end
50
+ describe "custom tasks" do
51
+ it "should call custom_configure_tasks_for on the cloud with the instance" do
52
+ @cloud.should_receive(:custom_configure_tasks_for).with(@remote_instance).and_return []
53
+ @pb.custom_configure_tasks
54
+ end
55
+ it "should call custom_install_tasks_for on the cloud with the instance" do
56
+ @cloud.should_receive(:custom_install_tasks_for).with(@remote_instance).and_return []
57
+ @pb.custom_install_tasks
58
+ end
59
+ end
60
+ describe "installation" do
61
+ it "should have an install method" do
62
+ @pb.respond_to?(:install).should == true
63
+ end
64
+ it "should call error if it is not valid" do
65
+ @pb.stub!(:valid?).and_return false
66
+ lambda {@pb.install}.should raise_error
67
+ end
68
+ it "should not raise an exception if it is valid" do
69
+ @pb.stub!(:valid?).and_return true
70
+ lambda {@pb.install(true)}.should_not raise_error
71
+ end
72
+ it "should call before_install with the instance" do
73
+ @pb.should_receive(:before_install).with(@remote_instance).and_return true
74
+ @pb.install
75
+ end
76
+ it "should call setup_runner" do
77
+ @pb.should_receive(:setup_runner).and_return true
78
+ @pb.install
79
+ end
80
+ it "should call process_install! with the testing" do
81
+ @pb.should_receive(:process_install!).with(false).and_return true
82
+ @pb.install
83
+ end
84
+ it "should call after_install with the instance" do
85
+ @pb.should_receive(:after_install).with(@remote_instance).and_return true
86
+ @pb.install
87
+ end
88
+ end
89
+ describe "configuration" do
90
+ it "should have a configure method" do
91
+ @pb.respond_to?(:configure).should == true
92
+ end
93
+ it "should call error if it is not valid" do
94
+ @pb.stub!(:valid?).and_return false
95
+ lambda {@pb.configure}.should raise_error
96
+ end
97
+ it "should not raise an exception if it is valid" do
98
+ @pb.stub!(:valid?).and_return true
99
+ lambda {@pb.configure(true)}.should_not raise_error
100
+ end
101
+ it "should call before_configure with the instance" do
102
+ @pb.should_receive(:before_configure).with(@remote_instance).and_return true
103
+ @pb.configure
104
+ end
105
+ it "should call setup_runner" do
106
+ @pb.should_receive(:setup_runner).and_return true
107
+ @pb.configure
108
+ end
109
+ it "should call process_configure! with the testing" do
110
+ @pb.should_receive(:process_configure!).with(false).and_return true
111
+ @pb.configure
112
+ end
113
+ it "should call after_configure with the instance" do
114
+ @pb.should_receive(:after_configure).with(@remote_instance).and_return true
115
+ @pb.configure
116
+ end
117
+
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,57 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../../../lib/poolparty/spec/core/string'
3
+
4
+ describe "Spec strings" do
5
+ before(:each) do
6
+ @str=<<-EOE
7
+ exec { "install_passenger_script":
8
+ unless => 'test -f /etc/apache2/conf.d/passenger.conf',
9
+ path => '/usr/bin:/bin:/usr/local/bin:$PATH',
10
+ command => '/usr/bin/ruby /var/poolparty/install_passenger.rb'
11
+ }
12
+ service { "apache2":
13
+ require => Package['apache2'],
14
+ name => 'apache2',
15
+ ensure => 'running'
16
+ }
17
+
18
+ exec { "force-reload-apache2":
19
+ path => '/usr/bin:/bin:/usr/local/bin:$PATH',
20
+ command => '/etc/init.d/apache2 force-reload',
21
+ refreshonly => 'true'
22
+ }
23
+ EOE
24
+ end
25
+ it "should have the method grab_entry_for" do
26
+ "hi".respond_to?(:grab_entry_for).should == true
27
+ end
28
+ describe "grab_entry_for" do
29
+ it "should be able to grab the entry for the apache2 service" do
30
+ @str.grab_entry_for(:service, "apache2").gsub(/[\n\t ]+/, '').should == "service{\"apache2\":require=>Package['apache2'],name=>'apache2',ensure=>'running'}"
31
+ end
32
+ it "should be able to grab the entry for the install_passenger_script exec" do
33
+ @str.grab_entry_for(:exec, "install_passenger_script").gsub(/[\n\t ]+/, '').should == "exec{\"install_passenger_script\":unless=>'test-f/etc/apache2/conf.d/passenger.conf',path=>'/usr/bin:/bin:/usr/local/bin:$PATH',command=>'/usr/bin/ruby/var/poolparty/install_passenger.rb'}"
34
+ end
35
+ it "should return an empty string if there is no entry" do
36
+ @str.grab_entry_for(:pocket, "rangers").should == ""
37
+ end
38
+ end
39
+ describe "grab_key_value_for" do
40
+ it "should be able to say the service apache2 is set to ensure running" do
41
+ @str.grab_key_value_for(:service, "apache2", :ensure).should == "'running'"
42
+ end
43
+ it "should be able to say the exec force-reload-apache2 has the command '/etc/init.d/apache2 force-reload'" do
44
+ @str.grab_key_value_for(:exec, "force-reload-apache2", :command).should == "'/etc/init.d/apache2 force-reload'"
45
+ end
46
+ it "should be able to grab them with strings with quotes" do
47
+ "exec { \"a2enmod ssl\":
48
+ command => 'a2enmod ssl',
49
+ require => [ Package['apache2-common'], Package['openssl'] ],
50
+ path => '/usr/bin:/bin:/usr/local/bin:$PATH',
51
+ unless => '/usr/bin/test -L /etc/apache2/mods-enabled/ssl.load',
52
+ notify => Exec['restart-apache2']
53
+ }
54
+ ".grab_key_value_for(:exec, "a2enmod ssl", :notify).should == "Exec['restart-apache2']"
55
+ end
56
+ end
57
+ end
@@ -16,6 +16,24 @@ ENV["POOL_SPEC"] = nil
16
16
  include PoolParty
17
17
  extend PoolParty
18
18
 
19
+ def are_too_many_instances_running?
20
+ end
21
+ def are_any_nodes_exceeding_minimum_runtime?
22
+ end
23
+ def are_too_few_instances_running?
24
+ end
25
+
26
+ class TestClass < PoolParty::Cloud::Cloud
27
+ include CloudResourcer
28
+ attr_accessor :parent
29
+ def initialize(&block)
30
+ super :test_cloud, nil, &block
31
+ end
32
+ def keypair
33
+ "fake_keypair"
34
+ end
35
+ end
36
+
19
37
  def setup
20
38
  PoolParty::Messenger.stub!(:messenger_send!).and_return false
21
39
  end
@@ -51,7 +69,16 @@ def read_file(path)
51
69
  require "open-uri"
52
70
  open(path).read
53
71
  end
72
+ def sample_instances_list
73
+ @sample_instances_lister ||= [
74
+ {:ip => "127.0.0.1", :name => "master", :launching_time => 2.days.ago},
75
+ {:ip => "127.0.0.2", :name => "node1", :launching_time => 2.days.ago}
76
+ ]
77
+ end
54
78
 
79
+ def sample_instances
80
+ sample_instances_list.map {|h| PoolParty::Remote::RemoteInstance.new(h) }
81
+ end
55
82
  def stub_list_from_local_for(o)
56
83
  @list =<<-EOS
57
84
  master 192.168.0.1
@@ -61,25 +88,38 @@ def stub_list_from_local_for(o)
61
88
  @file.stub!(:read).and_return @list
62
89
  o.stub!(:get_working_listing_file).and_return @file
63
90
  o.stub!(:open).and_return @file
64
-
91
+
65
92
  @ris = @list.split(/\n/).map {|line| PoolParty::Remote::RemoteInstance.new(line) }
66
93
  end
67
94
  def stub_remoter_for(o)
68
- o.stub!(:ec2).and_return EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "even more not a key")
95
+ o.stub!(:ec2).and_return EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "even more not a key")
96
+ o.stub!(:list_of_running_instances).and_return sample_instances
69
97
  end
70
98
  def stub_list_from_remote_for(o, launch_stub=true)
71
99
  stub_remoter_for(o)
72
- @sample_instances_list = [{:ip => "127.0.0.1", :name => "master"}, {:ip => "127.0.0.2", :name => "node1"}]
73
- @ris = @sample_instances_list.map {|h| PoolParty::Remote::RemoteInstance.new(h) }
74
100
  o.stub!(:access_key).and_return "NOT A KEY"
75
101
  o.stub!(:secret_access_key).and_return "NOT A SECRET"
76
102
  # o.stub!(:list_from_remote).and_return ris
77
103
  # o.stub!(:remote_instances_list).once.and_return ris
78
104
  # o.stub!(:master).and_return @ris[0]
79
- o.stub!(:launch_new_instance!).and_return true if launch_stub
105
+ o.stub!(:launch_new_instance!).and_return sample_instances.first if launch_stub
80
106
  stub_list_of_instances_for(o)
107
+ stub_remoting_methods_for(o)
108
+ end
109
+ def stub_remoting_methods_for(o)
110
+ o.stub!(:keypair).and_return "fake_keypair"
111
+ o.stub!(:keypair_path).and_return "~/.ec2/fake_keypair"
112
+ o.stub!(:other_clouds).and_return []
113
+ o.stub!(:expand_when).and_return "cpu > 10"
114
+ o.stub!(:copy_file_to_storage_directory).and_return true
115
+ o.stub!(:rsync_storage_files_to).and_return true
116
+ o.stub!(:minimum_runnable_options).and_return []
117
+ o.stub!(:build_and_store_new_config_file).and_return true
118
+ o.stub!(:process_clean_reconfigure_for!).and_return true
119
+ o.stub!(:before_install).and_return true
120
+ o.stub!(:process_install).and_return true
121
+ o.stub!(:after_install).and_return true
81
122
  end
82
-
83
123
  def stub_list_of_instances_for(o)
84
124
  # o.stub!(:list_of_running_instances).once.and_return running_remote_instances
85
125
  o.stub!(:keypair).and_return "fake_keypair"
@@ -109,7 +149,9 @@ end
109
149
  def add_stub_instance_to(o, num, status="running")
110
150
  reset_response!
111
151
  response_list_of_instances << stub_instance(num, status)
152
+ sample_instances_list << stub_instance(num, status)
112
153
  stub_list_of_instances_for o
154
+ stub_remoter_for(o)
113
155
  end
114
156
  def ris
115
157
  @ris ||= response_list_of_instances.collect {|h| PoolParty::Remote::RemoteInstance.new(h) }
@@ -10,9 +10,7 @@ end
10
10
  # desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
11
  # task :local_deploy => []
12
12
  desc "Deploy the gem locally"
13
- task :local_deploy => [:website_generate, :install_gem, :build_local_gem] do
14
- sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
15
- end
13
+ task :local_deploy => [:website_generate, :build_local_gem, :install_gem_no_doc]
16
14
 
17
15
  task :check_version do
18
16
  unless ENV['VERSION']
@@ -26,7 +24,7 @@ task :check_version do
26
24
  end
27
25
 
28
26
  desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
29
- task :install_gem_no_doc => [:clean, :package] do
27
+ task :install_gem_no_doc do
30
28
  sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
31
29
  end
32
30
 
@@ -36,7 +34,7 @@ str =<<-EOE
36
34
  ---
37
35
  publish_on_announce: true
38
36
  exclude: !ruby/regexp
39
- /tmp$|\.git|log$|local/.*\.rb$|Makefile|\.beam$/
37
+ /tmp$|\.git$|log$|local/.*\.rb$|Makefile|\.beam$/
40
38
  EOE
41
39
  hoerc_path = ::File.join( ENV["HOME"], ".hoerc" )
42
40
  ::File.open(hoerc_path, "w+") {|f| f << str } unless ::File.file?(hoerc_path)
data/tasks/spec.rake CHANGED
@@ -4,14 +4,13 @@ require 'spec/rake/spectask'
4
4
  task :default => :spec
5
5
 
6
6
  Spec::Rake::SpecTask.new(:spec) do |t|
7
- t.warning =
8
- t.rcov = false
7
+ t.warning = t.rcov = false
9
8
  t.spec_files = Dir["spec/**/*_spec.rb"]
10
9
  end
11
10
 
12
11
  Spec::Rake::SpecTask.new(:spec_v) do |t|
13
12
  t.rcov = true
14
- t.rcov_opts = ['--exclude', 'gems*,spec*']
13
+ t.rcov_opts = ['--exclude', 'gems*,spec*,website*,test*']
15
14
  t.ruby_opts = []
16
15
  t.spec_files = Dir["spec/**/*_spec.rb"]
17
16
  end
data/website/index.html CHANGED
@@ -34,7 +34,7 @@
34
34
  <h1>PoolParty</h1>
35
35
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/poolparty"; return false'>
36
36
  <p>Get Version</p>
37
- <a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.68</a>
37
+ <a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.83</a>
38
38
  </div>
39
39
  <h1>&#8216;Easy cloud computing&#8217;</h1>
40
40
  <h2>What</h2>
@@ -96,7 +96,7 @@ rake install_gem</pre></p>
96
96
  <h2>Contact</h2>
97
97
  <p>Comments are welcome. Send an email to <a href="mailto:ari.lerner@citrusbyte.com">Ari Lerner</a> email via the <a href="http://groups.google.com/group/PoolParty">forum</a></p>
98
98
  <p class="coda">
99
- <a href="http://blog.citrusbyte.com">Ari Lerner</a> at <a href="http://citrusbyte.com">CitrusByte</a>, 21st November 2008<br>
99
+ <a href="http://blog.citrusbyte.com">Ari Lerner</a> at <a href="http://citrusbyte.com">CitrusByte</a>, 15th October 2008<br>
100
100
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
101
101
  </p>
102
102
  </div>