fairchild-poolparty 1.1.4 → 1.1.5

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 (333) hide show
  1. data/README.txt +0 -12
  2. data/Rakefile +17 -1
  3. data/VERSION.yml +1 -1
  4. data/bin/cloud +20 -1
  5. data/bin/cloud-bootstrap +14 -4
  6. data/bin/cloud-configure +26 -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 +8 -6
  16. data/bin/cloud-terminate +9 -7
  17. data/bin/server-cloud-elections +29 -18
  18. data/bin/server-ensure-provisioning +24 -29
  19. data/bin/server-list-active +10 -5
  20. data/bin/server-monitor.ru +18 -1
  21. data/bin/server-update-hosts +3 -3
  22. data/bin/server-write-new-nodes +1 -1
  23. data/config/jeweler.rb +12 -3
  24. data/lib/poolparty/aska/aska.rb +1 -12
  25. data/lib/poolparty/base_packages/haproxy.rb +26 -18
  26. data/lib/poolparty/base_packages/poolparty.rb +1 -1
  27. data/lib/poolparty/capistrano.rb +1 -1
  28. data/lib/poolparty/core/array.rb +12 -0
  29. data/lib/poolparty/core/hash.rb +12 -5
  30. data/lib/poolparty/core/nil.rb +8 -0
  31. data/lib/poolparty/core/object.rb +15 -5
  32. data/lib/poolparty/core/string.rb +28 -2
  33. data/lib/poolparty/dependency_resolver/chef_resolver.rb +106 -79
  34. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +1 -1
  35. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +5 -4
  36. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +44 -17
  37. data/lib/poolparty/helpers/console.rb +1 -1
  38. data/lib/poolparty/helpers/optioner.rb +9 -2
  39. data/lib/poolparty/lite.rb +12 -2
  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 +29 -21
  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 -227
  58. data/lib/poolparty/net/remoter/connections.rb +10 -18
  59. data/lib/poolparty/net/remoter/interactive.rb +24 -90
  60. data/lib/poolparty/net/remoter_base.rb +98 -25
  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 +165 -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 +71 -71
  69. data/lib/poolparty/plugins/chef_deploy.rb +58 -0
  70. data/lib/poolparty/plugins/{deploydirectory.rb → deploy_directory.rb} +12 -3
  71. data/lib/poolparty/plugins/dynomite.rb +14 -0
  72. data/lib/poolparty/plugins/gem_package.rb +37 -0
  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 +15 -12
  79. data/lib/poolparty/poolparty/neighborhoods.rb +54 -21
  80. data/lib/poolparty/poolparty/plugin.rb +6 -9
  81. data/lib/poolparty/poolparty/plugin_model.rb +5 -5
  82. data/lib/poolparty/poolparty/pool.rb +8 -4
  83. data/lib/poolparty/poolparty/poolparty_base_class.rb +20 -11
  84. data/lib/poolparty/poolparty/resource.rb +9 -5
  85. data/lib/poolparty/poolparty/service.rb +3 -1
  86. data/lib/poolparty/provision/boot_strapper.rb +47 -24
  87. data/lib/poolparty/provision/configurations/chef.rb +7 -4
  88. data/lib/poolparty/provision/dr_configure.rb +80 -25
  89. data/lib/poolparty/resources/cron.rb +8 -0
  90. data/lib/poolparty/resources/directory.rb +1 -1
  91. data/lib/poolparty/resources/file.rb +16 -0
  92. data/lib/poolparty/resources/package.rb +7 -2
  93. data/lib/poolparty/resources/service.rb +4 -3
  94. data/lib/poolparty/resources/symlink.rb +0 -8
  95. data/lib/poolparty/schema.rb +35 -20
  96. data/lib/poolparty/templates/haproxy.conf +27 -25
  97. data/lib/poolparty/templates/monitor.ru +3 -3
  98. data/lib/poolparty/verification/verifier_base.rb +17 -0
  99. data/lib/poolparty/verification/verifiers/ping.rb +17 -0
  100. data/lib/poolparty/verification/verify.rb +74 -0
  101. data/lib/poolparty.rb +8 -9
  102. data/lib/poolpartycl.rb +14 -0
  103. data/spec/bin/server-list-active_spec.rb +2 -0
  104. data/spec/poolparty/base_packages/haproxy_spec.rb +1 -1
  105. data/spec/poolparty/core/array_spec.rb +3 -1
  106. data/spec/poolparty/core/ordered_hash_spec.rb +2 -2
  107. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +9 -15
  108. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +6 -6
  109. data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +121 -124
  110. data/spec/poolparty/net/remote_spec.rb +287 -286
  111. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +1 -1
  112. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +7 -8
  113. data/spec/poolparty/net/remoter_bases/ec2_spec.rb +22 -7
  114. data/spec/poolparty/net/remoter_spec.rb +48 -45
  115. data/spec/poolparty/poolparty/cloud_spec.rb +15 -22
  116. data/spec/poolparty/poolparty/key_spec.rb +4 -4
  117. data/spec/poolparty/poolparty/neighborhoods_spec.rb +1 -2
  118. data/spec/poolparty/poolparty/plugin_spec.rb +2 -2
  119. data/spec/poolparty/poolparty/resource_spec.rb +4 -5
  120. data/spec/poolparty/poolparty_base_class_spec.rb +82 -78
  121. data/spec/poolparty/resources/package_spec.rb +0 -3
  122. data/spec/poolparty/spec_helper.rb +4 -4
  123. data/tasks/development.rake +9 -0
  124. data/test/poolparty/core/array_test.rb +21 -0
  125. data/test/poolparty/core/hash_test.rb +14 -1
  126. data/test/poolparty/core/string_test.rb +29 -0
  127. data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +106 -0
  128. data/test/poolparty/modules/callbacks_test.rb +40 -0
  129. data/test/poolparty/modules/cloud_dsl_test.rb +25 -0
  130. data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +50 -0
  131. data/test/poolparty/net/remoter_test.rb +14 -0
  132. data/test/poolparty/poolparty/neighborhood_test.rb +23 -0
  133. data/test/poolparty/poolparty/poolparty_base_class_test.rb +84 -0
  134. data/test/poolparty/verification/verify_test.rb +49 -0
  135. data/test/test_helper.rb +4 -1
  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/cached_deploy.rb +230 -0
  144. data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +132 -0
  145. data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +98 -0
  146. data/vendor/chef/chef-deploy/lib/chef-deploy.rb +183 -0
  147. metadata +57 -252
  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/monitors/server_monitor.rb +0 -7
  251. data/lib/poolparty/monitors/monitors/web_monitor.rb +0 -18
  252. data/lib/poolparty/monitors/neighborhood_monitor.rb +0 -24
  253. data/lib/poolparty/monitors.rb +0 -6
  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/services/gem_package.rb +0 -52
  258. data/lib/poolparty/version.rb +0 -15
  259. data/spec/poolparty/plugins/svn_spec.rb +0 -16
  260. data/spec/poolparty/poolparty/custom_resource_spec.rb +0 -79
  261. data/vendor/gems/butterfly/History.txt +0 -4
  262. data/vendor/gems/butterfly/PostInstall.txt +0 -2
  263. data/vendor/gems/butterfly/README.rdoc +0 -48
  264. data/vendor/gems/butterfly/Rakefile +0 -62
  265. data/vendor/gems/butterfly/VERSION.yml +0 -4
  266. data/vendor/gems/butterfly/bin/flutter +0 -4
  267. data/vendor/gems/butterfly/butterfly.gemspec +0 -37
  268. data/vendor/gems/butterfly/examples/config.ru +0 -15
  269. data/vendor/gems/butterfly/examples/my_app.rb +0 -12
  270. data/vendor/gems/butterfly/lib/butterfly.rb +0 -14
  271. data/vendor/gems/butterfly/lib/handler.rb +0 -48
  272. data/vendor/gems/butterfly/lib/request.rb +0 -29
  273. data/vendor/gems/butterfly/lib/response.rb +0 -49
  274. data/vendor/gems/butterfly/script/console +0 -10
  275. data/vendor/gems/butterfly/script/destroy +0 -14
  276. data/vendor/gems/butterfly/script/generate +0 -14
  277. data/vendor/gems/butterfly/test/test_adapter_base.rb +0 -23
  278. data/vendor/gems/butterfly/test/test_butterfly_request.rb +0 -46
  279. data/vendor/gems/butterfly/test/test_butterfly_response.rb +0 -43
  280. data/vendor/gems/butterfly/test/test_butterfly_server.rb +0 -16
  281. data/vendor/gems/butterfly/test/test_default.rb +0 -12
  282. data/vendor/gems/butterfly/test/test_helper.rb +0 -6
  283. data/vendor/gems/dslify/History.txt +0 -4
  284. data/vendor/gems/dslify/Manifest.txt +0 -25
  285. data/vendor/gems/dslify/PostInstall.txt +0 -5
  286. data/vendor/gems/dslify/README.txt +0 -60
  287. data/vendor/gems/dslify/Rakefile +0 -56
  288. data/vendor/gems/dslify/config/hoe.rb +0 -73
  289. data/vendor/gems/dslify/config/requirements.rb +0 -15
  290. data/vendor/gems/dslify/dslify.gemspec +0 -40
  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/lib/dslify.rb +0 -7
  294. data/vendor/gems/dslify/script/console +0 -10
  295. data/vendor/gems/dslify/script/destroy +0 -14
  296. data/vendor/gems/dslify/script/generate +0 -14
  297. data/vendor/gems/dslify/script/txt2html +0 -82
  298. data/vendor/gems/dslify/setup.rb +0 -1585
  299. data/vendor/gems/dslify/tasks/deployment.rake +0 -34
  300. data/vendor/gems/dslify/tasks/environment.rake +0 -7
  301. data/vendor/gems/dslify/tasks/website.rake +0 -17
  302. data/vendor/gems/dslify/test/test_dslify.rb +0 -114
  303. data/vendor/gems/dslify/website/index.html +0 -86
  304. data/vendor/gems/dslify/website/index.txt +0 -83
  305. data/vendor/gems/dslify/website/javascripts/rounded_corners_lite.inc.js +0 -285
  306. data/vendor/gems/dslify/website/stylesheets/screen.css +0 -138
  307. data/vendor/gems/dslify/website/template.html.erb +0 -48
  308. data/vendor/gems/parenting/History.txt +0 -4
  309. data/vendor/gems/parenting/Manifest.txt +0 -13
  310. data/vendor/gems/parenting/PostInstall.txt +0 -2
  311. data/vendor/gems/parenting/README.rdoc +0 -47
  312. data/vendor/gems/parenting/Rakefile +0 -28
  313. data/vendor/gems/parenting/lib/parenting/base.rb +0 -65
  314. data/vendor/gems/parenting/lib/parenting.rb +0 -10
  315. data/vendor/gems/parenting/parenting.gemspec +0 -39
  316. data/vendor/gems/parenting/script/console +0 -10
  317. data/vendor/gems/parenting/script/destroy +0 -14
  318. data/vendor/gems/parenting/script/generate +0 -14
  319. data/vendor/gems/parenting/test/file_to_eval.rb +0 -9
  320. data/vendor/gems/parenting/test/test_helper.rb +0 -5
  321. data/vendor/gems/parenting/test/test_parenting.rb +0 -89
  322. data/vendor/gems/suitcase/LICENSE +0 -20
  323. data/vendor/gems/suitcase/README.rdoc +0 -31
  324. data/vendor/gems/suitcase/Rakefile +0 -57
  325. data/vendor/gems/suitcase/VERSION.yml +0 -4
  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/lib/suitcase.rb +0 -5
  329. data/vendor/gems/suitcase/suitcase.gemspec +0 -32
  330. data/vendor/gems/suitcase/test/suitcase_test.rb +0 -102
  331. data/vendor/gems/suitcase/test/test_dir/box.rb +0 -1
  332. data/vendor/gems/suitcase/test/test_dir/test.txt +0 -1
  333. 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: 4
2
+ :patch: 5
3
3
  :major: 1
4
4
  :minor: 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,23 +2,40 @@
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
9
19
 
10
20
  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
- nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.remote_instances_list.collect {|inst| inst.ip if inst.running? }.compact
13
- if nodes.empty?
14
- puts "No nodes to configure"
22
+ # ::FileUtils.rm_rf "#{Default.tmp_path}/" unless o.testing?
23
+
24
+ if cld.nodes(:status => "running").size < 1
25
+ puts header("No instances running")
15
26
  else
16
- if o.inst_num?
17
- ::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"
18
30
  else
19
- nodes.each do |address|
20
- puts "Configuring: #{address}"
21
- ::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
22
39
  end
23
40
  end
24
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,13 +7,15 @@ 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
- ::PoolParty::Provision::BootStrapper.new(node.ip, :full_keypair_path => cld.keypair.full_filepath, :cloud => cld)
16
- ::PoolParty::Provision::DrConfigure.new(node.ip, :full_keypair_path => cld.keypair.full_filepath, :cloud => cld)
15
+ cld.launch_instance!(cld.dsl_options) do |node|
16
+
17
+ ::PoolParty::Provision::BootStrapper.new(node.ip, :cloud => cld)
18
+ ::PoolParty::Provision::DrConfigure.new(node.ip, :cloud => cld)
17
19
 
18
20
  puts <<-EOM
19
21
  Your cloud has started. Your ip is #{node.ip}
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
@@ -1,26 +1,37 @@
1
1
  #!/usr/bin/env ruby
2
- require "rubygems"
3
- require 'net/http'
4
- require 'json'
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
5
4
  require "poolparty/lite"
6
5
 
7
- vote_for = ARGV.shift || "none" # or pending or terminated
8
- schema = ::PoolParty.load_cloud_from_json(ARGV.shift) #TODO: smarter option parser
6
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
+ opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
8
+ opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
9
+ end
10
+
11
+ vote_for = o.unflagged_args.shift || "none"
12
+
13
+ schema = ::PoolParty.load_cloud_from_json(o.unflagged_args.shift) #TODO: smarter option parser
9
14
  remote_base_name = schema.options.remote_base.split('::')[-1].camelcase
10
15
  remoter_base = PoolParty::Remote.module_eval(remote_base_name)
11
- require 'rubygems'; require 'ruby-debug'; debugger
12
16
 
13
- case vote_for
14
- when "expand"
15
- # PoolParty.log << "Launching new instance"
16
- remoter_base.send :launch_new_instance!, schema.options do |node|
17
- ::PoolParty::Provision::BootStrapper.new( node[:ip], :full_keypair_path => cld.keypair.full_filepath, :cloud => schema.options )
18
- ::PoolParty::Provision::DrConfigure.new( node[:ip], :full_keypair_path => cld.keypair.full_filepath, :cloud => schema.options )
17
+ o.loaded_clouds.each do |cld|
18
+ cld.update_from_schema(schema)
19
+
20
+ case vote_for
21
+ when "expand"
22
+ vputs "Launching new instance"
23
+ cld.send :launch_instance!, schema.options do |node|
24
+ dputs "Started node at #{node[:ip]}"
25
+
26
+ ::PoolParty::Provision::BootStrapper.new( node[:ip], :cloud => cld )
27
+ ::PoolParty::Provision::DrConfigure.new( node[:ip], :cloud => cld )
28
+ end
29
+
30
+ when "contract"
31
+ last_instance_id = %x[/usr/bin/server-list-active instance_id].split("\t").last
32
+ remoter_base.terminate_instance! schema.options.merge(:instance_id => last_instance_id)
33
+ else
34
+ puts "Unknown action: #{vote_for}"
19
35
  end
20
- when "contract"
21
- last_instance_id = %x[/usr/bin/server-list-active instance_id].split("\t").last
22
- remoter_base.terminate_instance! schema.options.merge(:instance_id => last_instance_id)
23
- else
24
- puts "Unknown action: #{vote_for}"
36
+
25
37
  end
26
-
@@ -1,38 +1,33 @@
1
1
  #!/usr/bin/env ruby
2
2
  $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
  require "poolparty"
4
- require "poolpartycl"
4
+ require "poolparty/lite"
5
5
 
6
- available_monitors = PoolParty::Monitors.available_monitors
7
6
  o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
8
- opts.on('-n name', '--name name', 'Host name') { |h| optioner.hostname h }
9
- opts.on('-l', '--no-shell', 'No shell') {optioner.noshell true}
7
+ opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
8
+ opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
10
9
  end
11
10
 
12
- o.loaded_clouds.each do |cloud|
13
-
14
- with_cloud(cloud) do
11
+ schema = ::PoolParty.load_cloud_from_json
12
+
13
+ o.loaded_clouds.each do |cld|
14
+ cld.update_from_schema(schema)
15
15
 
16
- @nonprovisioned_nodes = list_of_running_instances.map {|a| a.name } - cloud.get_current_nodes
17
- # @tp = ThreadPool.new(10)
18
- @nonprovisioned_nodes.each do |node|
19
- vputs "Provisioning #{node}"
20
- next if node == "master"
21
- # @tp.process do
22
- str = returning Array.new do |s|
23
- s << cloud.dependency_resolver_command
24
- end.join(";")
25
-
26
- node_id = node.gsub(/node/, '')
27
-
28
- cmd = ". /etc/profile && #{str};server-provision -n #{cloud.name} -i #{node_id};#{str}"
29
- running_cmd = "ps aux | grep -v grep | grep \"server-provision -n #{cloud.name} -i #{node_id};\""
30
-
31
- vputs "Executing #{cmd}"
32
- running = %x[#{running_cmd}]
33
- `#{cmd}` if running.chomp.empty?
16
+ # If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
17
+ nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.remote_instances_list.collect {|inst| inst.ip if inst.running? }.compact
18
+ if nodes.empty?
19
+ puts "No nodes to bootstrap"
20
+ else
21
+ if o.inst_num?
22
+ ::PoolParty::Provision::BootStrapper.new( nodes[o.inst_num], :cloud => cld )
23
+ ::PoolParty::Provision::DrConfigure.new( nodes[o.inst_num], :cloud => cld )
24
+ else
25
+ nodes.each do |address|
26
+ puts "bootstrapping: #{address}"
27
+ ::PoolParty::Provision::BootStrapper.new( address, :cloud => cld )
28
+ ::PoolParty::Provision::DrConfigure.new( address, :cloud => cld )
29
+ end
34
30
  end
35
- # @tp.join
36
- end
37
-
38
- end
31
+ end
32
+ end
33
+
@@ -8,17 +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
- instances = PoolParty::Remote::Ec2.describe_instances(schema.options)
14
- 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
15
20
 
16
21
  print_array =
17
22
  case list_type
18
23
  when "ip"
19
- 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 }
20
25
  when "internal_ip"
21
- inst_array.compact.map {|ip| ip.gsub(/ip-/, '').gsub(/\.ec2\.internal/, '').gsub(/-/, '.') }
26
+ inst_array.compact.map {|i| i.internal_ip || i.ip }
22
27
  else
23
28
  inst_array
24
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
@@ -13,14 +13,14 @@ o.loaded_clouds.each do |cloud|
13
13
 
14
14
  new_hosts_listing = returning Array.new do |arr|
15
15
 
16
- puts list_of_running_instances
16
+ puts nodes(:status => "running")
17
17
 
18
- list_of_running_instances.each do |ri|
18
+ nodes(:status => "running").each do |ri|
19
19
  vputs ri.hosts_file_listing_for(self)
20
20
  arr << ri.hosts_file_listing_for(self)
21
21
  end
22
22
  other_clouds.each do |other|
23
- other.list_of_running_instances.each do |ri|
23
+ other.nodes(:status => "running").each do |ri|
24
24
  vputs ri.hosts_file_listing_for(self)
25
25
  arr << ri.hosts_file_listing_for(self)
26
26
  end
@@ -15,7 +15,7 @@ o.loaded_clouds.each do |cloud|
15
15
 
16
16
  str = returning Array.new do |arr|
17
17
  arr << "node default { include poolparty }"
18
- list_of_running_instances.each do |ri|
18
+ nodes(:status => "running").each do |ri|
19
19
  arr << "node \"#{ri.name}\" inherits default {}"
20
20
  end
21
21
  end.join("\n")
data/config/jeweler.rb CHANGED
@@ -2,6 +2,13 @@
2
2
  # Info at http://github.com/guides/tell-git-your-user-name-and-email-address
3
3
 
4
4
  begin
5
+ class Array
6
+ def one_of_regex
7
+ option_list = join "|"
8
+ Regexp.new "(#{option_list})"
9
+ end
10
+ end
11
+
5
12
  require 'jeweler'
6
13
  Jeweler::Tasks.new do |s|
7
14
  s.name = "poolparty"
@@ -16,8 +23,10 @@ begin
16
23
  s.authors = ["Ari Lerner"]
17
24
 
18
25
  s.test_files = Dir["test/**/test_*.rb"]
19
- s.files = %w(Rakefile History.txt README.txt PostInstall.txt License.txt VERSION.yml) +
20
- Dir["{config,examples,lib,spec,test,tasks,script,generators,bin,vendor}/**/*"]
26
+ excludes_regexp = ["vendor/gems", "lib/erlang"].one_of_regex
27
+
28
+ s.files = (%w(Rakefile History.txt README.txt PostInstall.txt License.txt VERSION.yml) +
29
+ Dir["{config,examples,lib,spec,test,tasks,script,generators,bin,vendor}/**/*"]).delete_if{|f| f =~ excludes_regexp}
21
30
 
22
31
  s.has_rdoc = true
23
32
  s.extra_rdoc_files = ["README.txt", "License.txt", 'History.txt']
@@ -32,7 +41,7 @@ begin
32
41
  s.add_dependency 'auser-dslify'
33
42
  s.add_dependency 'auser-parenting'
34
43
  # s.add_dependency 'auser-suitcase'
35
- s.add_dependency 'ruby2ruby'
44
+ # s.add_dependency 'ruby2ruby' #TODO: remove this after verifying removing doesnt break anything
36
45
  s.add_dependency 'grempe-amazon-ec2'
37
46
  s.add_dependency 'rubigen', ">=1.5.2"
38
47
  # Certainly there should be more here
@@ -102,18 +102,7 @@ module Aska
102
102
  end
103
103
 
104
104
  def look_up_rules(r);self.class.look_up_rules(r);end
105
- def are_rules?(r);self.class.are_rules?(r);end
106
-
107
- # def method_missing(m, *args, &block)
108
- # if self.class.defined_rules.has_key?(m.to_sym)
109
- # self.class.send(:define_method, m) do
110
- # self.class.look_up_rules(m)
111
- # end
112
- # self.send m
113
- # else
114
- # super
115
- # end
116
- # end
105
+ def are_rules?(r);self.class.are_rules?(r);end
117
106
  end
118
107
 
119
108
  def self.included(receiver)