poolparty 0.2.18 → 0.2.69
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.
- 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
|
@@ -17,24 +17,57 @@ module PoolParty
|
|
|
17
17
|
resources[type] ||= []
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def add_resource(type, opts={}, parent=self, &block)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
def add_resource(type, opts={}, parent=self, &block)
|
|
21
|
+
if in_a_resource_store?(type, opts[:name])
|
|
22
|
+
@res = get_resource(type, opts[:name], parent)
|
|
23
|
+
# if should_duplicate_resource?(type, @res, parent, opts)
|
|
24
|
+
# unless @res.parent == parent
|
|
25
|
+
# @pa = parent
|
|
26
|
+
# @res.instance_eval {@parent = @pa}
|
|
27
|
+
# end
|
|
28
|
+
# parent.resource(type) << @res
|
|
29
|
+
# end
|
|
24
30
|
else
|
|
25
|
-
returning "PoolParty::Resources::#{type.to_s.camelize}".
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
@res = returning "PoolParty::Resources::#{type.to_s.camelize}".camelize.constantize.new(opts, parent, &block) do |o|
|
|
32
|
+
store_into_global_resource_store(o)
|
|
33
|
+
resource(type) << o
|
|
34
|
+
end
|
|
28
35
|
end
|
|
36
|
+
@res
|
|
29
37
|
end
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
def should_duplicate_resource?(type, res, pare, opts)
|
|
39
|
+
pare != @res.parent &&
|
|
40
|
+
pare.cloud != @res.cloud &&
|
|
41
|
+
in_global_resource_store?(type, opts[:name]) &&
|
|
42
|
+
!in_resources?(type, res, pare)
|
|
43
|
+
end
|
|
44
|
+
def get_resource(ty, key, parent=self)
|
|
45
|
+
get_from_local_resource_store(ty, key, parent) || get_from_global_resource_store(ty, key)
|
|
46
|
+
end
|
|
47
|
+
def get_from_local_resource_store(type, key, parent)
|
|
48
|
+
resource(type).select {|r| r.key == key }.first
|
|
49
|
+
end
|
|
50
|
+
def in_a_resource_store?(type, key, parent=self)
|
|
51
|
+
!(get_resource(type, key) && in_global_resource_store?(type, key)).nil?
|
|
52
|
+
end
|
|
53
|
+
def in_resources?(type, key, parent=self)
|
|
54
|
+
!get_resource(type, key).nil?
|
|
55
|
+
end
|
|
56
|
+
def global_resources_store
|
|
57
|
+
$global_resources ||= []
|
|
58
|
+
end
|
|
59
|
+
def store_into_global_resource_store(r)
|
|
60
|
+
global_resources_store << r unless in_global_resource_store?(r.class_name_sym, r.key)
|
|
61
|
+
end
|
|
62
|
+
def get_from_global_resource_store(ty, key)
|
|
63
|
+
global_resources_store.select {|r| r if r.same_resources_of(ty, key) }.first
|
|
64
|
+
end
|
|
65
|
+
def in_global_resource_store?(ty, key)
|
|
66
|
+
!get_from_global_resource_store(ty, key).nil?
|
|
33
67
|
end
|
|
34
|
-
|
|
35
68
|
#:nodoc:
|
|
36
69
|
def reset_resources!
|
|
37
|
-
@resources = nil
|
|
70
|
+
$global_resources = $global_classpackage_store = @resources = nil
|
|
38
71
|
end
|
|
39
72
|
|
|
40
73
|
# def resources_string(pre="")
|
|
@@ -46,7 +79,7 @@ module PoolParty
|
|
|
46
79
|
def custom_file(path, str)
|
|
47
80
|
write_to_file_in_storage_directory(path, str)
|
|
48
81
|
end
|
|
49
|
-
|
|
82
|
+
|
|
50
83
|
class Resource
|
|
51
84
|
attr_accessor :prestring, :poststring
|
|
52
85
|
|
|
@@ -58,7 +91,7 @@ module PoolParty
|
|
|
58
91
|
|
|
59
92
|
def self.inherited(subclass)
|
|
60
93
|
subclass = subclass.to_s.split("::")[-1] if subclass.to_s.index("::")
|
|
61
|
-
lowercase_class_name = subclass.to_s.
|
|
94
|
+
lowercase_class_name = subclass.to_s.underscore
|
|
62
95
|
|
|
63
96
|
# Add add resource method to the Resources module
|
|
64
97
|
unless PoolParty::Resources.respond_to?(lowercase_class_name.to_sym)
|
|
@@ -66,6 +99,9 @@ module PoolParty
|
|
|
66
99
|
def #{lowercase_class_name}(opts={}, parent=self, &blk)
|
|
67
100
|
add_resource(:#{lowercase_class_name}, opts, parent, &blk)
|
|
68
101
|
end
|
|
102
|
+
def get_#{lowercase_class_name}(name)
|
|
103
|
+
get_resource(:#{lowercase_class_name}, name) if in_a_resource_store?(:#{lowercase_class_name}, name)
|
|
104
|
+
end
|
|
69
105
|
EOE
|
|
70
106
|
PoolParty::Resources.module_eval method
|
|
71
107
|
PoolParty::Resources.add_has_and_does_not_have_methods_for(lowercase_class_name.to_sym)
|
|
@@ -88,59 +124,79 @@ module PoolParty
|
|
|
88
124
|
# Then it takes the value of the block and sets whatever is sent there as
|
|
89
125
|
# the options
|
|
90
126
|
# Finally, it uses the parent's options as the lowest priority
|
|
91
|
-
def initialize(opts={}, parent=self, &block)
|
|
127
|
+
def initialize(opts={}, parent=self, &block)
|
|
128
|
+
run_setup(parent, &block)
|
|
92
129
|
# Take the options of the parents
|
|
93
|
-
set_resource_parent(parent)
|
|
94
130
|
set_vars_from_options(opts) unless opts.empty?
|
|
95
|
-
|
|
131
|
+
|
|
132
|
+
set_resource_parent
|
|
133
|
+
|
|
96
134
|
loaded(opts, @parent)
|
|
97
135
|
end
|
|
98
136
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
137
|
+
# Helper to set the containing parent on the resource
|
|
138
|
+
def set_resource_parent
|
|
139
|
+
if @parent && @parent != self
|
|
140
|
+
if can_set_requires_for_parent
|
|
141
|
+
# requires @parent.to_s
|
|
142
|
+
end
|
|
103
143
|
end
|
|
104
144
|
end
|
|
105
145
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
# end
|
|
114
|
-
# end.flatten.uniq
|
|
115
|
-
# end
|
|
116
|
-
|
|
146
|
+
def can_set_requires_for_parent
|
|
147
|
+
@parent.is_a?(PoolParty::Resources::Resource) &&
|
|
148
|
+
@parent.printable? &&
|
|
149
|
+
@parent.name != name &&
|
|
150
|
+
!@parent.is_a?(PoolParty::Resources::Classpackage)
|
|
151
|
+
end
|
|
152
|
+
|
|
117
153
|
# Stub, so you can create virtual resources
|
|
118
154
|
# This is called after the resource is initialized
|
|
119
155
|
# with the options given to it in the init-block
|
|
120
156
|
def loaded(opts={}, parent=self)
|
|
121
157
|
end
|
|
122
158
|
|
|
159
|
+
def cloud
|
|
160
|
+
@pa = parent
|
|
161
|
+
while !(@pa.is_a?(PoolParty::Cloud::Cloud) || @pa.nil? || @pa == self)
|
|
162
|
+
@pa = @pa.respond_to?(:parent) ? @pa.parent : nil
|
|
163
|
+
end
|
|
164
|
+
@pa
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def parent_tree
|
|
168
|
+
@pa = self
|
|
169
|
+
returning Array.new do |arr|
|
|
170
|
+
while !(@pa.is_a?(PoolParty::Cloud::Cloud) || @pa.nil? || @pa == self)
|
|
171
|
+
@pa = @pa.respond_to?(:parent) ? @pa.parent : nil
|
|
172
|
+
arr << @pa
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
123
177
|
# DSL Overriders
|
|
124
178
|
include PoolParty::ResourcingDsl
|
|
125
179
|
|
|
180
|
+
def same_resources_of(t, k)
|
|
181
|
+
key == k && class_name_sym == t
|
|
182
|
+
end
|
|
183
|
+
def duplicatable?
|
|
184
|
+
false
|
|
185
|
+
end
|
|
126
186
|
# This way we can subclass resources without worry
|
|
127
187
|
def class_type_name
|
|
128
|
-
self.class.to_s.top_level_class
|
|
129
|
-
end
|
|
130
|
-
def self.custom_function(str)
|
|
131
|
-
custom_functions << str
|
|
188
|
+
self.class.to_s.top_level_class.underscore
|
|
132
189
|
end
|
|
133
|
-
|
|
134
190
|
def self.custom_function(str)
|
|
135
191
|
custom_functions << str
|
|
136
|
-
end
|
|
192
|
+
end
|
|
137
193
|
def self.custom_functions
|
|
138
194
|
@custom_functions ||= []
|
|
139
195
|
end
|
|
140
196
|
def custom_function(str)
|
|
141
197
|
self.class.custom_functions << str
|
|
142
198
|
end
|
|
143
|
-
|
|
199
|
+
|
|
144
200
|
def self.custom_functions_to_string(pre="")
|
|
145
201
|
returning Array.new do |output|
|
|
146
202
|
PoolParty::Resources.available_custom_resources.each do |resource|
|
|
@@ -154,6 +210,14 @@ module PoolParty
|
|
|
154
210
|
def disallowed_options
|
|
155
211
|
[]
|
|
156
212
|
end
|
|
213
|
+
def allowed_options
|
|
214
|
+
[
|
|
215
|
+
:subscribe, :owner, :group, :path, :mode, :source, :notify, :subscribe, :check, :creates, :cwd, :command, :ensure,
|
|
216
|
+
:require, :schedule, :range, :alias, :hour, :minute, :user, :month, :monthday, :name, :onlyif, :unless, :refreshonly,
|
|
217
|
+
:refresh, :content, :template, :ip, :repeat, :provider, :key, :device, :fstype, :remounts, :options, :atboot, :before,
|
|
218
|
+
:binary, :status, :start, :stop, :restart, :pattern, :recurse
|
|
219
|
+
]
|
|
220
|
+
end
|
|
157
221
|
def key
|
|
158
222
|
name
|
|
159
223
|
end
|
|
@@ -163,6 +227,10 @@ module PoolParty
|
|
|
163
227
|
def printable?
|
|
164
228
|
true
|
|
165
229
|
end
|
|
230
|
+
# Private method just for resource retrievling purposes
|
|
231
|
+
def class_name_sym
|
|
232
|
+
self.class.to_s.top_level_class.downcase.to_sym
|
|
233
|
+
end
|
|
166
234
|
# We want to gather the options, but if the option sent is nil
|
|
167
235
|
# then we want to override the option value by sending the key as
|
|
168
236
|
# a method so that we can override this if necessary.
|
|
@@ -177,7 +245,8 @@ module PoolParty
|
|
|
177
245
|
else
|
|
178
246
|
opts = {}
|
|
179
247
|
end
|
|
180
|
-
@
|
|
248
|
+
@full_allowed_options ||= allowed_options.reject {|ele| disallowed_options.include?(ele) }
|
|
249
|
+
@modified_options = opts.reject {|k,v| !@full_allowed_options.include?(k) }
|
|
181
250
|
end
|
|
182
251
|
@modified_options
|
|
183
252
|
end
|
|
@@ -1,64 +1,105 @@
|
|
|
1
1
|
module PoolParty
|
|
2
2
|
module Resources
|
|
3
3
|
|
|
4
|
+
def global_classpackages
|
|
5
|
+
@global_classpackage_store ||= []
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def in_global_classpackages?(name)
|
|
9
|
+
!get_from_global_classpackage_store(name).nil?
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def get_from_global_classpackage_store(key)
|
|
13
|
+
global_classpackages.select {|a| a if key == a.name }.first
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def store_into_global_classpackage_store(r)
|
|
17
|
+
arr = r.is_a?(Array) ? r : [r]
|
|
18
|
+
arr.each do |a|
|
|
19
|
+
global_classpackages << a unless in_global_classpackages?(a.name)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
4
23
|
# Wrap all the resources into a class package from
|
|
5
24
|
def classpackage_with_self(parent=self, &block)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
25
|
+
name = (parent.options.name || Classpackage.name(parent).to_s).sanitize
|
|
26
|
+
if in_global_classpackages?(name)
|
|
27
|
+
returning get_from_global_classpackage_store(name) do |cls|
|
|
28
|
+
cls.run_in_context(parent, &block) if block
|
|
29
|
+
end
|
|
30
|
+
else
|
|
31
|
+
@@parent_resources = parent.resources
|
|
32
|
+
@@cp = parent.add_resource(:classpackage, parent.options.merge(:name => name), parent, &block)
|
|
33
|
+
@@cp = @@cp.is_a?(Array) ? @@cp[-1] : @@cp
|
|
34
|
+
|
|
35
|
+
@@cp.run_in_context(parent) do
|
|
36
|
+
@@parent_resources.each do |ty, res|
|
|
37
|
+
resources[ty] = res unless ty == :classpackage
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
parent.instance_eval do
|
|
41
|
+
@resources = {:classpackage => [@@cp]}
|
|
42
|
+
end
|
|
43
|
+
@@cp.instance_eval &block if block
|
|
44
|
+
|
|
45
|
+
store_into_global_classpackage_store(@@cp)
|
|
46
|
+
end
|
|
47
|
+
return @@cp
|
|
48
|
+
@@parent_resources = nil
|
|
10
49
|
end
|
|
11
50
|
|
|
12
51
|
class Classpackage < Resource
|
|
13
52
|
|
|
14
53
|
default_options({
|
|
15
|
-
:name =>
|
|
54
|
+
:name => "custom"
|
|
16
55
|
})
|
|
17
56
|
|
|
18
57
|
def initialize(opts={}, parent=self, &block)
|
|
19
58
|
# Take the options of the parents
|
|
20
|
-
set_parent(parent, false) if parent
|
|
59
|
+
# set_parent(parent, false) if parent
|
|
21
60
|
set_vars_from_options(opts) unless opts.empty?
|
|
22
|
-
self.instance_eval &block if block
|
|
23
|
-
|
|
61
|
+
# self.instance_eval &block if block
|
|
62
|
+
run_setup(parent, &block) if block
|
|
63
|
+
# self.run_in_context &block if block
|
|
64
|
+
# store_block(&block)
|
|
24
65
|
loaded
|
|
25
66
|
end
|
|
26
67
|
|
|
27
|
-
def to_string
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
68
|
+
def to_string(pre="")
|
|
69
|
+
if resources.size > 0 && not_printed?
|
|
70
|
+
returning Array.new do |output|
|
|
71
|
+
output << "#{pre}class #{name.sanitize.downcase} {"
|
|
72
|
+
output << "#{pre}#{resources_string_from_resources(resources)}"
|
|
73
|
+
output << "#{pre}}"
|
|
74
|
+
output << include_string
|
|
75
|
+
@not_printed = false
|
|
76
|
+
end.join("\n")
|
|
77
|
+
else
|
|
78
|
+
""
|
|
33
79
|
end
|
|
34
80
|
end
|
|
35
81
|
|
|
82
|
+
def not_printed?
|
|
83
|
+
true
|
|
84
|
+
end
|
|
85
|
+
|
|
36
86
|
def include_string
|
|
37
87
|
"include #{name.sanitize.downcase}"
|
|
38
88
|
end
|
|
39
89
|
|
|
40
|
-
def
|
|
41
|
-
|
|
90
|
+
def virtual_resource?
|
|
91
|
+
true
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def printable?
|
|
95
|
+
false
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def self.name(parent=nil)
|
|
99
|
+
"custom_#{parent ? parent.object_id.to_s : "parent"}"
|
|
42
100
|
end
|
|
43
101
|
|
|
44
102
|
end
|
|
45
103
|
|
|
46
|
-
def resources_string_from_resources(resources, pre="\t")
|
|
47
|
-
@variables = resources.extract! {|name,resource| name == :variable}
|
|
48
|
-
returning Array.new do |str|
|
|
49
|
-
unless @variables.empty?
|
|
50
|
-
str << "\n# Variables \n"
|
|
51
|
-
@variables.each do |name, variable|
|
|
52
|
-
str << variable.to_string("#{pre}")
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
resources.each do |type, resource|
|
|
57
|
-
str << "\n#{pre*2}# #{type}\n"
|
|
58
|
-
str << resource.to_string("#{pre*2}")
|
|
59
|
-
end
|
|
60
|
-
end.join("\n")
|
|
61
|
-
end
|
|
62
|
-
|
|
63
104
|
end
|
|
64
105
|
end
|
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
module PoolParty
|
|
2
2
|
module Resources
|
|
3
3
|
|
|
4
|
-
def
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
def execute_on_master(parent=self, &block)
|
|
5
|
+
execute_if("$hostname", "master", {}, parent, &block)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def execute_on_node(parent=self, &block)
|
|
9
|
+
execute_if("$hostname", "master", {:notequal => true}, parent, &block)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def execute_if(attr_s="$hostname", str="", cust_opts={}, parent=self, &block)
|
|
13
|
+
# parent = parent.is_a?(PoolParty::Cloud::Cloud) ? parent : parent.parent
|
|
14
|
+
opts = {:attribute => attr_s, :equal => str}.merge(cust_opts)
|
|
15
|
+
options = (parent.respond_to?(:options) && parent && parent != self) ? parent.options.merge!(opts) : opts
|
|
16
|
+
# @c = PoolParty::Resources::Conditional.new(options, parent, &block)
|
|
17
|
+
# conditional(options, parent, &block)
|
|
18
|
+
add_resource(:conditional, options, parent, &block)
|
|
11
19
|
end
|
|
12
20
|
|
|
13
21
|
class Conditional < Resource
|
|
14
22
|
|
|
15
23
|
def initialize(opts={}, parent=self, &block)
|
|
16
|
-
name "#{opts[:attribute]}
|
|
24
|
+
name "#{opts[:name] ? opts[:name] : opts[:attribute]} #{opts[:equal]}"
|
|
17
25
|
attribute opts[:attribute]
|
|
18
26
|
equal opts[:equal]
|
|
27
|
+
notequal opts.has_key?(:notequal) ? opts[:notequal] : false
|
|
19
28
|
super
|
|
20
29
|
end
|
|
21
30
|
|
|
@@ -25,16 +34,29 @@ module PoolParty
|
|
|
25
34
|
true
|
|
26
35
|
end
|
|
27
36
|
|
|
37
|
+
def disallowed_options
|
|
38
|
+
[:comparison, :notequal]
|
|
39
|
+
end
|
|
40
|
+
|
|
28
41
|
def printable?
|
|
29
42
|
false
|
|
30
43
|
end
|
|
31
44
|
|
|
45
|
+
def duplicatable?
|
|
46
|
+
false
|
|
47
|
+
end
|
|
48
|
+
|
|
32
49
|
def to_string(pre="")
|
|
33
50
|
returning Array.new do |output|
|
|
34
51
|
output << "# #{name.sanitize}"
|
|
35
52
|
output << "case #{attribute} {"
|
|
36
|
-
|
|
37
|
-
|
|
53
|
+
if notequal
|
|
54
|
+
output << "#{equal} : {}"
|
|
55
|
+
output << "default : { #{resources_string_from_resources(resources)} }"
|
|
56
|
+
else
|
|
57
|
+
output << "#{equal} : { #{resources_string_from_resources(resources)} }"
|
|
58
|
+
output << "default : {}"
|
|
59
|
+
end
|
|
38
60
|
output << "}"
|
|
39
61
|
end.join("\n")
|
|
40
62
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module PoolParty
|
|
2
|
+
module Resources
|
|
3
|
+
|
|
4
|
+
class Customservice < Resource
|
|
5
|
+
|
|
6
|
+
default_options({
|
|
7
|
+
:ensure => "running",
|
|
8
|
+
:provider => "base"
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
def bin(arg)
|
|
12
|
+
options.merge!(:binary => arg)
|
|
13
|
+
options.merge!(:start => arg)
|
|
14
|
+
options.merge!(:stop => arg.gsub(/start/, 'stop'))
|
|
15
|
+
options.merge!(:restart => "#{arg.gsub(/start/, 'stop')} && #{arg}")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def present
|
|
19
|
+
"running"
|
|
20
|
+
end
|
|
21
|
+
def absent
|
|
22
|
+
"stopping"
|
|
23
|
+
end
|
|
24
|
+
def class_type_name
|
|
25
|
+
"Service"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -9,11 +9,12 @@ module PoolParty
|
|
|
9
9
|
|
|
10
10
|
# Execs cannot have the following parameters
|
|
11
11
|
# We use version in the gempackage resource
|
|
12
|
-
# So we have to exclude it here.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
# So we have to exclude it here.
|
|
13
|
+
def allowed_options
|
|
14
|
+
[
|
|
15
|
+
:command, :creates, :cwd, :env, :environment, :group, :logoutput, :user,
|
|
16
|
+
:onlyif, :path, :refresh, :refreshonly, :returns, :timeout, :unless
|
|
17
|
+
]
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
def key
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module PoolParty
|
|
2
|
+
module Resources
|
|
3
|
+
|
|
4
|
+
class Gempackage < Resource
|
|
5
|
+
|
|
6
|
+
# When we call gempackage, we want the exec to run on the directory we suggest
|
|
7
|
+
# we also only want it to run if there is NOT a local gem already installed with
|
|
8
|
+
# the package details (version and name)
|
|
9
|
+
#
|
|
10
|
+
# TODO: Add it so that it tries to pull the gem off the master fileserver first...
|
|
11
|
+
def loaded(opts={}, parent=self)
|
|
12
|
+
if download_url
|
|
13
|
+
|
|
14
|
+
execute_on_master do
|
|
15
|
+
has_exec(:name => "download-#{name}", :cwd => Base.remote_storage_path, :command => "wget #{download_url} -O #{name}.gem", :ifnot => "test -f #{Base.remote_storage_path}/#{name}.gem")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
has_file({
|
|
19
|
+
:name => "#{Base.remote_storage_path}/#{name}.gem",
|
|
20
|
+
:source => "#{Base.fileserver_base}/#{name}.gem",
|
|
21
|
+
:requires => get_host("master")
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
has_exec(opts.merge({:name => "#{name}", :cwd =>"#{Base.remote_storage_path}"})) do
|
|
25
|
+
command "gem install -y --no-ri --no-rdoc #{Base.remote_storage_path}/#{name}.gem"
|
|
26
|
+
ifnot "gem list --local #{name} | grep #{name} #{"| grep #{version}" if version}"
|
|
27
|
+
requires get_file("#{Base.remote_storage_path}/#{name}.gem")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
else
|
|
31
|
+
has_exec(opts.merge({:name => "#{name}", :cwd => "/tmp", :path => "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin"})) do
|
|
32
|
+
command "gem install -y --no-ri --no-rdoc #{"--version #{version}" if version} #{"--source #{source}" if source} #{name} <<heredoc
|
|
33
|
+
1
|
|
34
|
+
heredoc"
|
|
35
|
+
ifnot "gem list --local #{name} | grep #{name} #{"| grep #{version}" if version}"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
def virtual_resource?
|
|
40
|
+
true
|
|
41
|
+
end
|
|
42
|
+
def printable?
|
|
43
|
+
true
|
|
44
|
+
end
|
|
45
|
+
def class_type_name
|
|
46
|
+
"Exec"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module PoolParty
|
|
2
|
+
module Resources
|
|
3
|
+
|
|
4
|
+
class Mount < Resource
|
|
5
|
+
|
|
6
|
+
default_options({
|
|
7
|
+
:name => "/data",
|
|
8
|
+
:remounts => "true",
|
|
9
|
+
:options => "rw,nosuid,noquota",
|
|
10
|
+
:fstype => "xfs",
|
|
11
|
+
:atboot => "yes"
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
def disallowed_options
|
|
15
|
+
[:name]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -4,9 +4,19 @@ module PoolParty
|
|
|
4
4
|
class Package < Resource
|
|
5
5
|
|
|
6
6
|
default_options({
|
|
7
|
-
:ensure => "installed"
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
:ensure => "installed"
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
def disallowed_options
|
|
11
|
+
[:name]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def present
|
|
15
|
+
"installed"
|
|
16
|
+
end
|
|
17
|
+
def absent
|
|
18
|
+
"absent"
|
|
19
|
+
end
|
|
10
20
|
|
|
11
21
|
end
|
|
12
22
|
|
|
@@ -22,14 +22,16 @@ module PoolParty
|
|
|
22
22
|
|
|
23
23
|
def self.for_save_string
|
|
24
24
|
returning Array.new do |out|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
pools.collect {|n,pl| pl}.each do |pl|
|
|
26
|
+
out << "pool :#{pl.name} do"
|
|
27
|
+
clouds.each do |n,cl|
|
|
27
28
|
out << <<-EOE
|
|
28
|
-
cloud :#{name} do
|
|
29
|
-
#{cl.minimum_runnable_options.map {|o| "
|
|
30
|
-
end
|
|
29
|
+
cloud :#{cl.name} do
|
|
30
|
+
#{cl.minimum_runnable_options.map {|o| "#{o} #{cl.send(o).respec_string}"}.join("\n")}
|
|
31
|
+
end
|
|
31
32
|
EOE
|
|
32
|
-
end
|
|
33
|
+
end
|
|
34
|
+
out << "end"
|
|
33
35
|
end
|
|
34
36
|
end.join("\n")
|
|
35
37
|
end
|
|
@@ -28,7 +28,7 @@ defaults
|
|
|
28
28
|
stats uri /poolparty
|
|
29
29
|
stats realm Statistics\ for\ PoolParty
|
|
30
30
|
|
|
31
|
-
listen
|
|
31
|
+
listen poolparty
|
|
32
32
|
bind 0.0.0.0:<%= ports_haproxy.join(",0.0.0.0:") %>
|
|
33
33
|
cookie POOLPARTYPARTY
|
|
34
34
|
<%- node_ips_haproxy.chomp.split(/\t/).each_with_index do |ip, index| -%>
|