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,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>