auser-poolparty 1.1.5 → 1.1.6

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 (332) hide show
  1. data/README.txt +0 -12
  2. data/Rakefile +17 -1
  3. data/VERSION.yml +2 -2
  4. data/bin/cloud +20 -1
  5. data/bin/cloud-bootstrap +14 -4
  6. data/bin/cloud-configure +24 -9
  7. data/bin/cloud-contract +7 -7
  8. data/bin/cloud-describe +28 -0
  9. data/bin/cloud-expand +13 -6
  10. data/bin/cloud-list +3 -5
  11. data/bin/cloud-osxcopy +1 -1
  12. data/bin/cloud-provision +1 -1
  13. data/bin/cloud-show +6 -5
  14. data/bin/cloud-ssh +1 -3
  15. data/bin/cloud-start +6 -4
  16. data/bin/cloud-terminate +9 -7
  17. data/bin/server-cloud-elections +4 -1
  18. data/bin/server-list-active +10 -6
  19. data/bin/server-monitor.ru +18 -1
  20. data/bin/server-update-hosts +3 -3
  21. data/bin/server-write-new-nodes +1 -1
  22. data/config/jeweler.rb +12 -3
  23. data/lib/poolparty.rb +9 -11
  24. data/lib/poolparty/aska/aska.rb +1 -12
  25. data/lib/poolparty/base_packages/haproxy.rb +24 -18
  26. data/lib/poolparty/capistrano.rb +1 -1
  27. data/lib/poolparty/core/array.rb +12 -0
  28. data/lib/poolparty/core/hash.rb +12 -5
  29. data/lib/poolparty/core/nil.rb +8 -0
  30. data/lib/poolparty/core/object.rb +15 -5
  31. data/lib/poolparty/core/string.rb +28 -2
  32. data/lib/poolparty/dependency_resolver/chef_resolver.rb +82 -80
  33. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +1 -1
  34. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +5 -4
  35. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +44 -17
  36. data/lib/poolparty/exceptions/MasterException.rb +2 -2
  37. data/lib/poolparty/helpers/console.rb +1 -1
  38. data/lib/poolparty/helpers/optioner.rb +9 -2
  39. data/lib/poolparty/lite.rb +9 -1
  40. data/lib/poolparty/modules/callbacks.rb +44 -0
  41. data/lib/poolparty/modules/cloud_dsl.rb +17 -11
  42. data/lib/poolparty/modules/cloud_resourcer.rb +17 -18
  43. data/lib/poolparty/modules/definable_resource.rb +1 -1
  44. data/lib/poolparty/modules/pinger.rb +28 -0
  45. data/lib/poolparty/modules/resourcing_dsl.rb +7 -3
  46. data/lib/poolparty/modules/thread_pool.rb +107 -106
  47. data/lib/poolparty/modules/user_helpers.rb +20 -0
  48. data/lib/poolparty/monitors/base_monitor.rb +32 -81
  49. data/lib/poolparty/monitors/monitor_rack.rb +60 -69
  50. data/lib/poolparty/monitors/monitors/favicon_monitor.rb +12 -0
  51. data/lib/poolparty/monitors/monitors/load_monitor.rb +9 -15
  52. data/lib/poolparty/monitors/monitors/memory_monitor.rb +48 -48
  53. data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +77 -0
  54. data/lib/poolparty/monitors/{stats_monitor.rb → monitors/stats_monitor.rb} +29 -24
  55. data/lib/poolparty/monitors/monitors/time_monitor.rb +15 -0
  56. data/lib/poolparty/net/messenger.rb +2 -0
  57. data/lib/poolparty/net/remoter/cloud_control.rb +177 -197
  58. data/lib/poolparty/net/remoter/connections.rb +7 -16
  59. data/lib/poolparty/net/remoter/interactive.rb +24 -90
  60. data/lib/poolparty/net/remoter_base.rb +72 -44
  61. data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +83 -66
  62. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +12 -0
  63. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +33 -0
  64. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -0
  65. data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +158 -0
  66. data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +71 -0
  67. data/lib/poolparty/{base_packages → plugins}/bind.rb +1 -1
  68. data/lib/poolparty/plugins/chef.rb +26 -10
  69. data/lib/poolparty/plugins/chef_deploy.rb +58 -0
  70. data/lib/poolparty/plugins/deploy_directory.rb +7 -5
  71. data/lib/poolparty/plugins/dynomite.rb +14 -0
  72. data/lib/poolparty/plugins/gem_package.rb +7 -1
  73. data/lib/poolparty/plugins/line_in_file.rb +1 -0
  74. data/lib/poolparty/plugins/nanite.rb +41 -0
  75. data/lib/poolparty/{base_packages → plugins}/tokyo_tyrant.rb +1 -1
  76. data/lib/poolparty/poolparty/cloud.rb +36 -35
  77. data/lib/poolparty/poolparty/default.rb +2 -11
  78. data/lib/poolparty/poolparty/key.rb +5 -5
  79. data/lib/poolparty/poolparty/neighborhoods.rb +54 -21
  80. data/lib/poolparty/poolparty/plugin.rb +5 -8
  81. data/lib/poolparty/poolparty/pool.rb +8 -4
  82. data/lib/poolparty/poolparty/poolparty_base_class.rb +20 -11
  83. data/lib/poolparty/poolparty/resource.rb +9 -5
  84. data/lib/poolparty/poolparty/service.rb +3 -1
  85. data/lib/poolparty/provision/boot_strapper.rb +31 -22
  86. data/lib/poolparty/provision/configurations/chef.rb +2 -1
  87. data/lib/poolparty/provision/dr_configure.rb +63 -22
  88. data/lib/poolparty/resources/cron.rb +8 -0
  89. data/lib/poolparty/resources/directory.rb +1 -1
  90. data/lib/poolparty/resources/file.rb +16 -0
  91. data/lib/poolparty/resources/package.rb +7 -2
  92. data/lib/poolparty/resources/service.rb +4 -3
  93. data/lib/poolparty/resources/symlink.rb +0 -8
  94. data/lib/poolparty/schema.rb +18 -20
  95. data/lib/poolparty/templates/haproxy.conf +27 -25
  96. data/lib/poolparty/templates/monitor.ru +3 -3
  97. data/lib/poolparty/verification/verifier_base.rb +17 -0
  98. data/lib/poolparty/verification/verifiers/ping.rb +17 -0
  99. data/lib/poolparty/verification/verify.rb +74 -0
  100. data/lib/poolpartycl.rb +14 -0
  101. data/spec/bin/server-list-active_spec.rb +2 -0
  102. data/spec/poolparty/base_packages/haproxy_spec.rb +1 -1
  103. data/spec/poolparty/core/array_spec.rb +3 -1
  104. data/spec/poolparty/core/ordered_hash_spec.rb +2 -2
  105. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +9 -15
  106. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +6 -6
  107. data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +121 -124
  108. data/spec/poolparty/net/remote_spec.rb +287 -286
  109. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +1 -1
  110. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +7 -8
  111. data/spec/poolparty/net/remoter_bases/ec2_spec.rb +22 -7
  112. data/spec/poolparty/net/remoter_spec.rb +48 -45
  113. data/spec/poolparty/poolparty/cloud_spec.rb +15 -22
  114. data/spec/poolparty/poolparty/key_spec.rb +4 -4
  115. data/spec/poolparty/poolparty/neighborhoods_spec.rb +1 -2
  116. data/spec/poolparty/poolparty/plugin_spec.rb +2 -2
  117. data/spec/poolparty/poolparty/resource_spec.rb +4 -5
  118. data/spec/poolparty/poolparty_base_class_spec.rb +82 -78
  119. data/spec/poolparty/resources/package_spec.rb +0 -3
  120. data/spec/poolparty/spec_helper.rb +4 -4
  121. data/tasks/development.rake +9 -0
  122. data/tasks/spec.rake +33 -1
  123. data/test/poolparty/core/array_test.rb +21 -0
  124. data/test/poolparty/core/hash_test.rb +15 -4
  125. data/test/poolparty/core/string_test.rb +29 -0
  126. data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +106 -0
  127. data/test/poolparty/modules/callbacks_test.rb +40 -0
  128. data/test/poolparty/modules/cloud_dsl_test.rb +28 -1
  129. data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +54 -0
  130. data/test/poolparty/net/remoter_test.rb +14 -0
  131. data/test/poolparty/poolparty/neighborhood_test.rb +23 -0
  132. data/test/poolparty/poolparty/poolparty_base_class_test.rb +84 -0
  133. data/test/poolparty/poolparty/template_test.rb +6 -6
  134. data/test/poolparty/verification/verify_test.rb +49 -0
  135. data/test/test_helper.rb +5 -2
  136. data/test/test_poolparty.rb +6 -5
  137. data/vendor/chef/apache2/attributes/apache.rb +1 -1
  138. data/vendor/chef/apache2/templates/default/default-site.erb +1 -1
  139. data/vendor/chef/chef-deploy/LICENSE +201 -0
  140. data/vendor/chef/chef-deploy/README.rdoc +24 -0
  141. data/vendor/chef/chef-deploy/Rakefile +57 -0
  142. data/vendor/chef/chef-deploy/TODO +4 -0
  143. data/vendor/chef/chef-deploy/lib/chef-deploy.rb +183 -0
  144. data/vendor/chef/chef-deploy/lib/chef-deploy/cached_deploy.rb +230 -0
  145. data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +132 -0
  146. data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +98 -0
  147. metadata +55 -250
  148. data/bin/cloud-run +0 -18
  149. data/bin/cloud-stats +0 -17
  150. data/bin/ec2-list-active +0 -24
  151. data/bin/pool +0 -31
  152. data/bin/pool-describe +0 -8
  153. data/bin/pool-generate +0 -18
  154. data/bin/pool-init +0 -28
  155. data/bin/pool-list +0 -30
  156. data/bin/pool-start +0 -26
  157. data/bin/server-list-instances +0 -15
  158. data/lib/erlang/messenger/Emakefile +0 -1
  159. data/lib/erlang/messenger/Makefile +0 -15
  160. data/lib/erlang/messenger/README +0 -5
  161. data/lib/erlang/messenger/Rakefile +0 -72
  162. data/lib/erlang/messenger/control +0 -11
  163. data/lib/erlang/messenger/ebin/client.app +0 -19
  164. data/lib/erlang/messenger/ebin/master.app +0 -19
  165. data/lib/erlang/messenger/ebin/node.app +0 -19
  166. data/lib/erlang/messenger/ebin/packager.app +0 -19
  167. data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +0 -1
  168. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +0 -1
  169. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +0 -1
  170. data/lib/erlang/messenger/include/defines.hrl +0 -27
  171. data/lib/erlang/messenger/lib/eunit/AUTHORS +0 -2
  172. data/lib/erlang/messenger/lib/eunit/CHANGELOG +0 -14
  173. data/lib/erlang/messenger/lib/eunit/COPYING +0 -504
  174. data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
  175. data/lib/erlang/messenger/lib/eunit/NOTES +0 -276
  176. data/lib/erlang/messenger/lib/eunit/README +0 -3
  177. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +0 -3
  178. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  179. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +0 -172
  180. data/lib/erlang/messenger/lib/eunit/doc/index.html +0 -17
  181. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +0 -12
  182. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +0 -984
  183. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +0 -980
  184. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +0 -11
  185. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +0 -55
  186. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  187. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  188. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +0 -21
  189. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +0 -1
  190. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  191. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  192. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  193. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  194. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  195. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  196. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  197. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  198. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  199. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  200. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  201. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  202. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +0 -339
  203. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +0 -19
  204. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +0 -1
  205. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +0 -313
  206. data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
  207. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +0 -388
  208. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +0 -243
  209. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +0 -21
  210. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +0 -1
  211. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +0 -196
  212. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +0 -102
  213. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +0 -798
  214. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +0 -48
  215. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +0 -682
  216. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +0 -552
  217. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +0 -157
  218. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +0 -340
  219. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +0 -64
  220. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +0 -334
  221. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +0 -45
  222. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +0 -272
  223. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +0 -409
  224. data/lib/erlang/messenger/lib/eunit/sys.config +0 -9
  225. data/lib/erlang/messenger/lib/eunit/vsn.mk +0 -1
  226. data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
  227. data/lib/erlang/messenger/pm_client_rel-0.1.script +0 -238
  228. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  229. data/lib/erlang/messenger/pm_master_rel-0.1.script +0 -239
  230. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  231. data/lib/erlang/messenger/pm_node_rel-0.1.script +0 -237
  232. data/lib/erlang/messenger/src/client_app.erl +0 -39
  233. data/lib/erlang/messenger/src/client_server.erl +0 -60
  234. data/lib/erlang/messenger/src/master_app.erl +0 -39
  235. data/lib/erlang/messenger/src/node_app.erl +0 -39
  236. data/lib/erlang/messenger/src/pm_client.erl +0 -49
  237. data/lib/erlang/messenger/src/pm_client_supervisor.erl +0 -38
  238. data/lib/erlang/messenger/src/pm_cluster.erl +0 -61
  239. data/lib/erlang/messenger/src/pm_event_manager.erl +0 -27
  240. data/lib/erlang/messenger/src/pm_master.erl +0 -215
  241. data/lib/erlang/messenger/src/pm_master_event_handler.erl +0 -72
  242. data/lib/erlang/messenger/src/pm_master_supervisor.erl +0 -39
  243. data/lib/erlang/messenger/src/pm_node.erl +0 -200
  244. data/lib/erlang/messenger/src/pm_node_supervisor.erl +0 -38
  245. data/lib/erlang/messenger/src/pm_packager.erl +0 -76
  246. data/lib/erlang/messenger/src/pm_spawner.erl +0 -213
  247. data/lib/erlang/messenger/src/pm_strings.erl +0 -11
  248. data/lib/erlang/messenger/src/utils.erl +0 -72
  249. data/lib/erlang/messenger/useful_snippets +0 -17
  250. data/lib/poolparty/monitors.rb +0 -6
  251. data/lib/poolparty/monitors/monitors/server_monitor.rb +0 -7
  252. data/lib/poolparty/monitors/monitors/web_monitor.rb +0 -18
  253. data/lib/poolparty/monitors/neighborhood_monitor.rb +0 -24
  254. data/lib/poolparty/net/remoter/lists.rb +0 -12
  255. data/lib/poolparty/poolparty/custom_resource.rb +0 -45
  256. data/lib/poolparty/resources/custom_service.rb +0 -30
  257. data/lib/poolparty/version.rb +0 -15
  258. data/spec/poolparty/plugins/svn_spec.rb +0 -16
  259. data/spec/poolparty/poolparty/custom_resource_spec.rb +0 -79
  260. data/vendor/gems/butterfly/History.txt +0 -4
  261. data/vendor/gems/butterfly/PostInstall.txt +0 -2
  262. data/vendor/gems/butterfly/README.rdoc +0 -48
  263. data/vendor/gems/butterfly/Rakefile +0 -62
  264. data/vendor/gems/butterfly/VERSION.yml +0 -4
  265. data/vendor/gems/butterfly/bin/flutter +0 -4
  266. data/vendor/gems/butterfly/butterfly.gemspec +0 -37
  267. data/vendor/gems/butterfly/examples/config.ru +0 -15
  268. data/vendor/gems/butterfly/examples/my_app.rb +0 -12
  269. data/vendor/gems/butterfly/lib/butterfly.rb +0 -14
  270. data/vendor/gems/butterfly/lib/handler.rb +0 -48
  271. data/vendor/gems/butterfly/lib/request.rb +0 -29
  272. data/vendor/gems/butterfly/lib/response.rb +0 -49
  273. data/vendor/gems/butterfly/script/console +0 -10
  274. data/vendor/gems/butterfly/script/destroy +0 -14
  275. data/vendor/gems/butterfly/script/generate +0 -14
  276. data/vendor/gems/butterfly/test/test_adapter_base.rb +0 -23
  277. data/vendor/gems/butterfly/test/test_butterfly_request.rb +0 -46
  278. data/vendor/gems/butterfly/test/test_butterfly_response.rb +0 -43
  279. data/vendor/gems/butterfly/test/test_butterfly_server.rb +0 -16
  280. data/vendor/gems/butterfly/test/test_default.rb +0 -12
  281. data/vendor/gems/butterfly/test/test_helper.rb +0 -6
  282. data/vendor/gems/dslify/History.txt +0 -4
  283. data/vendor/gems/dslify/Manifest.txt +0 -25
  284. data/vendor/gems/dslify/PostInstall.txt +0 -5
  285. data/vendor/gems/dslify/README.txt +0 -60
  286. data/vendor/gems/dslify/Rakefile +0 -56
  287. data/vendor/gems/dslify/config/hoe.rb +0 -73
  288. data/vendor/gems/dslify/config/requirements.rb +0 -15
  289. data/vendor/gems/dslify/dslify.gemspec +0 -40
  290. data/vendor/gems/dslify/lib/dslify.rb +0 -7
  291. data/vendor/gems/dslify/lib/dslify/dslify.rb +0 -69
  292. data/vendor/gems/dslify/lib/dslify/version.rb +0 -10
  293. data/vendor/gems/dslify/script/console +0 -10
  294. data/vendor/gems/dslify/script/destroy +0 -14
  295. data/vendor/gems/dslify/script/generate +0 -14
  296. data/vendor/gems/dslify/script/txt2html +0 -82
  297. data/vendor/gems/dslify/setup.rb +0 -1585
  298. data/vendor/gems/dslify/tasks/deployment.rake +0 -34
  299. data/vendor/gems/dslify/tasks/environment.rake +0 -7
  300. data/vendor/gems/dslify/tasks/website.rake +0 -17
  301. data/vendor/gems/dslify/test/test_dslify.rb +0 -114
  302. data/vendor/gems/dslify/website/index.html +0 -86
  303. data/vendor/gems/dslify/website/index.txt +0 -83
  304. data/vendor/gems/dslify/website/javascripts/rounded_corners_lite.inc.js +0 -285
  305. data/vendor/gems/dslify/website/stylesheets/screen.css +0 -138
  306. data/vendor/gems/dslify/website/template.html.erb +0 -48
  307. data/vendor/gems/parenting/History.txt +0 -4
  308. data/vendor/gems/parenting/Manifest.txt +0 -13
  309. data/vendor/gems/parenting/PostInstall.txt +0 -2
  310. data/vendor/gems/parenting/README.rdoc +0 -47
  311. data/vendor/gems/parenting/Rakefile +0 -28
  312. data/vendor/gems/parenting/lib/parenting.rb +0 -10
  313. data/vendor/gems/parenting/lib/parenting/base.rb +0 -65
  314. data/vendor/gems/parenting/parenting.gemspec +0 -39
  315. data/vendor/gems/parenting/script/console +0 -10
  316. data/vendor/gems/parenting/script/destroy +0 -14
  317. data/vendor/gems/parenting/script/generate +0 -14
  318. data/vendor/gems/parenting/test/file_to_eval.rb +0 -9
  319. data/vendor/gems/parenting/test/test_helper.rb +0 -5
  320. data/vendor/gems/parenting/test/test_parenting.rb +0 -89
  321. data/vendor/gems/suitcase/LICENSE +0 -20
  322. data/vendor/gems/suitcase/README.rdoc +0 -31
  323. data/vendor/gems/suitcase/Rakefile +0 -57
  324. data/vendor/gems/suitcase/VERSION.yml +0 -4
  325. data/vendor/gems/suitcase/lib/suitcase.rb +0 -5
  326. data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +0 -15
  327. data/vendor/gems/suitcase/lib/suitcase/zipper.rb +0 -119
  328. data/vendor/gems/suitcase/suitcase.gemspec +0 -32
  329. data/vendor/gems/suitcase/test/suitcase_test.rb +0 -102
  330. data/vendor/gems/suitcase/test/test_dir/box.rb +0 -1
  331. data/vendor/gems/suitcase/test/test_dir/test.txt +0 -1
  332. data/vendor/gems/suitcase/test/test_helper.rb +0 -12
data/README.txt CHANGED
@@ -37,18 +37,6 @@ Erlang
37
37
 
38
38
  sudo gem install auser-poolparty
39
39
 
40
- == TODO:
41
- * Update hot reloading of puppet (force-reload?)
42
- * Add pingback for nodes to master when failure occurs
43
- * Add become master for the nodes
44
- * Add hot reload to haproxy while reconfiguring
45
- * Replace services with Runit
46
- * Refactor provisioning to use erlang
47
- * Add queuing of tasks on the messenger
48
- * Add syntax checker on the manifests
49
- * Move in collectd support
50
- * Remove master-slave protocol
51
-
52
40
  == LICENSE:
53
41
 
54
42
  (The MIT License)
data/Rakefile CHANGED
@@ -1,4 +1,11 @@
1
1
  require 'config/requirements'
2
+
3
+ begin
4
+ require 'hanna/rdoctask'
5
+ rescue Exception => e
6
+ require "rake/rdoctask"
7
+ end
8
+
2
9
  require 'config/jeweler' # setup gem configuration
3
10
 
4
11
  Dir['tasks/**/*.rake'].each { |rake| load rake }
@@ -42,4 +49,13 @@ namespace :gem do
42
49
  task :test_then_install => [:spec, :install]
43
50
  end
44
51
 
45
- task :release => [:update_timestamp]
52
+ task :release => [:update_timestamp]
53
+
54
+
55
+ # Generate documentation
56
+ Rake::RDocTask.new do |rd|
57
+ rd.main = "Readme.txt"
58
+ rd.rdoc_files.include("Readme.txt", "lib/**/*.rb")
59
+ rd.rdoc_dir = "rdoc"
60
+ # rd.template = "hanaa"
61
+ end
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 5
3
- :major: 1
4
2
  :minor: 1
3
+ :patch: 6
4
+ :major: 1
data/bin/cloud CHANGED
@@ -15,7 +15,26 @@ new_args = new_args.reject {|arg| Binary.available_binaries_for("cloud").include
15
15
  # Let's make sure if no command is passed in that we show the help message
16
16
  new_args.push("-h") unless name
17
17
 
18
- o = PoolParty::Optioner.new(new_args, {:extra_help => "\nCloud actions\n#{Binary.list_binaries_for("cloud")}\n\n", :abstract => true}) do |opts, optioner|
18
+ # Binary.list_binaries_for("cloud")
19
+ extra_help_string = <<-EOE
20
+
21
+ Cloud commands
22
+ cloud start starts a single instance in your cloud.
23
+ cloud bootstrap bootstraps an instance or multiple instances
24
+ cloud configure configures an instance or multiple instances
25
+ cloud provision combines bootstrap and configures an instance or multiple instances
26
+ cloud expand expands the cloud by a single instance
27
+ cloud contract contracts the cloud by a single instance
28
+ cloud describe show the configuration of the current clouds.rb configuration file
29
+ cloud list show a list of the current instances on the cloud
30
+ cloud ssh ssh into an instance of the cloud
31
+ cloud terminate terminate the cloud
32
+
33
+ EOE
34
+
35
+ o = PoolParty::Optioner.new(new_args, {
36
+ :extra_help => extra_help_string,
37
+ :abstract => true}) do |opts, optioner|
19
38
  opts.on('-n cloudname', '--name name', 'Address this cloud') { |c| optioner.cloudname c }
20
39
  end
21
40
 
data/bin/cloud-bootstrap CHANGED
@@ -3,19 +3,29 @@ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
  require "poolparty"
4
4
  require "poolparty/provision/boot_strapper"
5
5
 
6
+
6
7
  o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
8
  opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
9
+ opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
8
10
  end
9
11
 
10
12
  o.loaded_clouds.each do |cld|
11
13
  # If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
12
- nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.running_instance_ips
14
+ # ::FileUtils.rm_rf "#{Default.tmp_path}/" unless o.testing?
15
+
16
+ nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.nodes(:status => "running").collect {|i| i.ip }.sort.compact
13
17
  if nodes.empty?
14
18
  puts "No nodes to bootstrap"
15
19
  else
16
- nodes.each do |address|
17
- puts "\nBootStrapping: #{address}\n--------------------"
18
- ::PoolParty::Provision::BootStrapper.new address, {:full_keypair_path => cld.keypair.full_filepath, :cloud => cld}
20
+ if o.inst_num?
21
+ vputs "\nBootStrapping: #{nodes[o.inst_num]}\n--------------------"
22
+ ::PoolParty::Provision::BootStrapper.new nodes[o.inst_num], :cloud => cld
23
+ else
24
+ nodes.each do |address|
25
+ vputs "\nBootStrapping: #{address}\n--------------------"
26
+ ::PoolParty::Provision::BootStrapper.new address, :cloud => cld
27
+ end
19
28
  end
20
29
  end
21
30
  end
31
+
data/bin/cloud-configure CHANGED
@@ -2,7 +2,17 @@
2
2
  $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
  require "poolparty"
4
4
 
5
- o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
5
+ extra_help_string = <<-EOE
6
+
7
+ Cloud configure
8
+
9
+ Cloud configure will repackage the deployment and send it off to a
10
+ remote instance from within the cloud. It then will reconfigure
11
+ itself and alert the rest of the cloud
12
+
13
+ EOE
14
+
15
+ o = PoolParty::Optioner.new(ARGV, {:extra_help => extra_help_string}) do |opts, optioner|
6
16
  opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
7
17
  opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
8
18
  end
@@ -11,16 +21,21 @@ o.loaded_clouds.each do |cld|
11
21
  # If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
12
22
  # ::FileUtils.rm_rf "#{Default.tmp_path}/" unless o.testing?
13
23
 
14
- nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.remote_instances_list.collect {|inst| inst.ip if inst.running? }.compact
15
- if nodes.empty?
16
- puts "No nodes to configure"
24
+ if cld.nodes(:status => "running").size < 1
25
+ puts header("No instances running")
17
26
  else
18
- if o.inst_num?
19
- ::PoolParty::Provision::DrConfigure.new( nodes[o.inst_num], :full_keypair_path => cld.keypair.full_filepath, :cloud => cld )
27
+ nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.nodes(:status => "running").collect {|i| i.ip }.sort.compact
28
+ if nodes.empty?
29
+ puts "No nodes to configure"
20
30
  else
21
- nodes.each do |address|
22
- puts "Configuring: #{address}"
23
- ::PoolParty::Provision::DrConfigure.new( address, :full_keypair_path => cld.keypair.full_filepath, :cloud => cld )
31
+ if o.inst_num?
32
+ vputs "Configuring #{nodes[o.inst_num]}"
33
+ ::PoolParty::Provision::DrConfigure.new( nodes[o.inst_num], :cloud => cld )
34
+ else
35
+ nodes.each do |address|
36
+ puts "Configuring: #{address}"
37
+ ::PoolParty::Provision::DrConfigure.new( address, :cloud => cld )
38
+ end
24
39
  end
25
40
  end
26
41
  end
data/bin/cloud-contract CHANGED
@@ -7,11 +7,11 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
7
  opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
8
8
  end
9
9
 
10
- o.loaded_clouds.each do |cl|
11
- with_cloud(cl) do
12
- puts header("Contracting cloud #{name}")
13
- puts "#{list_of_running_instances.size} running instances (#{minimum_instances} minimum instances)"
14
- puts testing ? "Not contracting (test mode)" : "Contracting the cloud if possible"
15
- contract_cloud_if_necessary( !testing )
16
- end
10
+ o.loaded_clouds.each do |cld|
11
+ puts header("Contracting cloud #{cld.name}")
12
+ puts "#{cld.nodes(:status => "running").size} running instances (#{cld.minimum_instances} minimum instances)"
13
+ puts testing ? "Not contracting (test mode)" : "Contracting the cloud if possible"
14
+
15
+ last_instance_id = cld.nodes(:status => "running").last[:instance_id]
16
+ cld.remote_base.terminate_instance! cld.options.merge(:instance_id => last_instance_id)
17
17
  end
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+
5
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
6
+ opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
7
+ end
8
+
9
+ o.loaded_clouds.each do |cld|
10
+ puts "\nFrom #{$pool_specfile}\n"
11
+ print_with_nice_printer "Cloud: #{cld.name}", [
12
+ "instances #{cld.minimum_instances}..#{cld.maximum_instances}",
13
+ "keypair #{cld.keypair}",
14
+ "remoter #{cld.remote_base.class.to_s.top_level_class}"
15
+ ] do |printer|
16
+ if cld.nodes(:status => "running").size > 0
17
+ printer.empty
18
+ printer.center("Active instances")
19
+ printer << cld.nodes(:status => "running").map{|a| a.ip.strip }.join("\n")
20
+ end
21
+ if cld.nodes(:status => "pending").size > 0
22
+ printer.empty
23
+ printer.center "Pending instances"
24
+ printer << cld.nodes(:status => "pending").map{|a| a.to_s}.join("\n")
25
+ end
26
+ printer.empty
27
+ end
28
+ end
data/bin/cloud-expand CHANGED
@@ -7,13 +7,20 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
7
  opts.on('-n name', '--name name', 'Expand the cloud on this name') { |c| optioner.cloudname c }
8
8
  end
9
9
 
10
- o.loaded_clouds.each do |cloud|
10
+ o.loaded_clouds.each do |cld|
11
11
 
12
- with_cloud(cloud) do
13
- vputs header("Expanding cloud #{name}")
14
- vputs "#{list_of_running_instances.size} running instances of #{maximum_instances} possible instances"
15
- vputs testing ? "Not expanding (test mode)" : "Expanding the cloud"
16
- expand_cloud_if_necessary( !testing )
12
+ vputs header("Expanding cloud #{cld.name}")
13
+ vputs "#{cld.nodes(:status => "running").size} running instances of #{cld.maximum_instances} possible instances"
14
+ vputs testing ? "Not expanding (test mode)" : "Expanding the cloud"
15
+
16
+ cld.launch_instance! do |node|
17
+ ::PoolParty::Provision::BootStrapper.new(node.ip, :cloud => cld)
18
+ ::PoolParty::Provision::DrConfigure.new(node.ip, :cloud => cld)
19
+
20
+ puts <<-EOM
21
+ Your cloud has expanded. The new ip is #{node.ip}
22
+ EOM
17
23
  end
18
24
 
25
+
19
26
  end
data/bin/cloud-list CHANGED
@@ -10,14 +10,12 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
10
10
  end
11
11
 
12
12
  o.loaded_clouds.each do |cld|
13
-
14
13
  puts header("Listing cloud #{cld.name}")
15
-
16
14
  puts subheader("Active instances")
17
- puts cld.list_of_running_instances.map{|a| a.to_s}.join("\n")
15
+ puts cld.nodes(:status => "running").map{|a| "#{a[:instance_id]}\t#{a[:ip]}" }.join("\n")
18
16
 
19
- if cld.list_of_pending_instances.size > 0
17
+ if cld.nodes(:status => "pending").size > 0
20
18
  puts subheader("Pending instances")
21
- puts cld.list_of_pending_instances.map{|a| a.to_s}.join("\n")
19
+ puts cld.nodes(:status => "pending").map{|a| "#{a[:instance_id]}\t#{a[:ip]}" }.join("\n")
22
20
  end
23
21
  end
data/bin/cloud-osxcopy CHANGED
@@ -9,7 +9,7 @@ end
9
9
 
10
10
  o.loaded_clouds.each do |cld|
11
11
 
12
- node = cld.list_of_running_instances.first
12
+ node = cld.nodes(:status => "running").first
13
13
  ip = node.ip
14
14
  puts "ip: #{ip}"
15
15
  Kernel.system "echo #{ip} | pbcopy"
data/bin/cloud-provision CHANGED
@@ -10,7 +10,7 @@ end
10
10
 
11
11
  o.loaded_clouds.each do |cld|
12
12
  # If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
13
- nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.remote_instances_list.collect {|inst| inst.ip if inst.running? }.compact
13
+ nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.nodes(:status => "running").collect {|i|i.ip }.compact
14
14
  if nodes.empty?
15
15
  puts "No nodes to bootstrap"
16
16
  else
data/bin/cloud-show CHANGED
@@ -10,17 +10,18 @@ o.loaded_clouds.each do |cld|
10
10
  puts "\nFrom #{$pool_specfile}\n"
11
11
  print_with_nice_printer "Cloud: #{cld.name}", [
12
12
  "instances #{cld.minimum_instances}..#{cld.maximum_instances}",
13
- "keypair #{cld.keypair}"
13
+ "keypair #{cld.keypair}",
14
+ "using #{cld.remote_base.class.to_s.top_level_class}"
14
15
  ] do |printer|
15
- if cld.list_of_running_instances.size > 0
16
+ if cld.nodes(:status => "running").size > 0
16
17
  printer.empty
17
18
  printer.center("Active instances")
18
- printer << cld.list_of_running_instances.map{|a| a.ip.strip }.join("\n")
19
+ printer << nodes(:status => "running").map{|a| a.ip.strip }.join("\n")
19
20
  end
20
- if cld.list_of_pending_instances.size > 0
21
+ if cld.nodes(:status => "pending").size > 0
21
22
  printer.empty
22
23
  printer.center "Pending instances"
23
- printer << cld.list_of_pending_instances.map{|a| a.to_s}.join("\n")
24
+ printer << cld.nodes(:status => "pending").map{|a| a.to_s}.join("\n")
24
25
  end
25
26
  printer.empty
26
27
  end
data/bin/cloud-ssh CHANGED
@@ -11,9 +11,7 @@ end
11
11
  load_pool(o.spec? ? o.spec : Binary.get_existing_spec_location)
12
12
 
13
13
  @cloud = o.loaded_clouds.first
14
- nodes = @cloud.list_of_running_instances
15
-
16
- puts nodes.map {|a| a.to_s}.join("\n")
14
+ nodes = @cloud.nodes(:status => "running")
17
15
 
18
16
  if !nodes.empty?
19
17
  n = o.inst_num? ? o.inst_num : 0
data/bin/cloud-start CHANGED
@@ -7,11 +7,13 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
7
  end
8
8
 
9
9
  o.loaded_clouds.each do |cld|
10
- if cld.list_of_running_instances.size.zero?
11
- puts header("Starting cloud #{cld.name}")
12
- puts "#{cld.list_of_running_instances.size} running instances (#{cld.minimum_instances} - #{cld.maximum_instances})"
10
+
11
+ if cld.nodes(:status => "running").size.zero?
12
+ puts header("Starting cloud #{cld.name} (#{cld.keypair})")
13
+ puts "#{cld.nodes(:status => "running").size} running instances (#{cld.minimum_instances} - #{cld.maximum_instances})"
13
14
 
14
- cld.launch_instance! do |node|
15
+ cld.launch_instance!(cld.dsl_options) do |node|
16
+
15
17
  ::PoolParty::Provision::BootStrapper.new(node.ip, :cloud => cld)
16
18
  ::PoolParty::Provision::DrConfigure.new(node.ip, :cloud => cld)
17
19
 
data/bin/cloud-terminate CHANGED
@@ -7,14 +7,16 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
7
  opts.on('-n name', '--name name', 'Terminate the cloud of this name') { |c| optioner.cloudname c }
8
8
  end
9
9
 
10
- o.loaded_clouds.each do |cloud|
11
-
12
- with_cloud(cloud) do
10
+ o.loaded_clouds.each do |cld|
11
+ cld.nodes(:status => "running").each do |inst|
12
+ msg = <<-EOM
13
+ Shutting down #{inst.instance_id}
14
+ Are you sure? (Y/N)
15
+ EOM
13
16
 
14
- list_of_running_instances.each do |inst|
17
+ if are_you_sure?(msg)
15
18
  puts "Shutting down #{inst.instance_id}"
16
- terminate_instance!(:instance_id => inst.instance_id)
19
+ cld.terminate_instance!(:instance_id => inst.instance_id)
17
20
  end
18
-
19
- end
21
+ end
20
22
  end
@@ -19,11 +19,14 @@ o.loaded_clouds.each do |cld|
19
19
 
20
20
  case vote_for
21
21
  when "expand"
22
- # PoolParty.log << "Launching new instance"
22
+ vputs "Launching new instance"
23
23
  cld.send :launch_instance!, schema.options do |node|
24
+ dputs "Started node at #{node[:ip]}"
25
+
24
26
  ::PoolParty::Provision::BootStrapper.new( node[:ip], :cloud => cld )
25
27
  ::PoolParty::Provision::DrConfigure.new( node[:ip], :cloud => cld )
26
28
  end
29
+
27
30
  when "contract"
28
31
  last_instance_id = %x[/usr/bin/server-list-active instance_id].split("\t").last
29
32
  remoter_base.terminate_instance! schema.options.merge(:instance_id => last_instance_id)
@@ -8,18 +8,22 @@ json_file = ARGV[0] || PoolParty::Default.properties_hash_file
8
8
  raise "ERROR: no json_file given" if !json_file
9
9
  schema = PoolParty::Schema.new( ::File.read(json_file) )
10
10
 
11
- remoter_base = schema.options.remote_base
11
+ inst_array = PoolParty::Neighborhoods.load_default.instances.instances
12
12
 
13
- # TODO: WTF? Change this
14
- instances = PoolParty::Remote::Ec2.describe_instances(schema.options)
15
- inst_array = instances.map {|inst| inst.send list_type.to_sym }
13
+ if !inst_array || inst_array.empty?
14
+ remoter_base = schema.options.remote_base
15
+ remote_base = remoter_base.top_level_class.constantize(PoolParty::Remote)
16
+
17
+ instances = remote_base.send :describe_instances, schema.options
18
+ inst_array = instances.map {|inst| inst.send list_type.to_sym }
19
+ end
16
20
 
17
21
  print_array =
18
22
  case list_type
19
23
  when "ip"
20
- inst_array.select {|a| a =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/}
24
+ inst_array.compact.map {|i| i.ip }
21
25
  when "internal_ip"
22
- inst_array.compact.map {|ip| ip.gsub(/ip-/, '').gsub(/\.ec2\.internal/, '').gsub(/-/, '.') }
26
+ inst_array.compact.map {|i| i.internal_ip || i.ip }
23
27
  else
24
28
  inst_array
25
29
  end
@@ -1,18 +1,35 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'rubygems'
3
3
  require 'rack'
4
- require 'rack/contrib'
4
+ # require 'rack/contrib'
5
5
  require 'json'
6
6
  require 'thin'
7
7
  require ::File.join(::File.dirname(__FILE__),'..','lib/poolparty/monitors/', 'monitor_rack.rb')
8
8
 
9
+ class Baton
10
+ def initialize(app)
11
+ @app = app
12
+ end
13
+ def call(env)
14
+ self.class.call(env)
15
+ end
16
+ def self.call(env)
17
+ puts "received: #{env.to_yaml}\n------\n"
18
+ response = Rack::Response.new
19
+ response.write "requested: #{env["REQUEST_PATH"]}"
20
+ response.finish
21
+ end
22
+ end
23
+
9
24
 
10
25
  app = Rack::Builder.new do
11
26
  use Rack::Reloader, 2
12
27
  use Rack::ShowExceptions
13
28
  use Rack::Lint
29
+ use Baton
14
30
  # use Rack::PostBodyContentTypeParser #parses json requests to params hash
15
31
  run Monitors::MonitorRack.new()
32
+ run_after
16
33
  end
17
34
 
18
35
  if __FILE__ == $0