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
@@ -1,4 +1,7 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
include PoolParty::Resources
|
4
|
+
|
2
5
|
require File.dirname(__FILE__) + '/test_plugins/webserver'
|
3
6
|
|
4
7
|
class MyResource < PoolParty::Resources::Resource
|
@@ -9,282 +12,384 @@ class MyResource < PoolParty::Resources::Resource
|
|
9
12
|
end
|
10
13
|
describe "Resource" do
|
11
14
|
before(:each) do
|
12
|
-
|
13
|
-
b "90"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
it "should set a from the hash" do
|
17
|
-
@resource.a.should == 10
|
18
|
-
end
|
19
|
-
it "should set b from within the block" do
|
20
|
-
@resource.b.should == "90"
|
21
|
-
end
|
22
|
-
it "should not wipe out the rest of the default options" do
|
23
|
-
@resource.c.should == 3
|
24
|
-
end
|
25
|
-
describe "to_s" do
|
26
|
-
it "should be able to coalesce the instances" do
|
27
|
-
@resource.to_string.should =~ /resource \{\n/
|
28
|
-
end
|
29
|
-
describe "with resources" do
|
30
|
-
before(:each) do
|
31
|
-
self.stub!(:options).and_return(:name => "cook")
|
32
|
-
|
33
|
-
@obj = PoolParty::Resources::Resource.new
|
34
|
-
@obj.stub!(:name).and_return "cook"
|
35
|
-
|
36
|
-
@resource2 = MyResource.new do
|
37
|
-
file(:name => "shulie")
|
38
|
-
end
|
39
|
-
end
|
40
|
-
it "should call classpackage_with_self when it has resources" do
|
41
|
-
@resource2.should_receive(:classpackage_with_self).and_return @obj
|
42
|
-
@resource2.to_string
|
43
|
-
end
|
44
|
-
it "should call to_string on the class package" do
|
45
|
-
@obj.should_receive(:to_string).and_return "wee"
|
46
|
-
@resource2.should_receive(:classpackage_with_self).and_return @obj
|
47
|
-
@resource2.to_string
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
describe "class methods" do
|
52
|
-
it "should have an array of available resources" do
|
53
|
-
PoolParty::Resources::Resource.available_resources.class.should == Array
|
54
|
-
end
|
55
|
-
it "should not be empty" do
|
56
|
-
PoolParty::Resources::Resource.available_resources.should_not be_empty
|
57
|
-
end
|
15
|
+
setup
|
58
16
|
end
|
59
|
-
describe "
|
17
|
+
describe "wrapped" do
|
60
18
|
before(:each) do
|
61
|
-
@resource = MyResource.new
|
62
|
-
|
63
|
-
%w(requires ensures is_present is_absent ifnot).each do |method|
|
64
|
-
eval <<-EOE
|
65
|
-
it "should have the method #{method} available" do; @resource.respond_to?(:#{method}).should == true; end
|
66
|
-
EOE
|
67
|
-
end
|
68
|
-
it "should be able to take requires method" do
|
69
|
-
@resource.respond_to?(:requires).should == true
|
70
|
-
end
|
71
|
-
it "should push require onto the options" do
|
72
|
-
@resource.options.has_key?(:require).should == false
|
73
|
-
@resource.requires("nibbles")
|
74
|
-
@resource.options.has_key?(:require).should == true
|
75
|
-
end
|
76
|
-
it "should be able to call ensures method on the resource" do
|
77
|
-
@resource.respond_to?(:ensures).should == true
|
78
|
-
end
|
79
|
-
it "should push the option ensure onto the options" do
|
80
|
-
@resource.options.has_key?(:ensure).should == false
|
81
|
-
@resource.ensures("nibbles")
|
82
|
-
@resource.options.has_key?(:ensure).should == true
|
83
|
-
end
|
84
|
-
it "should write the option ensures as present with is_present" do
|
85
|
-
@resource.options.has_key?(:ensure).should == false
|
86
|
-
@resource.is_present
|
87
|
-
@resource.options[:ensure].should == "present"
|
88
|
-
end
|
89
|
-
it "should write the option ensures as absent with is_absent" do
|
90
|
-
@resource.options.has_key?(:ensure).should == false
|
91
|
-
@resource.is_absent
|
92
|
-
@resource.options[:ensure].should == "absent"
|
93
|
-
end
|
94
|
-
it "should write the option unless for ifnot" do
|
95
|
-
@resource.options.has_key?(:unless).should == false
|
96
|
-
@resource.ifnot "str"
|
97
|
-
@resource.options[:unless].should == "str"
|
98
|
-
end
|
99
|
-
describe "templating" do
|
100
|
-
before(:each) do
|
101
|
-
FileUtils.stub!(:cp).and_return true
|
102
|
-
end
|
103
|
-
it "should have the method template" do
|
104
|
-
@resource.respond_to?(:template).should == true
|
105
|
-
end
|
106
|
-
it "should raise an exception if no file is given" do
|
107
|
-
lambda {
|
108
|
-
@resource.template
|
109
|
-
}.should raise_error
|
110
|
-
end
|
111
|
-
it "should raise an excepton if the file cannot be found" do
|
112
|
-
lambda {
|
113
|
-
@resource.template("radar")
|
114
|
-
}.should raise_error
|
19
|
+
@resource = MyResource.new({:a => 10}) do
|
20
|
+
b "90"
|
115
21
|
end
|
116
|
-
it "should not raise an exception if there is a file passed and the file is found" do
|
117
|
-
File.should_receive(:file?).with("radar").and_return true
|
118
|
-
lambda {
|
119
|
-
@resource.template("radar")
|
120
|
-
}.should_not raise_error
|
121
|
-
end
|
122
|
-
# it "should push the template option on to the options" do
|
123
|
-
# File.stub!(:file?).with("radar").and_return true
|
124
|
-
# @resource.options.has_key?(:template).should == false
|
125
|
-
# @resource.template("radar")
|
126
|
-
# @resource.options.has_key?(:template).should == true
|
127
|
-
# end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
describe "command" do
|
131
|
-
include PoolParty::Resources
|
132
|
-
before(:each) do
|
133
|
-
reset_resources!
|
134
|
-
@cloud = cloud :command_cloud do; end
|
135
22
|
end
|
136
|
-
it "should
|
137
|
-
@
|
138
|
-
@cloud.instance_eval do
|
139
|
-
file(:name => "frank")
|
140
|
-
end
|
23
|
+
it "should set a from the hash" do
|
24
|
+
@resource.a.should == 10
|
141
25
|
end
|
142
|
-
it "should
|
143
|
-
resource
|
26
|
+
it "should set b from within the block" do
|
27
|
+
@resource.b.should == "90"
|
144
28
|
end
|
145
|
-
it "should
|
146
|
-
resource
|
147
|
-
file({:name => "pop"})
|
29
|
+
it "should not wipe out the rest of the default options" do
|
30
|
+
@resource.c.should == 3
|
148
31
|
end
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
resource(:file).size.should == 3
|
32
|
+
describe "to_s" do
|
33
|
+
it "should be able to coalesce the instances" do
|
34
|
+
@resource.to_string.should =~ /resource \{/
|
35
|
+
end
|
154
36
|
end
|
155
|
-
describe "
|
156
|
-
|
157
|
-
|
158
|
-
@b = file({:name => "hot"})
|
159
|
-
@c = file({:name => "summer"})
|
37
|
+
describe "class methods" do
|
38
|
+
it "should have an array of available resources" do
|
39
|
+
PoolParty::Resources::Resource.available_resources.class.should == Array
|
160
40
|
end
|
161
|
-
it "should
|
162
|
-
|
41
|
+
it "should not be empty" do
|
42
|
+
PoolParty::Resources::Resource.available_resources.should_not be_empty
|
163
43
|
end
|
164
44
|
end
|
165
|
-
describe "
|
45
|
+
describe "instance methods" do
|
166
46
|
before(:each) do
|
167
|
-
|
168
|
-
file({:name => "hot"})
|
169
|
-
file({:name => "summer"})
|
47
|
+
@resource = MyResource.new
|
170
48
|
end
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
49
|
+
%w(requires ensures is_present is_absent ifnot).each do |method|
|
50
|
+
eval <<-EOE
|
51
|
+
it "should have the method #{method} available" do; @resource.respond_to?(:#{method}).should == true; end
|
52
|
+
EOE
|
175
53
|
end
|
176
|
-
it "should
|
177
|
-
|
178
|
-
crabs_file
|
179
|
-
}.should raise_error
|
54
|
+
it "should be able to take requires method" do
|
55
|
+
@resource.respond_to?(:requires).should == true
|
180
56
|
end
|
181
|
-
it "should
|
182
|
-
|
183
|
-
|
184
|
-
|
57
|
+
it "should push require onto the options" do
|
58
|
+
@resource.options.has_key?(:require).should == false
|
59
|
+
@resource.requires("nibbles")
|
60
|
+
@resource.options.has_key?(:require).should == true
|
185
61
|
end
|
186
|
-
it "should
|
187
|
-
|
188
|
-
resource(:file).get_named("redface").first.options[:ensure].should == "present"
|
62
|
+
it "should be able to call ensures method on the resource" do
|
63
|
+
@resource.respond_to?(:ensures).should == true
|
189
64
|
end
|
190
|
-
it "should
|
191
|
-
|
192
|
-
resource
|
65
|
+
it "should push the option ensure onto the options" do
|
66
|
+
@resource.options.has_key?(:ensure).should == false
|
67
|
+
@resource.ensures("nibbles")
|
68
|
+
@resource.options.has_key?(:ensure).should == true
|
193
69
|
end
|
194
|
-
it "should
|
195
|
-
|
196
|
-
resource
|
197
|
-
|
198
|
-
end
|
199
|
-
describe "get_resource" do
|
200
|
-
before(:each) do
|
201
|
-
@red = file(:name => "red")
|
202
|
-
@hot = file(:name => "hot")
|
203
|
-
@tamales = file(:name => "tamales")
|
70
|
+
it "should write the option ensures as present with is_present" do
|
71
|
+
@resource.options.has_key?(:ensure).should == false
|
72
|
+
@resource.is_present
|
73
|
+
@resource.options[:ensure].should == "present"
|
204
74
|
end
|
205
|
-
it "should
|
206
|
-
|
75
|
+
it "should write the option ensures as absent with is_absent" do
|
76
|
+
@resource.options.has_key?(:ensure).should == false
|
77
|
+
@resource.is_absent
|
78
|
+
@resource.options[:ensure].should == "absent"
|
207
79
|
end
|
208
|
-
it "should
|
209
|
-
|
80
|
+
it "should write the option unless for ifnot" do
|
81
|
+
@resource.options.has_key?(:unless).should == false
|
82
|
+
@resource.ifnot "str"
|
83
|
+
@resource.options[:unless].should == "str"
|
210
84
|
end
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
end
|
215
|
-
describe "parent" do
|
216
|
-
before(:each) do
|
217
|
-
@cloud = cloud :app do
|
218
|
-
tangerine "orange"
|
219
|
-
file(:name => "file.txt")
|
85
|
+
describe "templating" do
|
86
|
+
before(:each) do
|
87
|
+
FileUtils.stub!(:cp).and_return true
|
220
88
|
end
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
89
|
+
it "should have the method template" do
|
90
|
+
@resource.respond_to?(:template).should == true
|
91
|
+
end
|
92
|
+
it "should raise an exception if no file is given" do
|
93
|
+
lambda {
|
94
|
+
@resource.template
|
95
|
+
}.should raise_error
|
96
|
+
end
|
97
|
+
it "should raise an excepton if the file cannot be found" do
|
98
|
+
lambda {
|
99
|
+
@resource.template("radar")
|
100
|
+
}.should raise_error
|
101
|
+
end
|
102
|
+
it "should not raise an exception if there is a file passed and the file is found" do
|
103
|
+
File.should_receive(:file?).with("radar").and_return true
|
104
|
+
lambda {
|
105
|
+
@resource.template("radar")
|
106
|
+
}.should_not raise_error
|
107
|
+
end
|
108
|
+
# it "should push the template option on to the options" do
|
109
|
+
# File.stub!(:file?).with("radar").and_return true
|
110
|
+
# @resource.options.has_key?(:template).should == false
|
111
|
+
# @resource.template("radar")
|
112
|
+
# @resource.options.has_key?(:template).should == true
|
113
|
+
# end
|
228
114
|
end
|
229
115
|
end
|
230
|
-
describe "
|
116
|
+
describe "command" do
|
117
|
+
include PoolParty::Resources
|
231
118
|
before(:each) do
|
232
|
-
@
|
233
|
-
directory(:name => "/var/www") do
|
234
|
-
file(:name => "/var/www/file.html")
|
235
|
-
end
|
236
|
-
end
|
237
|
-
@dir = @cloud1.get_resource(:directory, "/var/www")
|
238
|
-
@file = @dir.get_resource(:file, "/var/www/file.html")
|
239
|
-
end
|
240
|
-
it "should say there is 1 resource because the lower-level resources should be contained on the parenting resource" do
|
241
|
-
@cloud1.resources.size.should == 1
|
119
|
+
@cloud = cloud :command_cloud do; end
|
242
120
|
end
|
243
|
-
|
244
|
-
|
121
|
+
describe "add_resource" do
|
122
|
+
it "should call add_resource when creating using the command: file" do
|
123
|
+
@cloud.should_receive(:add_resource).with(:file, {:name => "frank"}, @cloud)
|
124
|
+
@cloud.instance_eval do
|
125
|
+
file(:name => "frank")
|
126
|
+
end
|
127
|
+
end
|
128
|
+
it "should return a resource when the resource does not exist" do
|
129
|
+
file(:name => "/etc/frank.txt").class.should == PoolParty::Resources::File
|
130
|
+
end
|
131
|
+
it "should return a resource when the resource does exist" do
|
132
|
+
file(:name => "frank")
|
133
|
+
file(:name => "frank").class.should == PoolParty::Resources::File
|
134
|
+
end
|
245
135
|
end
|
246
|
-
it "should
|
247
|
-
|
136
|
+
it "should create the new 'resource' as a resource" do
|
137
|
+
resource(:file).class.should == Array
|
248
138
|
end
|
249
|
-
it "should
|
250
|
-
|
139
|
+
it "should receive << when adding a new one" do
|
140
|
+
resource(:file).should_receive(:<<).once
|
141
|
+
has_file({:name => "pop"})
|
251
142
|
end
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
143
|
+
it "should contain 3 instances after calling resource 3 times" do
|
144
|
+
file({:name => "red"})
|
145
|
+
file({:name => "hot"})
|
146
|
+
file({:name => "summer"})
|
147
|
+
resource(:file).size.should == 3
|
256
148
|
end
|
257
|
-
|
258
|
-
|
259
|
-
|
149
|
+
describe "adding" do
|
150
|
+
before(:each) do
|
151
|
+
@a = file({:name => "red"})
|
152
|
+
@b = file({:name => "hot"})
|
153
|
+
@c = file({:name => "summer"})
|
154
|
+
end
|
155
|
+
it "should contain file named with 'red'" do
|
156
|
+
get_resource(:file, "red").nil?.should == false
|
157
|
+
end
|
260
158
|
end
|
261
|
-
|
262
|
-
|
159
|
+
describe "method_missing" do
|
160
|
+
before(:each) do
|
161
|
+
file({:name => "red"})
|
162
|
+
file({:name => "hot"})
|
163
|
+
file({:name => "summer"})
|
164
|
+
end
|
165
|
+
it "should be able to pick out methods with the phrase has_" do
|
166
|
+
lambda {
|
167
|
+
has_file
|
168
|
+
}.should_not raise_error
|
169
|
+
end
|
170
|
+
it "should not have a method prepended with crabs_" do
|
171
|
+
lambda {
|
172
|
+
crabs_file
|
173
|
+
}.should raise_error
|
174
|
+
end
|
175
|
+
it "should pick out methods with the phrase does_not_" do
|
176
|
+
lambda {
|
177
|
+
does_not_have_file({:name => "red"})
|
178
|
+
}.should_not raise_error
|
179
|
+
end
|
180
|
+
it "should set the has_file to present ensure" do
|
181
|
+
has_file({:name => "redface"})
|
182
|
+
resource(:file).get_named("redface").first.options[:ensure].should == "present"
|
183
|
+
end
|
184
|
+
it "should set the does_not_have_file to absent ensure" do
|
185
|
+
does_not_have_file({:name => "net"})
|
186
|
+
resource(:file).get_named("net").first.options[:ensure].should == "absent"
|
187
|
+
end
|
188
|
+
it "should be able to have_service as well" do
|
189
|
+
has_service({:name => "apache"})
|
190
|
+
resource(:service).get_named("apache").first.options[:ensure].should == "running"
|
191
|
+
end
|
263
192
|
end
|
264
|
-
|
265
|
-
|
266
|
-
|
193
|
+
describe "get_resource" do
|
194
|
+
before(:each) do
|
195
|
+
reset_resources!
|
196
|
+
@cloud_get_resource = cloud :get_resource do
|
197
|
+
file(:name => "red")
|
198
|
+
file(:name => "hot")
|
199
|
+
file(:name => "tamales")
|
200
|
+
end
|
201
|
+
end
|
202
|
+
it "should return a type of resource when looking for a resource that exists" do
|
203
|
+
@cloud_get_resource.get_resource(:file, "hot").class.should == PoolParty::Resources::File
|
204
|
+
end
|
205
|
+
it "should return the resource of the name requested" do
|
206
|
+
@cloud_get_resource.get_resource(:file, "hot").name.should == "hot"
|
207
|
+
end
|
208
|
+
it "should return nil if the resource requested is not there" do
|
209
|
+
@cloud_get_resource.get_resource(:file, "smarties").should be_nil
|
210
|
+
end
|
211
|
+
it "should not have created any more resources" do
|
212
|
+
@cloud_get_resource.resource(:file).size.should == 3
|
213
|
+
end
|
267
214
|
end
|
268
|
-
|
269
|
-
|
215
|
+
describe "parent" do
|
216
|
+
before(:each) do
|
217
|
+
@cloud = cloud :orange do
|
218
|
+
tangerine "orange"
|
219
|
+
file(:name => "file.txt")
|
220
|
+
end
|
221
|
+
@file = @cloud.resources[:file].first
|
222
|
+
end
|
223
|
+
it "should take the options of the parent" do
|
224
|
+
@file.parent.tangerine.should_not == nil
|
225
|
+
end
|
226
|
+
it "should set the option as the same from the parent" do
|
227
|
+
@file.parent.tangerine.should == "orange"
|
228
|
+
end
|
270
229
|
end
|
271
|
-
describe "
|
272
|
-
|
273
|
-
@
|
230
|
+
describe "appending to resource" do
|
231
|
+
before(:each) do
|
232
|
+
@cloud1 = cloud :apples do
|
233
|
+
directory(:name => "/var/www") do
|
234
|
+
file(:name => "/var/www/file.html")
|
235
|
+
end
|
236
|
+
end
|
237
|
+
@dir = @cloud1.get_resource(:directory, "/var/www")
|
238
|
+
@file = @dir.get_resource(:file, "/var/www/file.html")
|
239
|
+
end
|
240
|
+
it "should say there is 1 resource because the lower-level resources should be contained on the parenting resource" do
|
241
|
+
@cloud1.resources.size.should == 1
|
274
242
|
end
|
275
|
-
it "should say
|
276
|
-
@
|
277
|
-
|
243
|
+
it "should say there is one resource on the outer resource" do
|
244
|
+
@dir.resources.size.should == 1
|
245
|
+
end
|
246
|
+
it "should contain the file as a resource" do
|
247
|
+
@dir.resource(:file)[0].to_s.should == @file.to_s
|
248
|
+
end
|
249
|
+
it "should set the parent as the parenting resource" do
|
250
|
+
@file.parent.to_s.should == @dir.to_s
|
278
251
|
end
|
279
252
|
end
|
280
|
-
describe "
|
253
|
+
describe "fetching" do
|
281
254
|
before(:each) do
|
282
|
-
@
|
255
|
+
@file = file(:name => "pancakes")
|
256
|
+
end
|
257
|
+
it "should not create a new resource if the same resource exists" do
|
258
|
+
PoolParty::Resources::File.should_not_receive(:new)
|
259
|
+
file(:name => "pancakes")
|
260
|
+
end
|
261
|
+
it "should return the file preiously created" do
|
262
|
+
get_resource(:file, "pancakes").options.keys.sort.should == @file.options.keys.sort
|
283
263
|
end
|
284
|
-
it "should
|
285
|
-
|
264
|
+
it "should be able to use the helper to grab the file" do
|
265
|
+
PoolParty::Resources::File.should_not_receive(:new)
|
266
|
+
self.stub!(:key).and_return "false"
|
267
|
+
file(:name => "pancakes").name.should == @file.name
|
268
|
+
end
|
269
|
+
it "should turn the resource into a string" do
|
270
|
+
@file.to_s.should == "File['pancakes']"
|
271
|
+
end
|
272
|
+
describe "cancelled" do
|
273
|
+
it "should make a resource not cancelled by default" do
|
274
|
+
@file.cancelled?.should == false
|
275
|
+
end
|
276
|
+
it "should say cancelled? is true if it has been cancelled" do
|
277
|
+
@file.cancel
|
278
|
+
@file.cancelled?.should == true
|
279
|
+
end
|
280
|
+
it "should be able to get the file from the helper" do
|
281
|
+
get_file("pancakes").options.keys.sort.should == @file.options.keys.sort
|
282
|
+
end
|
283
|
+
end
|
284
|
+
describe "virtual_resources" do
|
285
|
+
before(:each) do
|
286
|
+
@virtual_resource = git(:name => "tank", :source => "git://github.com/auser/testgit.git")
|
287
|
+
end
|
288
|
+
it "should fetch a virtual resource the same" do
|
289
|
+
git(:name => "tank", :source => "git://github.com/auser/testgit.git").to_s.should == @virtual_resource.to_s
|
290
|
+
end
|
286
291
|
end
|
287
292
|
end
|
288
|
-
|
293
|
+
describe "global resources" do
|
294
|
+
describe "setting" do
|
295
|
+
before(:each) do
|
296
|
+
@cloud2 = cloud :applepie do
|
297
|
+
directory(:name => "/var/www") do
|
298
|
+
file(:name => "/var/www/file.html")
|
299
|
+
end
|
300
|
+
end
|
301
|
+
@cloud2 = cloud(:applepie)
|
302
|
+
end
|
303
|
+
it "should have a global_resources_store available as an Array" do
|
304
|
+
@cloud2.global_resources_store.class.should == Array
|
305
|
+
end
|
306
|
+
it "should have stored the two resources from the cloud into the global_resources_store" do
|
307
|
+
@cloud2.global_resources_store.size.should >= 2
|
308
|
+
end
|
309
|
+
it "should be an array of resources" do
|
310
|
+
@cloud2.global_resources_store.first.is_a?(PoolParty::Resources::Resource).should == true
|
311
|
+
end
|
312
|
+
it "should say that the type directory of name /var/www is in the global_resources_store" do
|
313
|
+
@cloud2.in_global_resource_store?(:directory, "/var/www").should == true
|
314
|
+
end
|
315
|
+
it "should say that the type file of the name /var/www/file.html is in the global_resources_store" do
|
316
|
+
@cloud2.in_global_resource_store?(:file, "/var/www/file.html").should == true
|
317
|
+
end
|
318
|
+
it "should say tht the type exec of the name echo 'hello' is not in the global_resources_store" do
|
319
|
+
@cloud2.in_global_resource_store?(:exec, "echo 'hello'").should == false
|
320
|
+
end
|
321
|
+
it "should say that the resource is in the global_resources_store when put in the global_resources_store" do
|
322
|
+
@file1 = PoolParty::Resources::File.new(:name => "/var/tmp.txt")
|
323
|
+
@cloud2.store_into_global_resource_store(@file1)
|
324
|
+
@cloud2.in_global_resource_store?(:file, "/var/tmp.txt")
|
325
|
+
end
|
326
|
+
it "should put the resource into the global_resources_store when calling store_into_global_resource_store" do
|
327
|
+
@file2 = PoolParty::Resources::File.new({:name => "/var/bunk.txt"})
|
328
|
+
@cloud2.global_resources_store.should_receive(:<<).with(@file2)
|
329
|
+
@cloud2.store_into_global_resource_store(@file2)
|
330
|
+
end
|
331
|
+
it "should not put a resource into the global_resources_store if it's already there" do
|
332
|
+
@file3 = PoolParty::Resources::File.new({:name => "/var/www/file.html"})
|
333
|
+
@cloud2.global_resources_store.should_not_receive(:<<).with(@file3)
|
334
|
+
@cloud2.store_into_global_resource_store(@file3)
|
335
|
+
end
|
336
|
+
it "should be able to get the resource from the global_resources_store by the name and type" do
|
337
|
+
@cloud2.get_from_global_resource_store(:directory, "/var/www").key.should == "/var/www"
|
338
|
+
end
|
339
|
+
describe "adding to global resource store" do
|
340
|
+
before(:each) do
|
341
|
+
@cloud3 = cloud :pumpkinpie do
|
342
|
+
file(:name => "/var/www/pumpkinfile.html")
|
343
|
+
file(:name => "/var/www/pumpkinfile.html")
|
344
|
+
apache do
|
345
|
+
file(:name => "/var/www/pumpkinfile.html")
|
346
|
+
end
|
347
|
+
end
|
348
|
+
@cloud3 = cloud(:pumpkinpie)
|
349
|
+
end
|
350
|
+
it "should not have 2 of the same resources" do
|
351
|
+
@cloud3.resource(:file).size.should == 1
|
352
|
+
end
|
353
|
+
end
|
354
|
+
describe "grabbing after already instantiated" do
|
355
|
+
before(:each) do
|
356
|
+
@cloud2.instance_eval do
|
357
|
+
has_package(:name => "apache2") do
|
358
|
+
has_exec(:name => "Add apache2 module") do
|
359
|
+
command "a2enmod mpm_worker"
|
360
|
+
end
|
361
|
+
end
|
362
|
+
has_package(:name => "boxers") do
|
363
|
+
has_file(:name => "/var/list_of_boxers.txt", :requires => (get_package("apache2")) )
|
364
|
+
end
|
365
|
+
end
|
366
|
+
end
|
367
|
+
describe "same_resources_of" do
|
368
|
+
it "should say that two resources are the same" do
|
369
|
+
has_file(:name => "tanks")
|
370
|
+
has_file(:name => "tanks").same_resources_of(:file, "tanks").should == true
|
371
|
+
end
|
372
|
+
it "should say that two resources are the same regardless of their context" do
|
373
|
+
@cloud2.instance_eval do
|
374
|
+
has_file(:name => "mighty_mighty_bosstones")
|
375
|
+
end
|
376
|
+
@cloud2.resource(:file).first.same_resources_of(:file, "mighty_mighty_bosstones").should == true
|
377
|
+
end
|
378
|
+
it "should say that two resources are not the same if they are not the same" do
|
379
|
+
has_file(:name => "trees").same_resources_of(:file, "timber").should == false
|
380
|
+
end
|
381
|
+
end
|
382
|
+
it "should grab the resource when called in in a block"# do
|
383
|
+
# @cloud2.resources_string_from_resources(@cloud2.resources).should =~ /\[ Package\['apache2'\], Package\['boxers'\] \]/
|
384
|
+
# end
|
385
|
+
end
|
386
|
+
describe "inherited" do
|
387
|
+
it "should turn passengersite_with_ssl into PassengerSiteWithSsl" do
|
388
|
+
"PassengersiteWithSsl".to_s.split("::")[-1].underscore.should == "passengersite_with_ssl"
|
389
|
+
end
|
390
|
+
end
|
391
|
+
end
|
392
|
+
end
|
393
|
+
end
|
289
394
|
end
|
290
395
|
end
|