poolparty 0.2.18 → 0.2.69
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +142 -47
- data/PostInstall.txt +5 -5
- data/README.txt +25 -4
- data/Rakefile +46 -2
- data/bin/cloud +12 -21
- data/bin/cloud-add-keypair +18 -13
- data/bin/cloud-configure +11 -18
- data/bin/cloud-contract +7 -17
- data/bin/cloud-ensure-provisioning +39 -0
- data/bin/cloud-expand +9 -17
- data/bin/cloud-handle-load +27 -0
- data/bin/cloud-list +3 -9
- data/bin/cloud-maintain +12 -18
- data/bin/cloud-osxcopy +3 -9
- data/bin/cloud-provision +20 -21
- data/bin/cloud-refresh +4 -13
- data/bin/cloud-run +3 -4
- data/bin/cloud-ssh +3 -2
- data/bin/cloud-start +18 -21
- data/bin/cloud-stats +17 -0
- data/bin/cloud-terminate +4 -7
- data/bin/messenger-get-current-nodes +14 -0
- data/bin/pool +12 -12
- data/bin/pool-describe +0 -1
- data/bin/{pool-spec → pool-generate} +1 -0
- data/bin/pool-init +28 -0
- data/bin/pool-list +14 -12
- data/bin/pool-start +11 -17
- data/bin/server-build-messenger +13 -6
- data/bin/server-fire-cmd +1 -1
- data/bin/server-get-load +5 -16
- data/bin/server-list-active +3 -10
- data/bin/server-rerun +4 -4
- data/bin/server-send-command +18 -0
- data/bin/server-show-stats +17 -0
- data/bin/server-start-client +29 -0
- data/bin/server-start-master +13 -14
- data/bin/server-start-node +14 -15
- data/bin/server-stop-client +3 -0
- data/bin/server-stop-master +3 -0
- data/bin/server-stop-node +3 -0
- data/bin/server-update-hosts +48 -0
- data/config/hoe.rb +4 -3
- data/examples/plugin_without_plugin_directory.rb +1 -2
- data/generators/poolspec/USAGE +2 -2
- data/generators/poolspec/poolspec_generator.rb +2 -1
- data/generators/poolspec/templates/pool_spec_template.erb +3 -2
- data/lib/erlang/messenger/Rakefile +12 -0
- data/lib/erlang/messenger/ebin/client.app +19 -0
- data/lib/erlang/messenger/ebin/master.app +1 -1
- data/lib/erlang/messenger/ebin/node.app +1 -1
- data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +1 -0
- data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -1
- data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -1
- data/lib/erlang/messenger/include/defines.hrl +27 -0
- data/lib/erlang/messenger/lib/eunit/.svn/all-wcprops +53 -0
- data/lib/erlang/messenger/lib/eunit/.svn/entries +140 -0
- data/lib/erlang/messenger/lib/eunit/.svn/format +1 -0
- data/lib/erlang/messenger/lib/eunit/.svn/prop-base/NOTES.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/AUTHORS.svn-base +2 -0
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/CHANGELOG.svn-base +14 -0
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/COPYING.svn-base +504 -0
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/NOTES.svn-base +276 -0
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/README.svn-base +3 -0
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/sys.config.svn-base +9 -0
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/vsn.mk.svn-base +1 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/all-wcprops +59 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/entries +142 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/format +1 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/erlang.png.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/eunit.html.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/index.html.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/modules-frame.html.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/overview-summary.html.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/packages-frame.html.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/edoc-info.svn-base +3 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/erlang.png.svn-base +0 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/eunit.html.svn-base +172 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/index.html.svn-base +17 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/modules-frame.html.svn-base +12 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/overview-summary.html.svn-base +984 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/overview.edoc.svn-base +980 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/packages-frame.html.svn-base +11 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/stylesheet.css.svn-base +55 -0
- data/lib/erlang/messenger/lib/eunit/ebin/.svn/all-wcprops +5 -0
- data/lib/erlang/messenger/lib/eunit/ebin/.svn/dir-prop-base +8 -0
- data/lib/erlang/messenger/lib/eunit/ebin/.svn/entries +28 -0
- data/lib/erlang/messenger/lib/eunit/ebin/.svn/format +1 -0
- data/lib/erlang/messenger/lib/eunit/examples/.svn/all-wcprops +23 -0
- data/lib/erlang/messenger/lib/eunit/examples/.svn/entries +66 -0
- data/lib/erlang/messenger/lib/eunit/examples/.svn/format +1 -0
- data/lib/erlang/messenger/lib/eunit/examples/.svn/prop-base/eunit_examples.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/examples/.svn/prop-base/fib.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/eunit_examples.erl.svn-base +339 -0
- data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/fib.erl.svn-base +19 -0
- data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/tests.txt.svn-base +1 -0
- data/lib/erlang/messenger/lib/eunit/include/.svn/all-wcprops +11 -0
- data/lib/erlang/messenger/lib/eunit/include/.svn/entries +41 -0
- data/lib/erlang/messenger/lib/eunit/include/.svn/format +1 -0
- data/lib/erlang/messenger/lib/eunit/include/.svn/prop-base/eunit.hrl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/include/.svn/text-base/eunit.hrl.svn-base +313 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/all-wcprops +113 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/entries +259 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/format +1 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/autoload.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/code_monitor.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_autoexport.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_data.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_internal.hrl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_lib.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_proc.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_serial.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_server.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_striptests.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_test.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_tests.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_tty.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/file_monitor.erl.svn-base +5 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/autoload.erl.svn-base +388 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/code_monitor.erl.svn-base +243 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.app.src.svn-base +21 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.appup.src.svn-base +1 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.erl.svn-base +196 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_autoexport.erl.svn-base +102 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_data.erl.svn-base +798 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_internal.hrl.svn-base +48 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_lib.erl.svn-base +682 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_proc.erl.svn-base +552 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_serial.erl.svn-base +157 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_server.erl.svn-base +340 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_striptests.erl.svn-base +64 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_test.erl.svn-base +334 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_tests.erl.svn-base +45 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_tty.erl.svn-base +272 -0
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/file_monitor.erl.svn-base +409 -0
- data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_client_rel-0.1.script +238 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.script +82 -85
- data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_node_rel-0.1.script +80 -85
- data/lib/erlang/messenger/src/client_app.erl +39 -0
- data/lib/erlang/messenger/src/client_server.erl +60 -0
- data/lib/erlang/messenger/src/pm_client.erl +48 -18
- data/lib/erlang/messenger/src/pm_client_old.erl +52 -0
- data/lib/erlang/messenger/src/pm_client_supervisor.erl +38 -0
- data/lib/erlang/messenger/src/pm_cluster.erl +20 -16
- data/lib/erlang/messenger/src/pm_event_manager.erl +27 -0
- data/lib/erlang/messenger/src/pm_master.erl +126 -34
- data/lib/erlang/messenger/src/pm_master_event_handler.erl +72 -0
- data/lib/erlang/messenger/src/pm_master_supervisor.erl +9 -10
- data/lib/erlang/messenger/src/pm_node.erl +107 -30
- data/lib/erlang/messenger/src/pm_node_supervisor.erl +13 -15
- data/lib/erlang/messenger/src/pm_packager.erl +5 -2
- data/lib/erlang/messenger/src/pm_strings.erl +11 -0
- data/lib/erlang/messenger/src/utils.erl +43 -8
- data/lib/erlang/messenger/useful_snippets +17 -0
- data/lib/poolparty/aska/aska.rb +150 -0
- data/lib/poolparty/base_packages/haproxy.rb +19 -26
- data/lib/poolparty/base_packages/heartbeat.rb +48 -47
- data/lib/poolparty/base_packages/poolparty.rb +88 -36
- data/lib/poolparty/base_packages/runit.rb +21 -0
- data/lib/poolparty/config/postlaunchmessage.txt +5 -0
- data/lib/poolparty/core/array.rb +4 -1
- data/lib/poolparty/core/class.rb +2 -0
- data/lib/poolparty/core/exception.rb +2 -1
- data/lib/poolparty/core/hash.rb +2 -2
- data/lib/poolparty/core/kernel.rb +3 -3
- data/lib/poolparty/core/metaid.rb +15 -0
- data/lib/poolparty/core/object.rb +42 -2
- data/lib/poolparty/core/string.rb +21 -6
- data/lib/poolparty/core/symbol.rb +9 -0
- data/lib/poolparty/dependency_resolutions/puppet.rb +20 -7
- data/lib/poolparty/exceptions/CloudNotFoundException.rb +7 -0
- data/lib/poolparty/exceptions/LoadRulesException.rb +7 -0
- data/lib/poolparty/exceptions/MasterException.rb +10 -0
- data/lib/poolparty/helpers/binary.rb +37 -4
- data/lib/poolparty/helpers/console.rb +25 -8
- data/lib/poolparty/helpers/nice_printer.rb +36 -0
- data/lib/poolparty/helpers/optioner.rb +51 -16
- data/lib/poolparty/helpers/provisioner_base.rb +117 -28
- data/lib/poolparty/helpers/provisioners/master.rb +102 -35
- data/lib/poolparty/helpers/provisioners/slave.rb +25 -9
- data/lib/poolparty/modules/cloud_dsl.rb +13 -0
- data/lib/poolparty/modules/cloud_resourcer.rb +51 -8
- data/lib/poolparty/modules/configurable.rb +1 -1
- data/lib/poolparty/modules/definable_resource.rb +2 -2
- data/lib/poolparty/modules/file_writer.rb +37 -6
- data/lib/poolparty/modules/method_missing_sugar.rb +8 -3
- data/lib/poolparty/modules/pretty_printer.rb +1 -0
- data/lib/poolparty/modules/resourcing_dsl.rb +4 -2
- data/lib/poolparty/modules/thread_pool.rb +106 -0
- data/lib/poolparty/monitors/base_monitor.rb +65 -6
- data/lib/poolparty/monitors/monitors/cpu_monitor.rb +1 -1
- data/lib/poolparty/monitors/monitors/memory_monitor.rb +28 -1
- data/lib/poolparty/monitors/monitors/web_monitor.rb +18 -0
- data/lib/poolparty/net/messenger.rb +72 -0
- data/lib/poolparty/net/remote.rb +5 -2
- data/lib/poolparty/net/remote_bases/ec2/ec2_response_object.rb +66 -0
- data/lib/poolparty/net/remote_bases/ec2.rb +133 -131
- data/lib/poolparty/net/remote_instance.rb +28 -6
- data/lib/poolparty/net/remoter.rb +117 -64
- data/lib/poolparty/net/remoter_base.rb +49 -11
- data/lib/poolparty/plugins/deploydirectory.rb +66 -0
- data/lib/poolparty/plugins/line.rb +5 -4
- data/lib/poolparty/plugins/rsyncmirror.rb +26 -0
- data/lib/poolparty/plugins/runit.rb +96 -0
- data/lib/poolparty/plugins/svn.rb +1 -1
- data/lib/poolparty/pool/base.rb +47 -18
- data/lib/poolparty/pool/cloud.rb +121 -65
- data/lib/poolparty/pool/custom_resource.rb +4 -20
- data/lib/poolparty/pool/loggable.rb +3 -8
- data/lib/poolparty/pool/plugin.rb +14 -19
- data/lib/poolparty/pool/plugin_model.rb +8 -8
- data/lib/poolparty/pool/pool.rb +28 -11
- data/lib/poolparty/pool/resource.rb +109 -40
- data/lib/poolparty/pool/resources/class_package.rb +74 -33
- data/lib/poolparty/pool/resources/conditional.rb +32 -10
- data/lib/poolparty/pool/resources/custom_service.rb +30 -0
- data/lib/poolparty/pool/resources/exec.rb +6 -5
- data/lib/poolparty/pool/resources/gem_package.rb +52 -0
- data/lib/poolparty/pool/resources/mount.rb +22 -0
- data/lib/poolparty/pool/resources/package.rb +13 -3
- data/lib/poolparty/pool/resources/sshkey.rb +1 -1
- data/lib/poolparty/pool/resources/variable.rb +4 -0
- data/lib/poolparty/pool/script.rb +8 -6
- data/lib/poolparty/templates/haproxy.conf +1 -1
- data/lib/poolparty/templates/messenger/client/log-run.erb +2 -0
- data/lib/poolparty/templates/messenger/client/run.erb +4 -0
- data/lib/poolparty/templates/messenger/master/log-run.erb +2 -0
- data/lib/poolparty/templates/messenger/master/run.erb +4 -0
- data/lib/poolparty/templates/messenger/node/log-run.erb +2 -0
- data/lib/poolparty/templates/messenger/node/run.erb +4 -0
- data/lib/poolparty/templates/poolparty.monitor +1 -1
- data/lib/poolparty/templates/puppet.conf +0 -0
- data/lib/poolparty/templates/puppetcleaner +6 -0
- data/lib/poolparty/templates/puppetrerun +9 -0
- data/lib/poolparty/templates/puppetrunner +8 -0
- data/lib/poolparty/templates/yaws.conf +19 -0
- data/lib/poolparty/version.rb +1 -1
- data/lib/poolparty.rb +35 -6
- data/lib/poolpartycl.rb +4 -0
- data/log/pool.logs +0 -0
- data/poolparty.gemspec +574 -61
- data/spec/poolparty/aska/aska_spec.rb +122 -0
- data/spec/poolparty/bin/console_spec.rb +18 -0
- data/spec/poolparty/core/hash_spec.rb +4 -4
- data/spec/poolparty/core/object_spec.rb +29 -0
- data/spec/poolparty/core/string_spec.rb +6 -0
- data/spec/poolparty/core/time_spec.rb +0 -3
- data/spec/poolparty/helpers/binary_spec.rb +2 -2
- data/spec/poolparty/helpers/optioner_spec.rb +1 -4
- data/spec/poolparty/helpers/provisioner_base_spec.rb +14 -1
- data/spec/poolparty/helpers/provisioners/master_spec.rb +3 -3
- data/spec/poolparty/modules/cloud_resourcer_spec.rb +3 -3
- data/spec/poolparty/modules/configurable_spec.rb +4 -1
- data/spec/poolparty/monitors/base_monitor_spec.rb +94 -2
- data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +0 -1
- data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +47 -0
- data/spec/poolparty/{helpers → net}/messenger_spec.rb +3 -1
- data/spec/poolparty/net/remote_bases/ec2_spec.rb +46 -5
- data/spec/poolparty/net/remote_instance_spec.rb +2 -1
- data/spec/poolparty/net/remote_spec.rb +30 -8
- data/spec/poolparty/net/remoter_base_spec.rb +4 -1
- data/spec/poolparty/net/remoter_spec.rb +11 -108
- data/spec/poolparty/plugins/deploydirectory_spec.rb +51 -0
- data/spec/poolparty/pool/base_spec.rb +43 -33
- data/spec/poolparty/pool/cloud_spec.rb +299 -248
- data/spec/poolparty/pool/custom_resource_spec.rb +10 -5
- data/spec/poolparty/pool/example_spec.rb +0 -84
- data/spec/poolparty/pool/plugin_model_spec.rb +3 -2
- data/spec/poolparty/pool/plugin_spec.rb +89 -62
- data/spec/poolparty/pool/pool_spec.rb +17 -2
- data/spec/poolparty/pool/resource_spec.rb +341 -236
- data/spec/poolparty/pool/resources/class_package_spec.rb +102 -66
- data/spec/poolparty/pool/resources/conditional_spec.rb +65 -26
- data/spec/poolparty/pool/resources/cron_spec.rb +3 -2
- data/spec/poolparty/pool/resources/exec_spec.rb +1 -1
- data/spec/poolparty/pool/resources/gem_spec.rb +18 -14
- data/spec/poolparty/pool/resources/remote_file_spec.rb +1 -1
- data/spec/poolparty/pool/resources/variable_spec.rb +1 -1
- data/spec/poolparty/pool/script_spec.rb +58 -37
- data/spec/poolparty/pool/test_plugins/webserver.rb +1 -0
- data/spec/poolparty/spec_helper.rb +16 -5
- data/tasks/deployment.rake +19 -3
- data/tasks/development.rake +11 -2
- data/tasks/ec2.rake +9 -1
- data/website/index.html +2 -2
- metadata +167 -70
- data/bin/pool-provision +0 -34
- data/erl_crash.dump +0 -8409
- data/examples/with_apache_plugin.rb +0 -22
- data/lib/erlang/messenger/Makefile +0 -15
- data/lib/erlang/messenger/ebin/master_app.beam +0 -0
- data/lib/erlang/messenger/ebin/node_app.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
- data/lib/erlang/messenger/ebin/utils.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
- data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
- data/lib/erlang/messenger/src/pm_event_handler.erl +0 -21
- data/lib/poolparty/config/allowed_commands.yml +0 -1
- data/lib/poolparty/helpers/messenger.rb +0 -29
- data/lib/poolparty/plugins/git.rb +0 -39
- data/lib/poolparty/pool/resources/gem.rb +0 -28
- data/lib/poolparty/pool/tmp/.ppkeys +0 -3
- data/lib/poolparty/pool/tmp/happydayz +0 -1
- data/lib/poolparty/pool/tmp/install_master.sh +0 -33
- data/lib/poolparty/pool/tmp/pool.spec +0 -11
- data/lib/poolparty/pool/tmp/poolparty.pp +0 -600
- data/lib/poolparty/pool/tmp/tc-instances.list +0 -1
- data/lib/poolparty/templates/fileserver.conf +0 -4
- data/spec/poolparty/plugins/git_spec.rb +0 -33
- data/test_manifest.pp +0 -658
data/bin/cloud-contract
CHANGED
@@ -6,22 +6,12 @@ require "poolpartycl"
|
|
6
6
|
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
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
puts "Cloud name required. Please specify it with -n name"
|
19
|
-
exit(0)
|
20
|
-
end
|
21
|
-
|
22
|
-
with_cloud(@cloud, {:testing => @testing}) do
|
23
|
-
puts header("Contracting cloud #{name}")
|
24
|
-
puts "#{list_of_running_instances.size} running instances (#{minimum_instances} minimum instances)"
|
25
|
-
puts testing ? "Not contracting (test mode)" : "Contracting the cloud if possible"
|
26
|
-
contract_cloud_if_necessary( !testing )
|
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
|
27
17
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
|
+
require "poolparty"
|
4
|
+
require "poolpartycl"
|
5
|
+
|
6
|
+
available_monitors = PoolParty::Monitors.available_monitors
|
7
|
+
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}
|
10
|
+
end
|
11
|
+
|
12
|
+
o.loaded_clouds.each do |cloud|
|
13
|
+
|
14
|
+
with_cloud(cloud) do
|
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 << "/usr/sbin/puppetca --clean #{node}.compute-1.internal"
|
24
|
+
s << "/usr/sbin/puppetca --clean #{node}.ec2.internal"
|
25
|
+
end.join(";")
|
26
|
+
|
27
|
+
node_id = node.gsub(/node/, '')
|
28
|
+
|
29
|
+
cmd = ". /etc/profile && #{str};cloud-provision -n #{cloud.name} -i #{node_id};#{str}"
|
30
|
+
running_cmd = "ps aux | grep -v grep | grep \"cloud-provision -n #{cloud.name} -i #{node_id};\""
|
31
|
+
|
32
|
+
vputs "Executing #{cmd}"
|
33
|
+
running = %x[#{running_cmd}]
|
34
|
+
`#{cmd}` if running.chomp.empty?
|
35
|
+
end
|
36
|
+
# @tp.join
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
data/bin/cloud-expand
CHANGED
@@ -4,24 +4,16 @@ require "poolparty"
|
|
4
4
|
require "poolpartycl"
|
5
5
|
|
6
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
7
|
-
opts.on('-n name', '--name name', '
|
7
|
+
opts.on('-n name', '--name name', 'Expand the cloud on this name') { |c| optioner.cloudname c }
|
8
8
|
end
|
9
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
10
9
|
|
11
|
-
|
10
|
+
o.loaded_clouds.each do |cloud|
|
12
11
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
with_cloud(@cloud, {:testing => @testing}) do
|
23
|
-
puts header("Expanding cloud #{name}")
|
24
|
-
puts "#{list_of_running_instances.size} running instances of #{maximum_instances} possible instances"
|
25
|
-
puts testing ? "Not expanding (test mode)" : "Expanding the cloud"
|
26
|
-
expand_cloud_if_necessary( !testing )
|
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 )
|
17
|
+
end
|
18
|
+
|
27
19
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
|
+
require "poolparty"
|
4
|
+
require "poolpartycl"
|
5
|
+
|
6
|
+
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
7
|
+
opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
|
8
|
+
end
|
9
|
+
|
10
|
+
o.loaded_clouds.each do |cloud|
|
11
|
+
|
12
|
+
with_cloud(cloud) do
|
13
|
+
vputs header("Load handling cloud #{name}")
|
14
|
+
vputs "should_expand_cloud: #{should_contract_cloud?}"
|
15
|
+
if should_expand_cloud?
|
16
|
+
vputs "Expanding cloud based on load"
|
17
|
+
logger.debug "Expanding cloud based on load"
|
18
|
+
logger.debug rules_values
|
19
|
+
expand_cloud_if_necessary
|
20
|
+
elsif should_contract_cloud?
|
21
|
+
vputs "Contracting cloud based on load"
|
22
|
+
logger.debug rules_values
|
23
|
+
contract_cloud_if_necessary
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/bin/cloud-list
CHANGED
@@ -2,23 +2,17 @@
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
|
+
|
5
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
6
7
|
opts.on('-f [remote|local]', '--from [remote|local]', 'Remote or local (default: local)') { |o| optioner.location o }
|
7
8
|
opts.on('-r', '--remote', 'Remote listing') { optioner.location "remote" }
|
8
9
|
opts.on('-l', '--local', 'Local listing') { optioner.location "local" }
|
9
10
|
opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
|
10
11
|
end
|
11
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
12
|
-
|
13
|
-
@location = o.location ? o.location : "remote"
|
14
|
-
|
15
|
-
include Remote
|
16
|
-
|
17
|
-
@clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds
|
18
12
|
|
19
|
-
|
13
|
+
o.loaded_clouds.each do |cloud|
|
20
14
|
|
21
|
-
with_cloud(cloud
|
15
|
+
with_cloud(cloud) do
|
22
16
|
puts header("Listing cloud #{name}")
|
23
17
|
puts subheader("Active instances")
|
24
18
|
puts list_of_running_instances.map{|a| a.to_s}.join("\n")
|
data/bin/cloud-maintain
CHANGED
@@ -8,29 +8,23 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
8
8
|
opts.on('-l', '--local', 'Local listing') { optioner.location "local" }
|
9
9
|
opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
|
10
10
|
end
|
11
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
12
11
|
|
13
|
-
|
12
|
+
o.loaded_clouds.each do |cloud|
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
@clouds.each do |name, cloud|
|
20
|
-
|
21
|
-
with_cloud(cloud, {:location => @location, :testing => o.testing}) do
|
22
|
-
logger.info header("Maintaining cloud #{name}")
|
14
|
+
with_cloud(cloud) do
|
15
|
+
vputs header("Maintaining cloud #{name}")
|
16
|
+
logger.warn "Maintaining cloud"
|
17
|
+
logger.warn rules_values
|
23
18
|
if !minimum_number_of_instances_are_running?
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
elsif
|
28
|
-
|
29
|
-
|
19
|
+
vputs "#{list_of_running_instances.size} running instances of between #{minimum_instances} and #{maximum_instances}"
|
20
|
+
vputs "Launching new instance"
|
21
|
+
launch_minimum_number_of_instances
|
22
|
+
elsif maximum_number_of_instances_are_running?
|
23
|
+
vputs "#{list_of_running_instances.size} running instances of between #{minimum_instances} and #{maximum_instances}"
|
24
|
+
vputs "Shutting down non-master instance"
|
30
25
|
contract_cloud_if_necessary( !testing )
|
31
|
-
else
|
32
|
-
logger.info "Cloud is maintained"
|
33
26
|
end
|
27
|
+
vputs "Cloud is maintained"
|
34
28
|
end
|
35
29
|
|
36
30
|
end
|
data/bin/cloud-osxcopy
CHANGED
@@ -2,18 +2,12 @@
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
|
+
|
5
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
6
|
-
opts.on('-n name', '--name name', '
|
7
|
+
opts.on('-n name', '--name name', 'Copy the master ip for this cloud') { |c| optioner.cloudname c }
|
7
8
|
end
|
8
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
9
|
-
|
10
|
-
@location = o.location ? o.location : "remote"
|
11
|
-
|
12
|
-
include Remote
|
13
|
-
|
14
|
-
@clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds
|
15
9
|
|
16
|
-
|
10
|
+
o.loaded_clouds.each do |cloud|
|
17
11
|
|
18
12
|
with_cloud(cloud, {:location => @location}) do
|
19
13
|
Kernel.system "echo #{master.ip.chomp} | pbcopy"
|
data/bin/cloud-provision
CHANGED
@@ -2,34 +2,33 @@
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
|
+
|
5
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
6
|
-
opts.on('-
|
7
|
-
opts.on('-
|
7
|
+
opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
|
8
|
+
opts.on('-p', '--slave', 'Provision slave (default: false)') { optioner.provision_slave true }
|
9
|
+
opts.on('-i num', '--id num', 'Instance num to provision') { |i| optioner.instance_number i }
|
8
10
|
end
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
@provision_class = o.provision_class || "all"
|
13
|
-
|
14
|
-
include Remote
|
12
|
+
o.loaded_clouds.each do |cloud|
|
15
13
|
|
16
|
-
|
14
|
+
with_cloud(cloud) do
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
with_cloud(cloud, {:testing => o.testing, :location => @location, :provision_class => @provision_class}) do
|
16
|
+
instance_num = instance_number.to_i if instance_number
|
21
17
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
Provisioner.
|
26
|
-
|
27
|
-
|
28
|
-
|
18
|
+
if instance_num
|
19
|
+
@instance = get_instance_by_number( instance_num )
|
20
|
+
instance_num == 0 ? Provisioner.provision_master(self, testing) : Provisioner.provision_slave(@instance, self, testing)
|
21
|
+
Provisioner.process_clean_reconfigure_for!(@instance, self, testing)
|
22
|
+
else
|
23
|
+
if provision_slave
|
24
|
+
vputs "Provisioning slaves"
|
25
|
+
Provisioner.provision_slaves(self, testing)
|
26
|
+
else
|
27
|
+
vputs "Provisioning master"
|
28
|
+
(verbose || testing) ? Provisioner.provision_master(self, testing) : hide_output { Provisioner.provision_master(self, testing) }
|
29
|
+
end
|
29
30
|
end
|
30
31
|
|
31
|
-
|
32
|
+
end
|
32
33
|
|
33
|
-
clear_base_directory unless testing
|
34
|
-
end
|
35
34
|
end
|
data/bin/cloud-refresh
CHANGED
@@ -6,21 +6,12 @@ require "poolpartycl"
|
|
6
6
|
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
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
include Remote
|
14
|
-
|
15
|
-
@clouds = o.cloudname ? {:cloud => cloud(o.cloudname.downcase.to_sym)} : clouds
|
16
|
-
|
17
|
-
@clouds.each do |name, cloud|
|
10
|
+
o.loaded_clouds.each do |cloud|
|
18
11
|
|
19
|
-
with_cloud(cloud
|
20
|
-
|
21
|
-
|
22
|
-
EOE
|
23
|
-
run_command_on(cmd.runnable, master)
|
12
|
+
with_cloud(cloud) do
|
13
|
+
vputs "Calling reconfigure_cloud!('force_reconfig') on #{master.ip}"
|
14
|
+
reconfigure_cloud!("force_reconfig")
|
24
15
|
end
|
25
16
|
|
26
17
|
end
|
data/bin/cloud-run
CHANGED
@@ -11,9 +11,8 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
11
11
|
opts.on('-c command', '--command command', 'Command to run on the instance') { |c| optioner.command c }
|
12
12
|
end
|
13
13
|
|
14
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
15
|
-
|
16
14
|
@cmd = o.command if (o.command)
|
17
|
-
@cloud = o.cloudname ? cloud(o.cloudname.downcase.to_sym) : cloud(clouds.keys.first)
|
18
15
|
|
19
|
-
|
16
|
+
o.loaded_clouds.each do |cl|
|
17
|
+
@cloud.run_command_on_instance_number( @cmd, o.num.to_i || 0 ) if @cloud
|
18
|
+
end
|
data/bin/cloud-ssh
CHANGED
@@ -2,12 +2,13 @@
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
|
+
|
5
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
6
7
|
opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
|
7
8
|
opts.on('-i num', '--id num', 'Instance num to ssh (default: 0)') { |i| optioner.num i }
|
8
9
|
end
|
9
10
|
load_pool(o.spec || Binary.get_existing_spec_location)
|
10
11
|
|
11
|
-
@cloud = o.
|
12
|
+
@cloud = o.loaded_clouds.first
|
12
13
|
|
13
|
-
|
14
|
+
@cloud.ssh_into_instance_number( o.num.to_i || 0 ) if @cloud
|
data/bin/cloud-start
CHANGED
@@ -2,32 +2,29 @@
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
|
+
|
5
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
6
|
-
opts.on('-
|
7
|
+
opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
|
8
|
+
opts.on('-d', '--daemonize', 'Daemonize starting the cloud') { optioner.daemon true }
|
7
9
|
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
@clouds.each do |name, cloud|
|
16
|
-
|
17
|
-
with_cloud(cloud, {:testing => @testing}) do
|
18
|
-
puts header("Starting cloud")
|
19
|
-
puts "#{list_of_running_instances.size} running instances (#{minimum_instances} - #{maximum_instances})"
|
20
|
-
if (minimum_instances - list_of_running_instances.size) > 0
|
11
|
+
o.loaded_clouds.each do |cloud|
|
12
|
+
with_cloud(cloud) do
|
13
|
+
vputs header("Starting cloud #{name}")
|
14
|
+
vputs "#{list_of_running_instances.size} running instances (#{minimum_instances} - #{maximum_instances})"
|
15
|
+
# if list_of_running_instances.size <= 1
|
21
16
|
puts "Starting the master instance"
|
22
|
-
if testing
|
23
|
-
|
24
|
-
else
|
25
|
-
|
26
|
-
launch_and_configure_master!
|
27
|
-
|
28
|
-
|
17
|
+
# if testing
|
18
|
+
# puts("\tNot launching while in testing mode")
|
19
|
+
# else
|
20
|
+
vputs "Launching and configuring the master"
|
21
|
+
daemon ? daemonize {launch_and_configure_master!} : launch_and_configure_master!
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
when_no_pending_instances do
|
25
|
+
puts open(::File.join(File.dirname(__FILE__), "..", "lib", "poolparty", "config", "postlaunchmessage.txt")).read ^ {:master_ip => master.ip.chomp}
|
26
|
+
clear_base_directory unless testing
|
29
27
|
end
|
30
|
-
clear_base_directory unless testing
|
31
28
|
end
|
32
29
|
|
33
30
|
end
|
data/bin/cloud-stats
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
|
+
require "poolparty"
|
4
|
+
require "poolpartycl"
|
5
|
+
|
6
|
+
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
7
|
+
opts.on('-n name', '--name name', 'Stats for cloud name') { |c| optioner.cloudname c }
|
8
|
+
end
|
9
|
+
|
10
|
+
o.loaded_clouds.each do |cloud|
|
11
|
+
|
12
|
+
with_cloud(cloud) do
|
13
|
+
puts header("#{name.to_s.capitalize} cloud stats")
|
14
|
+
run_command_on(". /etc/profile && server-show-stats", master)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/bin/cloud-terminate
CHANGED
@@ -2,17 +2,14 @@
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
|
+
|
5
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
6
|
-
opts.on('-
|
7
|
-
opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
|
7
|
+
opts.on('-n name', '--name name', 'Terminate the cloud of this name') { |c| optioner.cloudname c }
|
8
8
|
end
|
9
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
10
|
-
|
11
|
-
@clouds = o.cloudname ? {:cloud => cloud(o.cloudname.downcase.to_sym)} : clouds
|
12
9
|
|
13
|
-
|
10
|
+
o.loaded_clouds.each do |cloud|
|
14
11
|
|
15
|
-
with_cloud(cloud
|
12
|
+
with_cloud(cloud) do
|
16
13
|
|
17
14
|
list_of_running_instances.each do |inst|
|
18
15
|
puts "Shutting down #{inst.instance_id}"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
|
+
require "poolparty"
|
4
|
+
require "poolpartycl"
|
5
|
+
|
6
|
+
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
7
|
+
opts.on('-n name', '--name name', 'Stats for cloud name') { |c| optioner.cloudname c }
|
8
|
+
end
|
9
|
+
|
10
|
+
o.loaded_clouds.each do |cloud|
|
11
|
+
# @nodes = cloud.messenger_send!("get_current_nodes")
|
12
|
+
# @nodes = @nodes.split(" ").map {|a| a.split(/@/)[-1] }
|
13
|
+
puts cloud.get_current_nodes.join(" ")
|
14
|
+
end
|
data/bin/pool
CHANGED
@@ -3,19 +3,19 @@ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
5
|
|
6
|
-
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
6
|
+
name = ARGV.select {|arg| arg if Binary.available_binaries_for("pool").include?(arg) }.first
|
7
|
+
# If the options include -h and they don't include a valid command, then we can just pass the
|
8
|
+
# original options back, but if they do contain a binary, we don't want -h getting through to
|
9
|
+
# these options, so we'll strip it if it's included
|
10
|
+
DUP_ARG = ARGV.dup
|
11
|
+
new_args = DUP_ARG.map {|arg| DUP_ARG.delete(arg) unless help_array.include?(arg) || Binary.available_binaries_for("pool").include?(arg) }
|
12
|
+
new_args = new_args.reject {|arg| Binary.available_binaries_for("pool").include?(arg) }.empty? ? ARGV : (name ? (help_array.each {|arg| DUP_ARG.delete(arg)}; DUP_ARG) : DUP_ARG)
|
10
13
|
|
11
|
-
|
14
|
+
# Let's make sure if no command is passed in that we show the help message
|
15
|
+
new_args.push("-h") unless name
|
12
16
|
|
13
|
-
#
|
14
|
-
|
15
|
-
puts "Usage: pool <specfile> <action> <options>"
|
16
|
-
puts "Pool actions:"
|
17
|
-
puts Binary.list_binaries_for("pool")
|
18
|
-
exit
|
17
|
+
o = PoolParty::Optioner.new(new_args, {:extra_help => "\nPool actions\n#{Binary.list_binaries_for("pool")}\n\n", :abstract => true}) do |opts, optioner|
|
18
|
+
opts.on('-n poolname', '--name name', 'Address this pool') { |c| optioner.poolname c }
|
19
19
|
end
|
20
20
|
|
21
21
|
program_name = "#{File.basename($0)}-#{name}"
|
@@ -27,5 +27,5 @@ command_line = "#{program_location}"
|
|
27
27
|
if Binary.available_binaries_for("pool").include?(name)
|
28
28
|
system command_line, *ARGV
|
29
29
|
else
|
30
|
-
puts "Unknown poolparty binary: #{
|
30
|
+
puts "Unknown poolparty binary: #{name}"
|
31
31
|
end
|
data/bin/pool-describe
CHANGED
@@ -14,4 +14,5 @@ source = RubiGen::PathSource.new(:application,
|
|
14
14
|
File.join(File.dirname(__FILE__), "../generators"))
|
15
15
|
RubiGen::Base.reset_sources
|
16
16
|
RubiGen::Base.append_sources source
|
17
|
+
ARGV.reject! {|a| a == "generate" }
|
17
18
|
RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'poolspec')
|
data/bin/pool-init
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'rubigen'
|
5
|
+
|
6
|
+
# First, let's generate the spec
|
7
|
+
if %w(-V --version).include? ARGV.first
|
8
|
+
require 'poolspec/version'
|
9
|
+
puts "#{File.basename($0)} #{Poolspec::VERSION::STRING}"
|
10
|
+
exit(0)
|
11
|
+
end
|
12
|
+
|
13
|
+
name = ARGV.first
|
14
|
+
|
15
|
+
puts "Creating pool named #{name}"
|
16
|
+
`pool generate #{name}`
|
17
|
+
|
18
|
+
# Now add the keypairs for the pool based on the default pool name and cloud name
|
19
|
+
|
20
|
+
@pool = load_pool(self.spec || Binary.get_existing_spec_location)
|
21
|
+
@clouds = [@pool.cloud("#{name}_app")]
|
22
|
+
|
23
|
+
@clouds.each do |cloud|
|
24
|
+
with_cloud(cloud) do
|
25
|
+
vputs header("Creating keypair for #{name}")
|
26
|
+
create_keypair unless testing
|
27
|
+
end
|
28
|
+
end
|
data/bin/pool-list
CHANGED
@@ -2,27 +2,29 @@
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
|
+
|
5
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
6
7
|
opts.on('-f [remote|local]', '--from [remote|local]', 'Remote or local (default: local)') { |o| optioner.location o }
|
7
8
|
opts.on('-r', '--remote', 'Remote listing') { optioner.location "remote" }
|
8
9
|
opts.on('-l', '--local', 'Local listing') { optioner.location "local" }
|
9
10
|
opts.on('-n name', '--name name', 'Listing for pool name') { |p| optioner.poolname p }
|
10
11
|
end
|
11
|
-
load_pool(o.spec || Binary.get_existing_spec_location)
|
12
|
-
|
13
|
-
@location = o.location ? o.location : "remote"
|
14
|
-
|
15
|
-
include Remote
|
16
|
-
|
17
|
-
@pools = o.poolname ? [pool(o.poolname.downcase.to_sym)] : pools
|
18
12
|
|
19
|
-
|
20
|
-
with_pool(pool
|
13
|
+
o.loaded_pools.each do |pool|
|
14
|
+
with_pool(pool) do
|
21
15
|
puts header("Listing pool #{name}")
|
22
16
|
clouds.each do |name, cloud|
|
23
|
-
puts subheader("Cloud: #{name}")
|
24
|
-
|
25
|
-
|
17
|
+
puts subheader("Cloud: #{name} (#{cloud.keypair})")
|
18
|
+
with_cloud(cloud) do
|
19
|
+
puts header("Listing cloud #{name}")
|
20
|
+
puts subheader("Active instances")
|
21
|
+
puts list_of_running_instances.map{|a| a.to_s}.join("\n")
|
22
|
+
puts ""
|
23
|
+
if list_of_pending_instances.size > 0
|
24
|
+
puts subheader("Pending instances")
|
25
|
+
puts list_of_pending_instances.map{|a| a.to_s}.join("\n")
|
26
|
+
end
|
27
|
+
end
|
26
28
|
end
|
27
29
|
end
|
28
30
|
end
|
data/bin/pool-start
CHANGED
@@ -2,29 +2,23 @@
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
|
+
|
5
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
6
7
|
opts.on('-p poolname', '--pool name', 'Start pool by this name') { |p| optioner.poolname p }
|
7
8
|
end
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
@testing = o.testing
|
12
|
-
|
13
|
-
include Remote
|
14
|
-
|
15
|
-
@pools = o.poolname ? [pool(o.poolname.downcase.to_sym)] : pools
|
16
|
-
|
17
|
-
@pools.each do |name, pl|
|
10
|
+
o.loaded_pools.each do |pl|
|
18
11
|
|
19
|
-
with_pool(pl
|
12
|
+
with_pool(pl) do
|
13
|
+
puts subheader("Pool: #{pl.name}")
|
20
14
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
puts "
|
27
|
-
|
15
|
+
pool_clouds.each do |cl|
|
16
|
+
vputs subheader("Cloud: #{cl.name}")
|
17
|
+
|
18
|
+
cl.launch_and_configure_master!
|
19
|
+
when_no_pending_instances do
|
20
|
+
puts open(::File.join(File.dirname(__FILE__), "..", "lib", "poolparty", "config", "postlaunchmessage.txt")).read ^ {:master_ip => cl.master.ip.chomp}
|
21
|
+
clear_base_directory unless testing
|
28
22
|
end
|
29
23
|
end
|
30
24
|
end
|
data/bin/server-build-messenger
CHANGED
@@ -3,18 +3,25 @@ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
3
|
require "poolparty"
|
4
4
|
require "poolpartycl"
|
5
5
|
|
6
|
-
root_dir = ::File.expand_path( ::File.join(::File.dirname(__FILE__), "..", "lib/erlang/messenger") )
|
6
|
+
root_dir = ::File.expand_path( ::File.join(::File.dirname(__FILE__), "..", "lib/erlang/messenger/ebin") )
|
7
|
+
|
8
|
+
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
9
|
+
end
|
7
10
|
|
8
11
|
INCLUDE = "include"
|
9
|
-
ERLC_FLAGS = "-I#{INCLUDE}
|
12
|
+
ERLC_FLAGS = "-I#{INCLUDE}"
|
10
13
|
@version = "0.1"
|
11
14
|
|
15
|
+
# erl -pa ./ebin/ -run pm_packager recompile_scripts #{@version} -run init stop -noshell
|
16
|
+
# erlc -pa ./ebin -o ebin ./src/*.erl
|
17
|
+
# erl -pa ./ebin -s pm_packager start -s init stop
|
12
18
|
cmd =<<-EOE
|
13
19
|
cd #{root_dir}
|
14
|
-
|
15
|
-
|
16
|
-
erl -pa ./ebin/ -run pm_packager recompile_scripts #{@version} -run init stop -noshell
|
17
|
-
erl -pa ./ebin -s pm_packager start -s init stop
|
20
|
+
rake recompile
|
21
|
+
rake build_boot_scripts
|
18
22
|
EOE
|
19
23
|
|
24
|
+
vputs "** Building messenger **", o
|
25
|
+
vputs "Running command #{cmd.runnable}", o
|
26
|
+
|
20
27
|
out = %x[#{cmd.runnable}]
|