fairchild-poolparty 1.1.5 → 1.2.12
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +3 -0
- data/README.txt +13 -9
- data/Rakefile +0 -1
- data/VERSION.yml +2 -2
- data/bin/cloud +43 -46
- data/bin/cloud-bootstrap +33 -23
- data/bin/cloud-configure +33 -34
- data/bin/cloud-console +31 -9
- data/bin/cloud-contract +27 -11
- data/bin/cloud-expand +32 -19
- data/bin/cloud-list +43 -15
- data/bin/cloud-osxcopy +22 -12
- data/bin/cloud-provision +39 -24
- data/bin/cloud-run +37 -0
- data/bin/cloud-setup-dev +31 -20
- data/bin/cloud-show +40 -21
- data/bin/cloud-ssh +24 -15
- data/bin/cloud-start +33 -19
- data/bin/cloud-terminate +34 -15
- data/bin/cloud-verify +41 -0
- data/bin/install-poolparty +22 -0
- data/bin/server-cloud-elections +17 -23
- data/bin/server-list-active +23 -22
- data/bin/server-manage-election +14 -23
- data/bin/server-show-stats +1 -1
- data/config/jeweler.rb +6 -6
- data/examples/basic.rb +13 -14
- data/examples/fairchild.rb +25 -20
- data/examples/maize.rb +37 -0
- data/examples/metavirt_cloud.rb +33 -0
- data/examples/simple.rb +13 -0
- data/examples/vmrun_cloud.rb +17 -0
- data/lib/poolparty/{aska/aska.rb → aska.rb} +3 -0
- data/lib/poolparty/core/array.rb +13 -1
- data/lib/poolparty/core/exception.rb +1 -1
- data/lib/poolparty/core/hash.rb +63 -2
- data/lib/poolparty/core/integer.rb +11 -0
- data/lib/poolparty/core/object.rb +41 -19
- data/lib/poolparty/core/proc.rb +0 -7
- data/lib/poolparty/core/string.rb +35 -2
- data/lib/poolparty/core/symbol.rb +10 -0
- data/lib/poolparty/core/time.rb +6 -0
- data/lib/poolparty/dependency_resolver/chef_resolver.rb +40 -41
- data/lib/poolparty/dependency_resolver/dependency_resolver.rb +1 -1
- data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +6 -6
- data/lib/poolparty/dependency_resolver/puppet.rb +0 -1
- data/lib/poolparty/dependency_resolver/puppet_resolver.rb +14 -48
- data/lib/poolparty/exceptions/MasterException.rb +2 -2
- data/lib/poolparty/extra/duration.rb +96 -0
- data/lib/poolparty/helpers/binary.rb +1 -1
- data/lib/poolparty/helpers/console.rb +0 -5
- data/lib/poolparty/helpers/optioner.rb +18 -13
- data/lib/poolparty/installers/base_installer.rb +113 -0
- data/lib/poolparty/installers/ec2.rb +141 -0
- data/lib/poolparty/installers/vmrun.rb +144 -0
- data/lib/poolparty/lite.rb +5 -2
- data/lib/poolparty/modules/callbacks.rb +15 -2
- data/lib/poolparty/modules/cloud_dsl.rb +10 -8
- data/lib/poolparty/modules/cloud_resourcer.rb +39 -59
- data/lib/poolparty/modules/daemonizable.rb +4 -5
- data/lib/poolparty/modules/definable_resource.rb +6 -7
- data/lib/poolparty/modules/file_writer.rb +2 -2
- data/lib/poolparty/modules/output.rb +2 -2
- data/lib/poolparty/modules/pinger.rb +9 -2
- data/lib/poolparty/modules/pretty_printer.rb +1 -1
- data/lib/poolparty/modules/resourcing_dsl.rb +1 -29
- data/lib/poolparty/modules/searchable_paths.rb +100 -0
- data/lib/poolparty/modules/user_helpers.rb +1 -1
- data/lib/poolparty/monitors/base_monitor.rb +65 -0
- data/lib/poolparty/monitors/monitor_daemon.rb +168 -0
- data/lib/poolparty/monitors/monitor_rack.rb +29 -15
- data/lib/poolparty/monitors/monitors/{time_monitor.rb → clock_monitor.rb} +7 -2
- data/lib/poolparty/monitors/monitors/cloud_monitor.rb +36 -0
- data/lib/poolparty/monitors/monitors/elections_monitor.rb +76 -0
- data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +15 -12
- data/lib/poolparty/monitors/monitors/stats_monitor.rb +68 -49
- data/lib/poolparty/net/init.rb +12 -7
- data/lib/poolparty/net/remote_instance.rb +48 -64
- data/lib/poolparty/net/remoter/cloud_control.rb +0 -177
- data/lib/poolparty/net/remoter/connections.rb +19 -14
- data/lib/poolparty/net/remoter/interactive.rb +30 -24
- data/lib/poolparty/net/remoter_base.rb +140 -48
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +119 -71
- data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +42 -31
- data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +75 -10
- data/lib/poolparty/net/remoter_bases/libvirt/libvirt.rb +73 -0
- data/lib/poolparty/net/remoter_bases/libvirt/libvirt_instance.rb +64 -0
- data/lib/poolparty/net/remoter_bases/metavirt/metavirt.rb +110 -0
- data/lib/poolparty/net/remoter_bases/metavirt/metavirt_instance.rb +37 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +1 -1
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +1 -1
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -117
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +59 -43
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +37 -21
- data/lib/poolparty/plugins/apache2/apache.rb +266 -0
- data/lib/poolparty/plugins/apache2/passenger_site.rb +86 -0
- data/lib/poolparty/plugins/apache2/php5.rb +40 -0
- data/lib/poolparty/plugins/apache2/virtual_host.rb +53 -0
- data/lib/poolparty/plugins/authorized_key.rb +29 -0
- data/lib/poolparty/plugins/bind.rb +5 -6
- data/lib/poolparty/plugins/{chef.rb → chef/chef.rb} +32 -44
- data/lib/poolparty/plugins/chef/chef_deploy.rb +55 -0
- data/lib/poolparty/plugins/chef/chef_deploy_definition.rb +32 -0
- data/lib/poolparty/plugins/chef/chef_library.rb +7 -0
- data/lib/poolparty/plugins/chef/chef_recipe.rb +7 -0
- data/lib/poolparty/plugins/chef/include_chef_recipe.rb +14 -0
- data/lib/poolparty/plugins/deploy_directory.rb +41 -26
- data/lib/poolparty/plugins/gem_package.rb +42 -14
- data/lib/poolparty/plugins/git.rb +62 -33
- data/lib/poolparty/{base_packages → plugins}/haproxy.rb +21 -20
- data/lib/poolparty/plugins/heartbeat.rb +16 -0
- data/lib/poolparty/plugins/host.rb +39 -0
- data/lib/poolparty/plugins/line_in_file.rb +24 -2
- data/lib/poolparty/plugins/plugin_template.rb +13 -0
- data/lib/poolparty/{base_packages/poolparty.rb → plugins/poolparty_base_packages.rb} +4 -6
- data/lib/poolparty/plugins/rails_deploy.rb +128 -0
- data/lib/poolparty/{base_packages → plugins}/ruby.rb +3 -3
- data/lib/poolparty/plugins/runit.rb +17 -92
- data/lib/poolparty/plugins/sshkey.rb +50 -0
- data/lib/poolparty/plugins/svn.rb +10 -8
- data/lib/poolparty/poolparty/cloud.rb +224 -61
- data/lib/poolparty/poolparty/default.rb +22 -15
- data/lib/poolparty/poolparty/key.rb +19 -28
- data/lib/poolparty/poolparty/neighborhoods.rb +16 -5
- data/lib/poolparty/poolparty/plugin.rb +49 -13
- data/lib/poolparty/poolparty/pool.rb +32 -9
- data/lib/poolparty/poolparty/poolparty_base_class.rb +65 -45
- data/lib/poolparty/poolparty/resource.rb +24 -49
- data/lib/poolparty/poolparty/service.rb +11 -9
- data/lib/poolparty/provision/boot_strapper.rb +48 -37
- data/lib/poolparty/provision/configurations/chef.rb +6 -5
- data/lib/poolparty/provision/dr_configure.rb +25 -19
- data/lib/poolparty/resources/cron.rb +37 -4
- data/lib/poolparty/resources/directory.rb +30 -0
- data/lib/poolparty/resources/exec.rb +31 -1
- data/lib/poolparty/resources/file.rb +54 -12
- data/lib/poolparty/resources/group.rb +21 -0
- data/lib/poolparty/resources/mount.rb +24 -4
- data/lib/poolparty/resources/package.rb +30 -6
- data/lib/poolparty/resources/remote_file.rb +33 -1
- data/lib/poolparty/resources/service.rb +22 -1
- data/lib/poolparty/resources/symlink.rb +37 -2
- data/lib/poolparty/resources/user.rb +25 -0
- data/lib/poolparty/resources/variable.rb +26 -1
- data/lib/poolparty/resources.rb +42 -0
- data/lib/poolparty/schema.rb +6 -8
- data/lib/poolparty/templates/apache2/apache2.conf +14 -0
- data/lib/poolparty/templates/apache2/base.conf.erb +168 -0
- data/lib/poolparty/templates/apache2/browser_fixes.conf.erb +26 -0
- data/lib/poolparty/templates/apache2/debian.conf.erb +675 -0
- data/lib/poolparty/templates/apache2/default-site.conf.erb +41 -0
- data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +101 -0
- data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +42 -0
- data/lib/poolparty/templates/apache2/mime-extras.conf.erb +211 -0
- data/lib/poolparty/templates/apache2/mime-minimal.conf.erb +15 -0
- data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +20 -0
- data/lib/poolparty/templates/apache2/mpm-worker.erb +20 -0
- data/lib/poolparty/templates/apache2/passenger.conf.erb +20 -0
- data/lib/poolparty/templates/apache2/php.ini.erb +1253 -0
- data/lib/poolparty/templates/apache2/server-status.erb +19 -0
- data/lib/poolparty/templates/{gemrc → gemrc_template} +0 -0
- data/lib/poolparty/templates/haproxy.conf +2 -2
- data/lib/poolparty/templates/monitor.ru +13 -0
- data/lib/poolparty/templates/php.ini.erb +1253 -0
- data/lib/poolparty/verification/verifier_base.rb +10 -0
- data/lib/poolparty/verification/verifiers/http_match.rb +43 -0
- data/lib/poolparty/verification/verifiers/http_status.rb +59 -0
- data/lib/poolparty/verification/verifiers/ping.rb +18 -1
- data/lib/poolparty/verification/verify.rb +6 -0
- data/lib/poolparty.rb +14 -15
- data/lib/poolpartycl.rb +1 -1
- data/spec/bin/bin_spec_helper.rb +1 -0
- data/spec/bin/fixtures/bin_cloud_for_test.rb +0 -6
- data/spec/bin/server-list-active_spec.rb +4 -6
- data/spec/poolparty/core/object_spec.rb +1 -62
- data/spec/poolparty/core/ordered_hash_spec.rb +7 -7
- data/spec/poolparty/core/string_spec.rb +1 -1
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -8
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +35 -32
- data/spec/poolparty/extra/deployments_spec.rb +68 -68
- data/spec/poolparty/fixtures/clouds.json +1 -1
- data/spec/poolparty/fixtures/fake_key.pub +1 -0
- data/spec/poolparty/helpers/optioner_spec.rb +4 -11
- data/spec/poolparty/modules/cloud_resourcer_spec.rb +1 -1
- data/spec/poolparty/modules/searchable_paths_spec.rb +83 -0
- data/spec/poolparty/net/remote_instance_spec.rb +1 -2
- data/spec/poolparty/net/remoter_base_spec.rb +7 -11
- data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +9 -11
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +6 -56
- data/spec/poolparty/net/remoter_bases/ec2_spec.rb +10 -7
- data/spec/poolparty/net/remoter_spec.rb +2 -3
- data/spec/poolparty/plugins/authorized_key_spec.rb +23 -0
- data/spec/poolparty/plugins/deploydirectory_spec.rb +64 -51
- data/spec/poolparty/plugins/git_spec.rb +8 -10
- data/spec/poolparty/poolparty/cloud_spec.rb +61 -64
- data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +2 -4
- data/spec/poolparty/poolparty/configurers/files/ruby_plugins.rb +1 -1
- data/spec/poolparty/poolparty/configurers/ruby_spec.rb +1 -6
- data/spec/poolparty/poolparty/default_spec.rb +23 -22
- data/spec/poolparty/poolparty/example_spec.rb +47 -26
- data/spec/poolparty/{base_packages → poolparty}/haproxy_spec.rb +1 -1
- data/spec/poolparty/{base_packages → poolparty}/heartbeat_spec.rb +1 -1
- data/spec/poolparty/poolparty/key_spec.rb +2 -2
- data/spec/poolparty/poolparty/neighborhoods_spec.rb +1 -1
- data/spec/poolparty/poolparty/plugin_model_spec.rb +13 -17
- data/spec/poolparty/poolparty/plugin_spec.rb +7 -7
- data/spec/poolparty/poolparty/pool_spec.rb +4 -10
- data/spec/poolparty/poolparty/resource_spec.rb +25 -29
- data/spec/poolparty/poolparty/script_spec.rb +1 -4
- data/spec/poolparty/poolparty/test_plugins/webserver.rb +27 -25
- data/spec/poolparty/resources/file_spec.rb +5 -4
- data/spec/poolparty/resources/sshkey_spec.rb +39 -40
- data/spec/poolparty/spec_helper.rb +9 -39
- data/tasks/poolparty.rake +29 -1
- data/tasks/spec.rake +39 -1
- data/test/fixtures/fake_clouds.rb +11 -0
- data/test/fixtures/metavirt_cloud.json +1 -0
- data/test/fixtures/test_key +1 -0
- data/test/poolparty/core/array_test.rb +11 -0
- data/test/poolparty/core/hash_test.rb +5 -7
- data/test/poolparty/core/object_test.rb +29 -0
- data/test/poolparty/dependency_resolver/chef_resolver_test.rb +82 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +5 -26
- data/test/poolparty/modules/callbacks_test.rb +1 -1
- data/test/poolparty/modules/cloud_dsl_test.rb +10 -8
- data/test/poolparty/monitors/test_base_monitor.rb +17 -0
- data/test/poolparty/monitors/test_monitor_rack.rb +26 -0
- data/test/poolparty/net/remoter_base_test.rb +17 -0
- data/test/poolparty/net/remoter_bases/libvirt/libvirt_test.rb +70 -0
- data/test/poolparty/net/remoter_bases/metavirt/metavirt_test.rb +81 -0
- data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +58 -27
- data/test/poolparty/plugins/chef_deploy_test.rb +37 -0
- data/test/poolparty/plugins/chef_plugin_test.rb +23 -0
- data/test/poolparty/plugins/rails_deploy_test.rb +50 -0
- data/test/poolparty/poolparty/cloud_test.rb +65 -0
- data/test/poolparty/poolparty/isolated_cloud_test.rb +25 -0
- data/test/poolparty/poolparty/neighborhood_test.rb +1 -1
- data/test/poolparty/poolparty/plugin_test.rb +19 -0
- data/test/poolparty/poolparty/pool_test.rb +22 -0
- data/test/poolparty/poolparty/poolparty_base_class_test.rb +53 -15
- data/test/poolparty/poolparty/schema_test.rb +13 -0
- data/test/poolparty/poolparty/template_test.rb +6 -6
- data/test/poolparty/verification/verify_test.rb +7 -3
- data/test/test_helper.rb +15 -4
- data/test/test_methods.rb +11 -0
- data/vendor/chef/apache2/attributes/apache.rb +1 -1
- data/vendor/gems/dslify/LICENSE +20 -0
- data/vendor/gems/dslify/README.rdoc +33 -0
- data/vendor/gems/dslify/Rakefile +56 -0
- data/vendor/gems/dslify/VERSION.yml +4 -0
- data/vendor/gems/dslify/dslify.gemspec +29 -0
- data/vendor/gems/dslify/lib/dslify.rb +81 -0
- data/vendor/gems/dslify/test/dslify_test.rb +283 -0
- data/vendor/gems/dslify/test/test_helper.rb +7 -0
- data/vendor/gems/git-style-binaries/README.markdown +280 -0
- data/vendor/gems/git-style-binaries/Rakefile +64 -0
- data/vendor/gems/git-style-binaries/VERSION.yml +4 -0
- data/vendor/gems/git-style-binaries/doc/EXAMPLES +1 -0
- data/vendor/gems/git-style-binaries/doc/gsb-screencast.png +0 -0
- data/vendor/gems/git-style-binaries/doc/poolparty-binaries.screenplay +412 -0
- data/vendor/gems/git-style-binaries/git-style-binaries.gemspec +78 -0
- data/vendor/gems/git-style-binaries/lib/ext/colorize.rb +198 -0
- data/vendor/gems/git-style-binaries/lib/ext/core.rb +16 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/autorunner.rb +21 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/command.rb +204 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/commands/help.rb +32 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/name_resolver.rb +78 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/pager.rb +37 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/parser.rb +223 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary.rb +88 -0
- data/vendor/gems/git-style-binaries/test/fixtures/flickr +4 -0
- data/vendor/gems/git-style-binaries/test/fixtures/flickr-download +17 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress +42 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-categories +18 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-list +18 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-post +26 -0
- data/vendor/gems/git-style-binaries/test/git-style-binary/command_test.rb +17 -0
- data/vendor/gems/git-style-binaries/test/git_style_binary_test.rb +21 -0
- data/vendor/gems/git-style-binaries/test/running_binaries_test.rb +224 -0
- data/vendor/gems/git-style-binaries/test/shoulda_macros/matching_stdio.rb +13 -0
- data/vendor/gems/git-style-binaries/test/test_helper.rb +28 -0
- data/vendor/gems/parenting/History.txt +4 -0
- data/vendor/gems/parenting/Manifest.txt +14 -0
- data/vendor/gems/parenting/PostInstall.txt +2 -0
- data/vendor/gems/parenting/README.rdoc +47 -0
- data/vendor/gems/parenting/Rakefile +28 -0
- data/vendor/gems/parenting/lib/parenting/parenting.rb +70 -0
- data/vendor/gems/parenting/lib/parenting.rb +10 -0
- data/vendor/gems/parenting/parenting.gemspec +39 -0
- data/vendor/gems/parenting/script/console +10 -0
- data/vendor/gems/parenting/script/destroy +14 -0
- data/vendor/gems/parenting/script/generate +14 -0
- data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
- data/vendor/gems/parenting/test/test_helper.rb +5 -0
- data/vendor/gems/parenting/test/test_parenting.rb +117 -0
- data/vendor/gems/suitcase/LICENSE +20 -0
- data/vendor/gems/suitcase/README.rdoc +31 -0
- data/vendor/gems/suitcase/Rakefile +57 -0
- data/vendor/gems/suitcase/VERSION.yml +4 -0
- data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
- data/vendor/gems/suitcase/lib/suitcase/zipper.rb +167 -0
- data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
- data/vendor/gems/suitcase/suitcase.gemspec +32 -0
- data/vendor/gems/suitcase/test/suitcase_test.rb +108 -0
- data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
- data/vendor/gems/suitcase/test/test_dir/gems/famoseagle-carrot-0.6.0.gem +0 -0
- data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
- data/vendor/gems/suitcase/test/test_helper.rb +12 -0
- data/vendor/gems/trollop/FAQ.txt +35 -0
- data/vendor/gems/trollop/History.txt +97 -0
- data/vendor/gems/trollop/Manifest.txt +7 -0
- data/vendor/gems/trollop/README.txt +40 -0
- data/vendor/gems/trollop/Rakefile +36 -0
- data/vendor/gems/trollop/lib/trollop.rb +735 -0
- data/vendor/gems/trollop/release-script.txt +13 -0
- data/vendor/gems/trollop/test/test_trollop.rb +1042 -0
- data/vendor/gems/trollop/www/index.html +167 -0
- metadata +205 -150
- data/bin/cloud-describe +0 -28
- data/bin/cloud-handle-load +0 -27
- data/bin/cloud-rsync +0 -28
- data/bin/cloud-spec +0 -41
- data/bin/messenger-get-current-nodes +0 -14
- data/bin/server-become-master +0 -24
- data/bin/server-build-messenger +0 -28
- data/bin/server-clean-cert-for +0 -15
- data/bin/server-provision +0 -32
- data/bin/server-start-agent +0 -15
- data/bin/server-start-client +0 -29
- data/bin/server-start-master +0 -26
- data/bin/server-start-node +0 -32
- data/bin/server-stop-client +0 -3
- data/bin/server-stop-master +0 -3
- data/bin/server-stop-node +0 -3
- data/bin/server-update-hosts +0 -49
- data/examples/poolparty.rb +0 -12
- data/lib/poolparty/base_packages/heartbeat.rb +0 -58
- data/lib/poolparty/base_packages/runit.rb +0 -21
- data/lib/poolparty/capistrano/cloud_tasks.rb +0 -10
- data/lib/poolparty/capistrano.rb +0 -54
- data/lib/poolparty/config/postlaunchmessage.txt +0 -5
- data/lib/poolparty/core/metaid.rb +0 -15
- data/lib/poolparty/core/module.rb +0 -40
- data/lib/poolparty/extra/deployments.rb +0 -31
- data/lib/poolparty/helpers/display.rb +0 -30
- data/lib/poolparty/net/messenger.rb +0 -57
- data/lib/poolparty/net/remote_bases.rb +0 -21
- data/lib/poolparty/plugins/chef_deploy.rb +0 -58
- data/lib/poolparty/plugins/dynomite.rb +0 -14
- data/lib/poolparty/plugins/nanite.rb +0 -41
- data/lib/poolparty/plugins/rsyncmirror.rb +0 -28
- data/lib/poolparty/plugins/tokyo_tyrant.rb +0 -23
- data/lib/poolparty/poolparty/plugin_model.rb +0 -45
- data/lib/poolparty/resources/host.rb +0 -16
- data/lib/poolparty/resources/sshkey.rb +0 -27
- data/lib/poolparty/services/conditional.rb +0 -46
- data/lib/poolparty/spec/core/string.rb +0 -18
- data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
- data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
- data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
- data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
- data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
- data/lib/poolparty/spec/matchers/have_file.rb +0 -28
- data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
- data/lib/poolparty/spec/matchers/have_git.rb +0 -28
- data/lib/poolparty/spec/matchers/have_host.rb +0 -28
- data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
- data/lib/poolparty/spec/matchers/have_package.rb +0 -28
- data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
- data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
- data/lib/poolparty/spec/matchers/have_service.rb +0 -28
- data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
- data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
- data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
- data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
- data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
- data/lib/poolparty/spec/templates/have_base.rb +0 -28
- data/lib/poolparty/spec.rb +0 -31
- data/spec/poolparty/core/module_spec.rb +0 -15
- data/spec/poolparty/helpers/display_spec.rb +0 -13
- data/spec/poolparty/id_rsa +0 -27
- data/spec/poolparty/net/messenger_spec.rb +0 -16
- data/spec/poolparty/resources/host_spec.rb +0 -35
- data/spec/poolparty/services/conditional_spec.rb +0 -52
- data/spec/poolparty/spec/core/string_spec.rb +0 -57
@@ -1,51 +1,64 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
class TestDeployDirectoryClass < PoolParty::Cloud::Cloud
|
4
|
+
end
|
5
|
+
|
6
|
+
describe "Remote Instance" do
|
7
|
+
describe "wrapped" do
|
8
|
+
before(:each) do
|
9
|
+
reset!
|
10
|
+
@tc = cloud :test_deploy_directory_class_cloud do
|
11
|
+
has_deploy_directory("map-experiments",
|
12
|
+
:from => "~/projects/westfield/map-experiments",
|
13
|
+
:to => "/var/www/wifi-maps",
|
14
|
+
:mode => "755",
|
15
|
+
:owner => "www-data")
|
16
|
+
|
17
|
+
has_deploy_directory("map-experiments-two",
|
18
|
+
:from => "~/projects/westfield/map-experiments",
|
19
|
+
:to => "/var/www/wifi-maps-two",
|
20
|
+
:mode => "755",
|
21
|
+
:owner => "www-data")
|
22
|
+
|
23
|
+
end
|
24
|
+
@compiled = ChefResolver.new(@tc.to_properties_hash).compile
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "when being listed the first time" do
|
28
|
+
it "should be a string" do
|
29
|
+
@compiled.should =~ /execute/
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should create the directory specified in 'to'" do
|
33
|
+
@compiled.should =~ %r{directory "/var/www/wifi-maps"}
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should copy from the deploy directory" do
|
37
|
+
#@compiled.should =~ %r{command "cp \-R /var/poolparty/dr_configure/user_directory/map-experiments/map-experiments/\* /var/www/wifi-maps"}
|
38
|
+
@compiled.should =~ %r{command "cp \-R /var/poolparty/dr_configure/user_directory/map-experiments/\* /var/www/wifi-maps"}
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should chown if needed" do
|
42
|
+
@compiled.should =~ %r{command "chown www-data \-R /var/www/wifi-maps"}
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should chmod if needed" do
|
46
|
+
@compiled.should =~ %r{command "chmod 755 /var/www/wifi-maps"}
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "when being listed a second time with the same source" do
|
51
|
+
it "should create the directory specified in 'to'" do
|
52
|
+
@compiled.should =~ %r{directory "/var/www/wifi-maps-two"}
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should copy from the right deploy directory" do
|
56
|
+
#@compiled.should =~ %r{command "cp \-R /var/poolparty/dr_configure/user_directory/map-experiments-two/map-experiments/\* /var/www/wifi-maps-two"}
|
57
|
+
@compiled.should =~ %r{command "cp \-R /var/poolparty/dr_configure/user_directory/map-experiments/\* /var/www/wifi-maps-two"}
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# it should be able to have a different name and from
|
@@ -8,12 +8,13 @@ describe "Remote Instance" do
|
|
8
8
|
before(:each) do
|
9
9
|
reset!
|
10
10
|
@tc = cloud :test_git_class_cloud do
|
11
|
-
|
11
|
+
has_file "/var/www/bino"
|
12
|
+
has_git_repo "git://git/repos/source.git", :to => "/var/www/source", :requires_user => "finger"
|
12
13
|
end
|
13
|
-
@compiled =
|
14
|
+
@compiled = ChefResolver.new(@tc.to_properties_hash).compile
|
14
15
|
end
|
15
16
|
it "should be a string" do
|
16
|
-
@compiled.should =~ /
|
17
|
+
@compiled.should =~ /execute/
|
17
18
|
end
|
18
19
|
it "should included the flushed out options" do
|
19
20
|
@compiled.should =~ /finger@git:/
|
@@ -24,17 +25,14 @@ describe "Remote Instance" do
|
|
24
25
|
describe "in resource" do
|
25
26
|
before(:each) do
|
26
27
|
@tc = cloud :test_git_class_cloud_two do
|
27
|
-
|
28
|
-
|
29
|
-
source "git://source.git"
|
30
|
-
path "/var/www/xnot.org"
|
31
|
-
at "/var/www"
|
28
|
+
has_git_repo("git://source.git") do
|
29
|
+
to "/var/www/xnot.org"
|
32
30
|
end
|
33
31
|
end
|
34
32
|
end
|
35
33
|
it "should have the path set within the resource" do
|
36
|
-
|
34
|
+
ChefResolver.new(@tc.to_properties_hash).compile.should =~ /execute \"git-git:\/\/source\.git/
|
37
35
|
end
|
38
36
|
end
|
39
37
|
end
|
40
|
-
end
|
38
|
+
end
|
@@ -1,21 +1,19 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
module PoolParty
|
4
|
+
module Plugin
|
5
|
+
class TestService < Plugin
|
6
|
+
def initialize(o={}, e=nil, &block)
|
7
|
+
super(&block)
|
8
|
+
end
|
9
|
+
def enable(o={})
|
10
|
+
has_file(:name => "/etc/poolparty/lobos")
|
11
|
+
end
|
12
|
+
end
|
11
13
|
end
|
12
14
|
end
|
13
15
|
|
14
16
|
describe "Cloud" do
|
15
|
-
before(:each) do
|
16
|
-
setup
|
17
|
-
#
|
18
|
-
end
|
19
17
|
describe "wrapped" do
|
20
18
|
before(:each) do
|
21
19
|
@obj = Object.new
|
@@ -35,10 +33,10 @@ describe "Cloud" do
|
|
35
33
|
@obj.cloud(:pop).should == @cloud1
|
36
34
|
end
|
37
35
|
it "should have set the using base on intantiation to ec2" do
|
38
|
-
@cloud1.
|
36
|
+
@cloud1.remoter_base.should_not == nil
|
39
37
|
end
|
40
38
|
it "should say the remoter_base is ec2 (by default)" do
|
41
|
-
@cloud1.
|
39
|
+
@cloud1.remoter_base.should == :ec2
|
42
40
|
end
|
43
41
|
end
|
44
42
|
it "should return the cloud if the cloud key is already in the clouds list" do
|
@@ -48,10 +46,8 @@ describe "Cloud" do
|
|
48
46
|
describe "options" do
|
49
47
|
before(:each) do
|
50
48
|
reset!
|
51
|
-
setup
|
52
49
|
pool :options do
|
53
50
|
user "bob"
|
54
|
-
pop_stick true
|
55
51
|
minimum_instances 100
|
56
52
|
access_key "pool_access_key"
|
57
53
|
cloud :apple do
|
@@ -68,9 +64,6 @@ describe "Cloud" do
|
|
68
64
|
it "should take the access_key option set from the cloud" do
|
69
65
|
clouds[:apple].access_key.should == "cloud_access_key"
|
70
66
|
end
|
71
|
-
it "should take the option pop_stick from the superclass" do
|
72
|
-
clouds[:apple].pop_stick.should == true
|
73
|
-
end
|
74
67
|
it "should take the option testing true from the superclass" do
|
75
68
|
pools[:options].user.should == "bob"
|
76
69
|
clouds[:apple].user.should == "bob"
|
@@ -100,14 +93,8 @@ describe "Cloud" do
|
|
100
93
|
end
|
101
94
|
cloud(:paddy_wack).parent.should == pool(:knick_knack)
|
102
95
|
end
|
103
|
-
it "should
|
104
|
-
@cloud.
|
105
|
-
end
|
106
|
-
it "should have no services (other than the base ones) in the array when there are no services defined" do
|
107
|
-
@cloud.services.size.should > 2
|
108
|
-
end
|
109
|
-
it "should respond to a options method (from Dslify)" do
|
110
|
-
@cloud.respond_to?(:options).should == true
|
96
|
+
it "should respond to a dsl_options method (from Dslify)" do
|
97
|
+
@cloud.respond_to?(:dsl_options).should == true
|
111
98
|
end
|
112
99
|
describe "configuration" do
|
113
100
|
before(:each) do
|
@@ -149,6 +136,9 @@ describe "Cloud" do
|
|
149
136
|
end
|
150
137
|
@cloud = @pool.cloud(:app)
|
151
138
|
end
|
139
|
+
it "should set it's own cloud.tmp_path" do
|
140
|
+
@cloud.tmp_path.should == "/tmp/poolparty/just_pool/app"
|
141
|
+
end
|
152
142
|
it "should set the minimum based on the range" do
|
153
143
|
@cloud.minimum_instances.should == 8
|
154
144
|
end
|
@@ -164,24 +154,26 @@ describe "Cloud" do
|
|
164
154
|
@c = cloud :app do
|
165
155
|
keypair "hotdog"
|
166
156
|
end
|
167
|
-
@c.
|
157
|
+
@c._keypairs.map {|a| a.basename }.include?("hotdog")
|
168
158
|
end
|
169
159
|
it "should take the pool parent's keypair if it's defined on the pool" do
|
170
|
-
pool :pool do
|
171
|
-
keypair "ney"
|
160
|
+
pool :pool do
|
172
161
|
cloud :app do
|
162
|
+
keypair "ney"
|
173
163
|
end
|
174
164
|
end
|
175
165
|
clouds[:app]._keypairs.first.stub!(:exists?).and_return true
|
176
166
|
clouds[:app]._keypairs.size.should == 2
|
177
167
|
end
|
178
168
|
it "should default to ~/.ssh/id_rsa if none are defined" do
|
179
|
-
File.stub!(:exists?).
|
169
|
+
::File.stub!(:exists?).and_return(false)
|
170
|
+
::File.stub!(:exists?).with(File.expand_path("#{ENV["HOME"]}/.ssh/id_jokes")).and_return(true)
|
180
171
|
pool :pool do
|
181
172
|
cloud :app do
|
173
|
+
keypair "id_jokes"
|
182
174
|
end
|
183
175
|
end
|
184
|
-
clouds[:app].keypair.full_filepath.should match(/\.ssh\/
|
176
|
+
clouds[:app].keypair.full_filepath.should match(/\.ssh\/id_jokes/)
|
185
177
|
end
|
186
178
|
end
|
187
179
|
describe "Manifest" do
|
@@ -195,7 +187,7 @@ describe "Cloud" do
|
|
195
187
|
EOE
|
196
188
|
end
|
197
189
|
enable :haproxy
|
198
|
-
|
190
|
+
has_gem_package(:name => "poolparty")
|
199
191
|
has_package(:name => "dummy")
|
200
192
|
end
|
201
193
|
context_stack.push @cloud
|
@@ -207,9 +199,9 @@ describe "Cloud" do
|
|
207
199
|
@cloud.should_receive(:haproxy)
|
208
200
|
@cloud.add_optional_enabled_services
|
209
201
|
end
|
210
|
-
it "should have 3 resources" do
|
211
|
-
@cloud.add_poolparty_base_requirements
|
212
|
-
@cloud.
|
202
|
+
it "should have at least 3 resources" do
|
203
|
+
@cloud.send :add_poolparty_base_requirements
|
204
|
+
@cloud.ordered_resources.size.should > 2
|
213
205
|
end
|
214
206
|
it "should receive add_poolparty_base_requirements before building the manifest" do
|
215
207
|
@cloud.should_receive(:add_poolparty_base_requirements).once
|
@@ -224,52 +216,39 @@ describe "Cloud" do
|
|
224
216
|
@cloud.instance_eval do
|
225
217
|
@heartbeat = nil
|
226
218
|
end
|
227
|
-
@hb =
|
228
|
-
end
|
229
|
-
it "should call heartbeat on the cloud" do
|
230
|
-
pending
|
219
|
+
@hb = PoolParty::Plugin::Heartbeat.new
|
231
220
|
end
|
232
221
|
it "should call enable on the plugin call" do
|
233
|
-
@hb =
|
234
|
-
|
222
|
+
@hb = PoolParty::Plugin::Heartbeat.new
|
223
|
+
PoolParty::Plugin::Heartbeat.stub!(:new).and_return @hb
|
235
224
|
|
236
|
-
@cloud.add_poolparty_base_requirements
|
237
|
-
@cloud.
|
225
|
+
@cloud.send :add_poolparty_base_requirements
|
226
|
+
@cloud.heartbeat.should == @hb
|
238
227
|
end
|
239
228
|
describe "after adding" do
|
240
229
|
before(:each) do
|
241
230
|
stub_list_from_remote_for(@cloud)
|
242
|
-
@cloud.add_poolparty_base_requirements
|
243
|
-
end
|
244
|
-
it "should add resources onto the heartbeat class inside the cloud" do
|
245
|
-
@cloud.services.size.should > 0
|
246
|
-
end
|
247
|
-
it "should store the class heartbeat" do
|
248
|
-
@cloud.services.keys.include?(:poolparty_base_heartbeat_class).should == true
|
249
|
-
end
|
250
|
-
it "should have an array of services on the heartbeat" do
|
251
|
-
@cloud.services.class.should == OrderedHash
|
231
|
+
@cloud.send :add_poolparty_base_requirements
|
252
232
|
end
|
253
233
|
describe "resources" do
|
254
234
|
before(:each) do
|
255
235
|
reset!
|
256
|
-
|
236
|
+
cloud :tester do
|
257
237
|
test_service
|
258
238
|
end
|
259
|
-
@
|
260
|
-
|
239
|
+
@service = clouds[:tester].ordered_resources.select {|hsh|
|
240
|
+
hsh.to_properties_hash.name == "test_service"
|
241
|
+
}.first
|
261
242
|
@files = @service.resource(:file)
|
262
243
|
end
|
263
244
|
it "should have a file resource" do
|
264
|
-
|
265
|
-
pending
|
245
|
+
@files.first.nil?.should == false
|
266
246
|
end
|
267
247
|
it "should have an array of lines" do
|
268
248
|
@files.class.should == Array
|
269
249
|
end
|
270
|
-
it "should
|
271
|
-
|
272
|
-
pending
|
250
|
+
it "should have the file /etc/poolparty/lobos" do
|
251
|
+
@files.first.name.should == "/etc/poolparty/lobos"
|
273
252
|
end
|
274
253
|
end
|
275
254
|
end
|
@@ -279,7 +258,7 @@ describe "Cloud" do
|
|
279
258
|
str = "master 192.168.0.1
|
280
259
|
node1 192.168.0.2"
|
281
260
|
@sample_instances_list = [{:ip => "192.168.0.1", :name => "master"}, {:ip => "192.168.0.2", :name => "node1"}]
|
282
|
-
@ris = @sample_instances_list.map {|h| PoolParty::Remote::RemoteInstance.new(h
|
261
|
+
@ris = @sample_instances_list.map {|h| PoolParty::Remote::RemoteInstance.new(h) }
|
283
262
|
|
284
263
|
stub_remoter_for(@cloud)
|
285
264
|
|
@@ -319,6 +298,24 @@ describe "Cloud" do
|
|
319
298
|
end
|
320
299
|
end
|
321
300
|
end
|
301
|
+
|
302
|
+
describe "JSON" do
|
303
|
+
before(:each) do
|
304
|
+
pool :jason do
|
305
|
+
user "fred"
|
306
|
+
minimum_instances 10
|
307
|
+
access_key "pool_a_key"
|
308
|
+
cloud :stratus do
|
309
|
+
keypair "fake_keypair"
|
310
|
+
access_key "cloud_a_key"
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
end
|
315
|
+
it "should have to_json method" do
|
316
|
+
clouds[:stratus].to_json.class.should == String
|
317
|
+
end
|
318
|
+
end
|
322
319
|
|
323
320
|
# describe "instances" do
|
324
321
|
# before(:each) do
|
@@ -335,4 +332,4 @@ describe "Cloud" do
|
|
335
332
|
# end
|
336
333
|
end
|
337
334
|
end
|
338
|
-
end
|
335
|
+
end
|
@@ -4,7 +4,7 @@ require File.dirname(__FILE__) + '/../test_plugins/webserver'
|
|
4
4
|
describe "Configurer" do
|
5
5
|
before(:each) do
|
6
6
|
reset!
|
7
|
-
@basic = File.join(File.dirname(__FILE__), "files", "ruby_basic.rb")
|
7
|
+
$pool_specfile = @basic = File.join(File.dirname(__FILE__), "files", "ruby_basic.rb")
|
8
8
|
PoolParty::Pool::Pool.load_from_file @basic
|
9
9
|
@conf = Object.new
|
10
10
|
end
|
@@ -13,11 +13,6 @@ describe "Configurer" do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
describe "with a spec file" do
|
16
|
-
before(:each) do
|
17
|
-
@s = Script.new
|
18
|
-
Script.stub!(:new).and_return(@s)
|
19
|
-
@basic = File.join(File.dirname(__FILE__), "files", "ruby_basic.rb")
|
20
|
-
end
|
21
16
|
describe "clouds" do
|
22
17
|
before(:each) do
|
23
18
|
reset!
|
@@ -30,12 +30,13 @@ describe "Default" do
|
|
30
30
|
it "should set the remote storage path to /var/poolparty" do
|
31
31
|
Default.remote_storage_path.should == "/var/poolparty"
|
32
32
|
end
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
33
|
+
# TODO: WTF?!
|
34
|
+
# it "should have an access key" do
|
35
|
+
# Default.access_key.should == "KEY"
|
36
|
+
# end
|
37
|
+
# it "should have a secret access key" do
|
38
|
+
# Default.secret_access_key.should == "SECRET"
|
39
|
+
# end
|
39
40
|
describe "keys" do
|
40
41
|
it "should have an array of key_file_locations" do
|
41
42
|
Default.key_file_locations.class.should == Array
|
@@ -94,22 +95,22 @@ describe "Default" do
|
|
94
95
|
Default.secret_access_key.should == nil
|
95
96
|
end
|
96
97
|
end
|
97
|
-
describe "store_keys_in_file_for" do
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
end
|
98
|
+
# describe "store_keys_in_file_for" do
|
99
|
+
# before(:each) do
|
100
|
+
# @obj = Class.new
|
101
|
+
# @obj.stub!(:access_key).and_return "MYACCESSKEY"
|
102
|
+
# @obj.stub!(:secret_access_key).and_return "MYSECRETACCESSKEY"
|
103
|
+
# Default.stub!(:store_keys_in_file).and_return true
|
104
|
+
#
|
105
|
+
# Default.store_keys_in_file_for(@obj)
|
106
|
+
# end
|
107
|
+
# it "should take the access key from the object" do
|
108
|
+
# Default.access_key.should == "MYACCESSKEY"
|
109
|
+
# end
|
110
|
+
# it "should take the secret_access_key from the object" do
|
111
|
+
# Default.secret_access_key.should == "MYSECRETACCESSKEY"
|
112
|
+
# end
|
113
|
+
# end
|
113
114
|
end
|
114
115
|
describe "storing keyfile" do
|
115
116
|
before(:each) do
|
@@ -1,60 +1,81 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
require "open-uri"
|
3
3
|
|
4
|
+
# pool :application do
|
5
|
+
# instances 1..5
|
6
|
+
#
|
7
|
+
# cloud :frontend do
|
8
|
+
# minimum_instances 3
|
9
|
+
# keypair 'front'
|
10
|
+
# image_id "ami-abc123"
|
11
|
+
# has_file :name => "/etc/motd", :content => "Welcome to your PoolParty instance"
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# cloud :database do
|
15
|
+
# using :vmrun do
|
16
|
+
# vmx_hash "/path/to/vmx_file" => "192.168.248.122"
|
17
|
+
# end
|
18
|
+
# minimum_instances 1
|
19
|
+
# image_id "ami-1234bc"
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# end
|
23
|
+
|
4
24
|
describe "basic" do
|
5
25
|
before(:each) do
|
6
26
|
PoolParty.reset!
|
7
27
|
@example_spec_file = ::File.join(::File.dirname(__FILE__), "..", "..", "..", "examples", 'basic.rb')
|
28
|
+
set_pool_specfile @example_spec_file
|
8
29
|
PoolParty::Pool::Pool.load_from_file(@example_spec_file)
|
9
|
-
@db = clouds[:
|
10
|
-
@app = clouds[:
|
30
|
+
@db = clouds[:database]
|
31
|
+
@app = clouds[:frontend]
|
32
|
+
end
|
33
|
+
it "should have a remote base" do
|
34
|
+
clouds[:frontend].remoter_base.should == :ec2
|
35
|
+
clouds[:frontend].remote_base.class.should == Ec2
|
11
36
|
end
|
12
37
|
it "should have one pool called :app" do
|
13
38
|
pool(:application).should_not == nil
|
14
39
|
pools[:application].should_not == nil
|
15
40
|
end
|
16
41
|
it "should have a cloud called :app" do
|
17
|
-
clouds[:
|
42
|
+
clouds[:frontend].should_not == nil
|
18
43
|
end
|
19
44
|
it "should have a cloud called :db" do
|
20
|
-
pools[:application].clouds[:
|
21
|
-
end
|
22
|
-
it "should set the minimum_instances on the cloud to 2 (overriding the pool options)" do
|
23
|
-
pools[:application].minimum_instances.should == 3
|
24
|
-
clouds[:basic_app].minimum_instances.should == 12
|
45
|
+
pools[:application].clouds[:database].should_not == nil
|
25
46
|
end
|
26
|
-
it "should set the
|
27
|
-
|
47
|
+
it "should set the minimum_instances on the cloud (overriding the pool options)" do
|
48
|
+
pools[:application].minimum_instances.should == 1
|
49
|
+
clouds[:frontend].minimum_instances.should == 3
|
28
50
|
end
|
29
|
-
it "should set the
|
30
|
-
clouds[:
|
31
|
-
clouds[:basic_app].minimum_instances.should == 12
|
32
|
-
pools[:application].minimum_instances.should ==3
|
51
|
+
it "should set the maximum_instances on the cloud to 5" do
|
52
|
+
clouds[:frontend].maximum_instances.should == 5
|
33
53
|
end
|
34
|
-
it "should set
|
35
|
-
clouds[:
|
36
|
-
clouds[:
|
54
|
+
it "should set the minimum_instances on the db cloud " do
|
55
|
+
clouds[:database].minimum_instances.should == 1
|
56
|
+
clouds[:frontend].minimum_instances.should == 3
|
57
|
+
pools[:application].minimum_instances.should == 1
|
37
58
|
end
|
38
59
|
it "should set the parent to the pool" do
|
39
|
-
clouds[:
|
40
|
-
clouds[:
|
41
|
-
clouds[:
|
60
|
+
clouds[:frontend].parent.should == pools[:application]
|
61
|
+
clouds[:database].parent.should == pools[:application]
|
62
|
+
clouds[:database].parent.should_not == pools[:app]
|
42
63
|
end
|
43
64
|
it "should have the keypair matching /auser/on the db cloud " do
|
44
|
-
clouds[:
|
65
|
+
clouds[:database]._keypairs.select{|a| a.filepath.match(/auser/)}
|
45
66
|
end
|
46
67
|
it "cloud should know what remoter base it is using" do
|
47
|
-
clouds[:
|
68
|
+
clouds[:database].remote_base.class.should == PoolParty::Remote::Vmrun
|
48
69
|
end
|
49
70
|
it "cloud should have methods from the remoter base available" do
|
50
|
-
clouds[:
|
51
|
-
clouds[:
|
71
|
+
clouds[:database].remote_base.should_receive(:describe_instances).and_return({})
|
72
|
+
clouds[:database].describe_instances.should == {}
|
52
73
|
end
|
53
74
|
it "should not return nil to undefined methods" do
|
54
|
-
lambda {clouds[:
|
75
|
+
lambda {clouds[:database].not_a_method_that_exists_anywhere}.should raise_error
|
55
76
|
end
|
56
77
|
it "should have the keypair set for the specific cloud on top of the keypair stack" do
|
57
78
|
#I think this should be the behavior. mf
|
58
|
-
# pools[:application].clouds[:
|
79
|
+
# pools[:application].clouds[:database].keypairs.last.filepath.should_match(/auser/)
|
59
80
|
end
|
60
81
|
end
|
@@ -8,7 +8,7 @@ describe "Key" do
|
|
8
8
|
Key.new.filepath.should == "id_rsa"
|
9
9
|
end
|
10
10
|
it "should provide valid to_json" do
|
11
|
-
lambda {Key.new("file").to_json}.should_not raise_error end
|
11
|
+
lambda {Key.new("file").to_hash.to_json}.should_not raise_error end
|
12
12
|
describe "that exists" do
|
13
13
|
before(:each) do
|
14
14
|
@keypair = "/var/home/id_rsa"
|
@@ -25,7 +25,7 @@ describe "Key" do
|
|
25
25
|
before(:each) do
|
26
26
|
@keypair = "sshkey_test"
|
27
27
|
Dir.stub!(:pwd).and_return "#{::File.dirname(__FILE__)}/test_plugins"
|
28
|
-
|
28
|
+
Key.add_searchable_path("#{::File.dirname(__FILE__)}/test_plugins")
|
29
29
|
@key = Key.new(@keypair)
|
30
30
|
end
|
31
31
|
it "should search in known locations for the key" do
|