poolparty 0.2.84 → 1.2.2
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/History.txt +7 -0
- data/License.txt +1 -1
- data/PostInstall.txt +1 -1
- data/README.txt +13 -22
- data/Rakefile +26 -35
- data/VERSION.yml +4 -0
- data/bin/cloud +24 -3
- data/bin/cloud-bootstrap +31 -0
- data/bin/cloud-configure +36 -20
- data/bin/{pool-console → cloud-console} +0 -0
- data/bin/cloud-contract +7 -7
- data/bin/cloud-describe +28 -0
- data/bin/cloud-expand +13 -6
- data/bin/cloud-handle-load +3 -3
- data/bin/cloud-list +9 -14
- data/bin/cloud-osxcopy +6 -5
- data/bin/cloud-provision +17 -22
- data/bin/cloud-setup-dev +11 -11
- data/bin/cloud-show +28 -0
- data/bin/cloud-spec +2 -2
- data/bin/cloud-ssh +10 -3
- data/bin/cloud-start +21 -23
- data/bin/cloud-terminate +15 -7
- data/bin/cloud-verify +32 -0
- data/bin/install-poolparty +216 -0
- data/bin/server-butterfly +25 -0
- data/bin/server-cloud-elections +37 -0
- data/bin/server-ensure-provisioning +33 -0
- data/bin/server-get-load +9 -12
- data/bin/server-list-active +25 -12
- data/bin/server-manage-election +67 -0
- data/bin/server-monitor.ru +42 -0
- data/bin/server-query-agent +15 -0
- data/bin/server-rerun +1 -1
- data/bin/server-write-new-nodes +2 -2
- data/config/jeweler.rb +52 -0
- data/config/requirements.rb +1 -9
- data/examples/basic.rb +10 -10
- data/examples/deploy.rb +5 -0
- data/examples/fairchild.rb +28 -0
- data/examples/fairchild_chef.rb +19 -0
- data/examples/maize.rb +37 -0
- data/examples/paparazzi.conf.erb +21 -0
- data/generators/poolspec/poolspec_generator.rb +1 -9
- data/generators/poolspec/templates/pool_spec_template.erb +0 -1
- data/lib/poolparty/{aska/aska.rb → aska.rb} +19 -28
- data/lib/poolparty/base_packages/haproxy.rb +48 -31
- data/lib/poolparty/base_packages/heartbeat.rb +6 -62
- data/lib/poolparty/base_packages/poolparty.rb +5 -105
- data/lib/poolparty/base_packages/ruby.rb +4 -4
- data/lib/poolparty/base_packages/runit.rb +1 -1
- data/lib/poolparty/core/array.rb +21 -3
- data/lib/poolparty/core/hash.rb +45 -10
- data/lib/poolparty/core/kernel.rb +30 -8
- data/lib/poolparty/core/nil.rb +8 -0
- data/lib/poolparty/core/object.rb +34 -25
- data/lib/poolparty/core/ordered_hash.rb +99 -0
- data/lib/poolparty/core/string.rb +112 -15
- data/lib/poolparty/core/symbol.rb +10 -0
- data/lib/poolparty/dependencies.rb +49 -0
- data/lib/poolparty/dependency_resolver/chef_resolver.rb +237 -0
- data/lib/poolparty/dependency_resolver/dependency_resolver.rb +42 -0
- data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +29 -0
- data/lib/poolparty/{dependency_resolutions → dependency_resolver}/puppet.rb +34 -29
- data/lib/poolparty/dependency_resolver/puppet_resolver.rb +188 -0
- data/lib/poolparty/exceptions/MasterException.rb +2 -2
- data/lib/poolparty/exceptions/RemoteException.rb +1 -1
- data/lib/poolparty/exceptions/dependency_resolver_exception.rb +5 -0
- data/lib/poolparty/exceptions/package_exception.rb +7 -0
- data/lib/poolparty/extra/deployments.rb +7 -7
- data/lib/poolparty/helpers/binary.rb +26 -32
- data/lib/poolparty/helpers/console.rb +1 -1
- data/lib/poolparty/helpers/display.rb +1 -5
- data/lib/poolparty/helpers/hash_printer.rb +44 -0
- data/lib/poolparty/helpers/loading.rb +4 -0
- data/lib/poolparty/helpers/optioner.rb +39 -25
- data/lib/poolparty/lite.rb +30 -0
- data/lib/poolparty/modules/callbacks.rb +44 -0
- data/lib/poolparty/modules/cloud_dsl.rb +38 -8
- data/lib/poolparty/modules/cloud_resourcer.rb +67 -97
- data/lib/poolparty/modules/daemonizable.rb +141 -0
- data/lib/poolparty/modules/definable_resource.rb +8 -14
- data/lib/poolparty/modules/file_writer.rb +25 -17
- data/lib/poolparty/modules/pinger.rb +28 -0
- data/lib/poolparty/modules/pretty_printer.rb +1 -1
- data/lib/poolparty/modules/resourcing_dsl.rb +55 -40
- data/lib/poolparty/modules/searchable_paths.rb +91 -0
- data/lib/poolparty/modules/thread_pool.rb +107 -106
- data/lib/poolparty/modules/user_helpers.rb +20 -0
- data/lib/poolparty/monitors/base_monitor.rb +18 -75
- data/lib/poolparty/monitors/monitor_rack.rb +123 -0
- data/lib/poolparty/monitors/monitors/favicon_monitor.rb +12 -0
- data/lib/poolparty/monitors/monitors/load_monitor.rb +9 -0
- data/lib/poolparty/monitors/monitors/memory_monitor.rb +9 -9
- data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +77 -0
- data/lib/poolparty/monitors/monitors/stats_monitor.rb +187 -0
- data/lib/poolparty/monitors/monitors/time_monitor.rb +15 -0
- data/lib/poolparty/net/init.rb +10 -0
- data/lib/poolparty/net/remote_bases.rb +20 -0
- data/lib/poolparty/net/remote_instance.rb +26 -44
- data/lib/poolparty/net/remoter/cloud_control.rb +24 -0
- data/lib/poolparty/net/remoter/connections.rb +172 -0
- data/lib/poolparty/net/remoter/interactive.rb +45 -0
- data/lib/poolparty/net/remoter_base.rb +116 -111
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +245 -0
- data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +53 -0
- data/lib/poolparty/net/{remote_bases → remoter_bases}/ec2/ec2_response_object.rb +2 -4
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +12 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +33 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -0
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +158 -0
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +71 -0
- data/lib/poolparty/plugins/apache2/apache.rb +340 -0
- data/lib/poolparty/plugins/bind.rb +11 -0
- data/lib/poolparty/plugins/chef.rb +173 -0
- data/lib/poolparty/plugins/chef_deploy.rb +58 -0
- data/lib/poolparty/plugins/deploy_directory.rb +49 -0
- data/lib/poolparty/plugins/gem_package.rb +61 -0
- data/lib/poolparty/plugins/git.rb +41 -24
- data/lib/poolparty/plugins/line_in_file.rb +30 -0
- data/lib/poolparty/plugins/nanite.rb +41 -0
- data/lib/poolparty/plugins/rails_deploy.rb +76 -0
- data/lib/poolparty/plugins/svn.rb +56 -39
- data/lib/poolparty/poolparty/cloud.rb +137 -167
- data/lib/poolparty/poolparty/{base.rb → default.rb} +62 -25
- data/lib/poolparty/poolparty/key.rb +78 -0
- data/lib/poolparty/poolparty/loggable.rb +28 -27
- data/lib/poolparty/poolparty/neighborhoods.rb +102 -0
- data/lib/poolparty/poolparty/plugin.rb +53 -18
- data/lib/poolparty/poolparty/plugin_model.rb +20 -23
- data/lib/poolparty/poolparty/pool.rb +34 -26
- data/lib/poolparty/poolparty/poolparty_base_class.rb +190 -0
- data/lib/poolparty/poolparty/resource.rb +92 -178
- data/lib/poolparty/poolparty/script.rb +32 -20
- data/lib/poolparty/poolparty/service.rb +44 -0
- data/lib/poolparty/poolparty/template.rb +27 -0
- data/lib/poolparty/provision/boot_strapper.rb +164 -0
- data/lib/poolparty/provision/configurations/chef.rb +26 -0
- data/lib/poolparty/provision/configurations/puppet.rb +28 -0
- data/lib/poolparty/provision/dr_configure.rb +142 -0
- data/lib/poolparty/resources/cron.rb +51 -0
- data/lib/poolparty/resources/directory.rb +36 -0
- data/lib/poolparty/resources/exec.rb +47 -0
- data/lib/poolparty/resources/file.rb +73 -0
- data/lib/poolparty/resources/host.rb +37 -0
- data/lib/poolparty/resources/mount.rb +45 -0
- data/lib/poolparty/resources/package.rb +41 -0
- data/lib/poolparty/resources/remote_file.rb +52 -0
- data/lib/poolparty/resources/service.rb +41 -0
- data/lib/poolparty/resources/sshkey.rb +49 -0
- data/lib/poolparty/resources/symlink.rb +43 -0
- data/lib/poolparty/{poolparty/resources/remote_user.rb → resources/user.rb} +1 -5
- data/lib/poolparty/resources/variable.rb +34 -0
- data/lib/poolparty/resources.rb +42 -0
- data/lib/poolparty/schema.rb +79 -0
- 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/erlang_cookie_maker +6 -0
- data/lib/poolparty/templates/gemrc_template +11 -0
- data/lib/poolparty/templates/ha.cf +1 -1
- data/lib/poolparty/templates/haproxy.conf +29 -27
- data/lib/poolparty/templates/haresources +2 -2
- data/lib/poolparty/templates/monitor.ru +16 -0
- data/lib/poolparty/templates/php.ini.erb +1253 -0
- data/lib/poolparty/templates/puppet/add_puppet_to_hosts +6 -0
- data/lib/poolparty/templates/puppet/puppet.conf +2 -0
- data/lib/poolparty/templates/puppet/puppetrunner +14 -0
- data/lib/poolparty/templates/puppet/site.pp +4 -0
- data/lib/poolparty/templates/puppetrunner +11 -5
- data/lib/poolparty/verification/verifier_base.rb +17 -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 +34 -0
- data/lib/poolparty/verification/verify.rb +76 -0
- data/lib/poolparty.rb +76 -22
- data/lib/poolpartycl.rb +66 -1
- data/script/destroy +1 -1
- data/script/generate +1 -1
- data/spec/bin/bin_spec_helper.rb +7 -0
- data/spec/bin/fixtures/bin_cloud_for_test.rb +13 -0
- data/spec/bin/server-list-active_spec.rb +24 -0
- data/spec/poolparty/aska/aska_spec.rb +5 -5
- data/spec/poolparty/base_packages/haproxy_spec.rb +2 -8
- data/spec/poolparty/base_packages/heartbeat_spec.rb +3 -26
- data/spec/poolparty/bin/console_spec.rb +11 -29
- data/spec/poolparty/core/array_spec.rb +20 -3
- data/spec/poolparty/core/hash_spec.rb +30 -28
- data/spec/poolparty/core/object_spec.rb +2 -3
- data/spec/poolparty/core/ordered_hash_spec.rb +48 -0
- data/spec/poolparty/core/string_spec.rb +1 -27
- data/spec/poolparty/dependencies_spec.rb +11 -0
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +107 -0
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +122 -0
- data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +16 -0
- data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +121 -0
- data/spec/poolparty/extra/deployments_spec.rb +9 -5
- data/spec/poolparty/fixtures/clouds.json +128 -0
- data/spec/poolparty/fixtures/test_template.erb +1 -0
- data/spec/poolparty/helpers/binary_spec.rb +1 -1
- data/spec/poolparty/helpers/hash_printer_spec.rb +34 -0
- data/spec/poolparty/helpers/optioner_spec.rb +1 -1
- data/spec/poolparty/id_rsa +27 -0
- data/spec/poolparty/modules/cloud_resourcer_spec.rb +26 -111
- data/spec/poolparty/modules/definable_resource.rb +1 -1
- data/spec/poolparty/modules/file_writer_spec.rb +10 -4
- data/spec/poolparty/modules/searchable_paths_spec.rb +76 -0
- data/spec/poolparty/monitors/base_monitor_spec.rb +112 -111
- data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +18 -16
- data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +48 -47
- data/spec/poolparty/net/remote_instance_spec.rb +9 -73
- data/spec/poolparty/net/remote_spec.rb +287 -310
- data/spec/poolparty/net/remoter_base_spec.rb +3 -56
- data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +24 -0
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +114 -0
- data/spec/poolparty/net/{remote_bases → remoter_bases}/ec2_spec.rb +51 -53
- data/spec/poolparty/net/remoter_spec.rb +96 -86
- data/spec/poolparty/plugins/chef_spec.rb +7 -0
- data/spec/poolparty/plugins/deploydirectory_spec.rb +51 -52
- data/spec/poolparty/plugins/git_spec.rb +16 -20
- data/spec/poolparty/plugins/line_spec.rb +14 -8
- data/spec/poolparty/poolparty/cloud_spec.rb +85 -183
- data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +3 -4
- data/spec/poolparty/poolparty/configurers/ruby_spec.rb +7 -23
- data/spec/poolparty/poolparty/{base_spec.rb → default_spec.rb} +44 -41
- data/spec/poolparty/poolparty/example_spec.rb +43 -11
- data/spec/poolparty/poolparty/key_spec.rb +42 -0
- data/spec/poolparty/poolparty/neighborhoods_spec.rb +65 -0
- data/spec/poolparty/poolparty/plugin_model_spec.rb +14 -24
- data/spec/poolparty/poolparty/plugin_spec.rb +25 -96
- data/spec/poolparty/poolparty/pool_spec.rb +3 -1
- data/spec/poolparty/poolparty/resource_spec.rb +70 -270
- data/spec/poolparty/poolparty/script_spec.rb +30 -53
- data/spec/poolparty/poolparty/service_spec.rb +5 -0
- data/spec/poolparty/poolparty/template_spec.rb +26 -0
- data/spec/poolparty/poolparty/test_plugins/webserver.rb +8 -25
- data/spec/poolparty/poolparty_base_class_spec.rb +84 -0
- data/spec/poolparty/poolparty_spec.rb +7 -4
- data/spec/poolparty/resources/cron_spec.rb +44 -0
- data/spec/poolparty/resources/directory_spec.rb +40 -0
- data/spec/poolparty/resources/exec_spec.rb +37 -0
- data/spec/poolparty/resources/file_spec.rb +64 -0
- data/spec/poolparty/resources/gem_spec.rb +7 -0
- data/spec/poolparty/resources/host_spec.rb +35 -0
- data/spec/poolparty/resources/package_spec.rb +26 -0
- data/spec/poolparty/resources/service_spec.rb +29 -0
- data/spec/poolparty/resources/sshkey_spec.rb +40 -0
- data/spec/poolparty/resources/symlink_spec.rb +29 -0
- data/spec/poolparty/resources/user_spec.rb +48 -0
- data/spec/poolparty/resources/variable_spec.rb +26 -0
- data/spec/poolparty/schema_spec.rb +53 -0
- data/spec/poolparty/spec_helper.rb +107 -23
- data/spec/poolparty/test_spec_helper.rb +13 -0
- data/tasks/development.rake +85 -69
- data/tasks/poolparty.rake +54 -0
- data/tasks/server.rake +41 -39
- data/tasks/spec.rake +35 -1
- data/test/fixtures/test_template.erb +1 -0
- data/test/poolparty/core/array_test.rb +21 -0
- data/test/poolparty/core/hash_test.rb +34 -0
- data/test/poolparty/core/string_test.rb +29 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +90 -0
- data/test/poolparty/modules/callbacks_test.rb +40 -0
- data/test/poolparty/modules/cloud_dsl_test.rb +60 -0
- data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +54 -0
- data/test/poolparty/net/remoter_test.rb +14 -0
- data/test/poolparty/poolparty/neighborhood_test.rb +23 -0
- data/test/poolparty/poolparty/poolparty_base_class_test.rb +84 -0
- data/test/poolparty/poolparty/template_test.rb +31 -0
- data/test/poolparty/provision/boot_strapper_test.rb +6 -0
- data/test/poolparty/provision/dr_configure_test.rb +6 -0
- data/test/poolparty/verification/verify_test.rb +49 -0
- data/test/test_helper.rb +8 -2
- data/test/test_poolparty.rb +6 -5
- data/vendor/chef/apache2/README.rdoc +59 -0
- data/vendor/chef/apache2/attributes/apache.rb +72 -0
- data/vendor/chef/apache2/definitions/apache_module.rb +36 -0
- data/vendor/chef/apache2/definitions/apache_site.rb +36 -0
- data/vendor/chef/apache2/definitions/web_app.rb +45 -0
- data/vendor/chef/apache2/files/default/apache2_module_conf_generate.pl +41 -0
- data/vendor/chef/apache2/recipes/default.rb +132 -0
- data/vendor/chef/apache2/recipes/mod_alias.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_auth_basic.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_auth_digest.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authn_file.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authnz_ldap.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authz_default.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authz_groupfile.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authz_host.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_authz_user.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_autoindex.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_cgi.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_dav.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_dav_svn.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_deflate.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_dir.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_env.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_expires.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_fcgid.rb +35 -0
- data/vendor/chef/apache2/recipes/mod_headers.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_ldap.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_log_config.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_mime.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_negotiation.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_php5.rb +27 -0
- data/vendor/chef/apache2/recipes/mod_proxy.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_proxy_http.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_python.rb +22 -0
- data/vendor/chef/apache2/recipes/mod_rewrite.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_setenvif.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_ssl.rb +20 -0
- data/vendor/chef/apache2/recipes/mod_status.rb +20 -0
- data/vendor/chef/apache2/templates/default/a2dismod.erb +22 -0
- data/vendor/chef/apache2/templates/default/a2dissite.erb +29 -0
- data/vendor/chef/apache2/templates/default/a2enmod.erb +37 -0
- data/vendor/chef/apache2/templates/default/a2ensite.erb +38 -0
- data/vendor/chef/apache2/templates/default/apache2.conf.erb +630 -0
- data/vendor/chef/apache2/templates/default/default-site.erb +45 -0
- data/vendor/chef/apache2/templates/default/port_apache.erb +2 -0
- data/vendor/chef/apache2/templates/default/ports.conf.erb +6 -0
- data/vendor/chef/apache2/templates/default/web_app.conf.erb +43 -0
- data/vendor/chef/chef-deploy/LICENSE +201 -0
- data/vendor/chef/chef-deploy/README.rdoc +24 -0
- data/vendor/chef/chef-deploy/Rakefile +57 -0
- data/vendor/chef/chef-deploy/TODO +4 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/cached_deploy.rb +230 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +132 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +98 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy.rb +183 -0
- data/vendor/gems/butterfly/History.txt +4 -0
- data/vendor/gems/butterfly/PostInstall.txt +2 -0
- data/vendor/gems/butterfly/README.rdoc +48 -0
- data/vendor/gems/butterfly/Rakefile +62 -0
- data/vendor/gems/butterfly/VERSION.yml +4 -0
- data/vendor/gems/butterfly/bin/flutter +4 -0
- data/vendor/gems/butterfly/butterfly.gemspec +37 -0
- data/vendor/gems/butterfly/examples/config.ru +15 -0
- data/vendor/gems/butterfly/examples/my_app.rb +12 -0
- data/vendor/gems/butterfly/lib/butterfly.rb +14 -0
- data/vendor/gems/butterfly/lib/handler.rb +48 -0
- data/vendor/gems/butterfly/lib/request.rb +29 -0
- data/vendor/gems/butterfly/lib/response.rb +49 -0
- data/vendor/gems/butterfly/script/console +10 -0
- data/vendor/gems/butterfly/script/destroy +14 -0
- data/vendor/gems/butterfly/script/generate +14 -0
- data/vendor/gems/butterfly/test/test_adapter_base.rb +23 -0
- data/vendor/gems/butterfly/test/test_butterfly_request.rb +46 -0
- data/vendor/gems/butterfly/test/test_butterfly_response.rb +43 -0
- data/vendor/gems/butterfly/test/test_butterfly_server.rb +16 -0
- data/vendor/gems/butterfly/test/test_default.rb +12 -0
- data/vendor/gems/butterfly/test/test_helper.rb +6 -0
- data/vendor/gems/dslify/History.txt +4 -0
- data/vendor/gems/dslify/Manifest.txt +25 -0
- data/vendor/gems/dslify/PostInstall.txt +5 -0
- data/vendor/gems/dslify/README.txt +60 -0
- data/vendor/gems/dslify/Rakefile +56 -0
- data/{config → vendor/gems/dslify/config}/hoe.rb +12 -55
- data/vendor/gems/dslify/config/requirements.rb +15 -0
- data/vendor/gems/dslify/dslify.gemspec +40 -0
- data/vendor/gems/dslify/lib/dslify/dslify.rb +76 -0
- data/vendor/gems/dslify/lib/dslify/version.rb +10 -0
- data/vendor/gems/dslify/lib/dslify.rb +7 -0
- data/vendor/gems/dslify/script/console +10 -0
- data/vendor/gems/dslify/script/destroy +14 -0
- data/vendor/gems/dslify/script/generate +14 -0
- data/{script → vendor/gems/dslify/script}/txt2html +4 -4
- data/{setup.rb → vendor/gems/dslify/setup.rb} +3 -3
- data/{tasks → vendor/gems/dslify/tasks}/deployment.rake +4 -18
- data/vendor/gems/dslify/tasks/environment.rake +7 -0
- data/{tasks → vendor/gems/dslify/tasks}/website.rake +0 -0
- data/vendor/gems/dslify/test/test_dslify.rb +138 -0
- data/vendor/gems/dslify/website/index.html +86 -0
- data/vendor/gems/dslify/website/index.txt +83 -0
- data/{website → vendor/gems/dslify/website}/javascripts/rounded_corners_lite.inc.js +0 -0
- data/{website → vendor/gems/dslify/website}/stylesheets/screen.css +18 -27
- data/{website → vendor/gems/dslify/website}/template.html.erb +1 -2
- 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 +61 -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 +119 -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 +102 -0
- data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
- data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
- data/vendor/gems/suitcase/test/test_helper.rb +12 -0
- metadata +370 -343
- data/Capfile +0 -1
- data/Manifest.txt +0 -414
- data/bin/cloud-add-keypair +0 -28
- data/bin/cloud-ensure-provisioning +0 -39
- data/bin/cloud-maintain +0 -30
- data/bin/cloud-refresh +0 -17
- data/bin/cloud-run +0 -18
- data/bin/cloud-stats +0 -17
- data/bin/messenger-get-current-nodes +0 -14
- data/bin/pool +0 -31
- data/bin/pool-describe +0 -8
- data/bin/pool-generate +0 -18
- data/bin/pool-init +0 -28
- data/bin/pool-list +0 -30
- data/bin/pool-start +0 -26
- data/bin/server-build-messenger +0 -27
- data/bin/server-clean-cert-for +0 -15
- data/bin/server-list-responding +0 -24
- 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/lib/erlang/messenger/Emakefile +0 -1
- data/lib/erlang/messenger/Makefile +0 -15
- data/lib/erlang/messenger/README +0 -5
- data/lib/erlang/messenger/Rakefile +0 -72
- data/lib/erlang/messenger/control +0 -11
- data/lib/erlang/messenger/ebin/client.app +0 -19
- data/lib/erlang/messenger/ebin/client_app.beam +0 -0
- data/lib/erlang/messenger/ebin/client_server.beam +0 -0
- data/lib/erlang/messenger/ebin/erl_crash.dump +0 -10326
- data/lib/erlang/messenger/ebin/master.app +0 -19
- data/lib/erlang/messenger/ebin/master_app.beam +0 -0
- data/lib/erlang/messenger/ebin/node.app +0 -19
- data/lib/erlang/messenger/ebin/node_app.beam +0 -0
- data/lib/erlang/messenger/ebin/packager.app +0 -19
- data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client_old.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +0 -1
- data/lib/erlang/messenger/ebin/pm_client_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +0 -1
- 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_rel-0.1.rel +0 -1
- 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/pm_spawner.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_strings.beam +0 -0
- data/lib/erlang/messenger/ebin/utils.beam +0 -0
- data/lib/erlang/messenger/include/defines.hrl +0 -27
- data/lib/erlang/messenger/lib/eunit/AUTHORS +0 -2
- data/lib/erlang/messenger/lib/eunit/CHANGELOG +0 -14
- data/lib/erlang/messenger/lib/eunit/COPYING +0 -504
- data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
- data/lib/erlang/messenger/lib/eunit/NOTES +0 -276
- data/lib/erlang/messenger/lib/eunit/README +0 -3
- data/lib/erlang/messenger/lib/eunit/doc/edoc-info +0 -3
- data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
- data/lib/erlang/messenger/lib/eunit/doc/eunit.html +0 -172
- data/lib/erlang/messenger/lib/eunit/doc/index.html +0 -17
- data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +0 -12
- data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +0 -984
- data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +0 -980
- data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +0 -11
- data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +0 -55
- 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.app +0 -21
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +0 -1
- 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/examples/eunit_examples.erl +0 -339
- data/lib/erlang/messenger/lib/eunit/examples/fib.erl +0 -19
- data/lib/erlang/messenger/lib/eunit/examples/tests.txt +0 -1
- data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +0 -313
- data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
- data/lib/erlang/messenger/lib/eunit/src/autoload.erl +0 -388
- data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +0 -243
- data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +0 -21
- data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +0 -1
- data/lib/erlang/messenger/lib/eunit/src/eunit.erl +0 -196
- data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +0 -102
- data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +0 -798
- data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +0 -48
- data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +0 -682
- data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +0 -552
- data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +0 -157
- data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +0 -340
- data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +0 -64
- data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +0 -334
- data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +0 -45
- data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +0 -272
- data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +0 -409
- data/lib/erlang/messenger/lib/eunit/sys.config +0 -9
- data/lib/erlang/messenger/lib/eunit/vsn.mk +0 -1
- data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_client_rel-0.1.script +0 -238
- data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.script +0 -239
- data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_node_rel-0.1.script +0 -237
- data/lib/erlang/messenger/src/client_app.erl +0 -39
- data/lib/erlang/messenger/src/client_server.erl +0 -60
- data/lib/erlang/messenger/src/master_app.erl +0 -39
- data/lib/erlang/messenger/src/node_app.erl +0 -39
- data/lib/erlang/messenger/src/pm_client.erl +0 -49
- data/lib/erlang/messenger/src/pm_client_supervisor.erl +0 -38
- data/lib/erlang/messenger/src/pm_cluster.erl +0 -61
- data/lib/erlang/messenger/src/pm_event_manager.erl +0 -27
- data/lib/erlang/messenger/src/pm_master.erl +0 -215
- data/lib/erlang/messenger/src/pm_master_event_handler.erl +0 -72
- data/lib/erlang/messenger/src/pm_master_supervisor.erl +0 -39
- data/lib/erlang/messenger/src/pm_node.erl +0 -200
- data/lib/erlang/messenger/src/pm_node_supervisor.erl +0 -38
- data/lib/erlang/messenger/src/pm_packager.erl +0 -76
- data/lib/erlang/messenger/src/pm_spawner.erl +0 -213
- data/lib/erlang/messenger/src/pm_strings.erl +0 -11
- data/lib/erlang/messenger/src/utils.erl +0 -73
- data/lib/erlang/messenger/useful_snippets +0 -17
- data/lib/poolparty/capistrano.rb +0 -18
- data/lib/poolparty/config/postlaunchmessage.txt +0 -5
- data/lib/poolparty/dependency_resolutions/base.rb +0 -12
- data/lib/poolparty/modules/configurable.rb +0 -36
- data/lib/poolparty/modules/method_missing_sugar.rb +0 -58
- data/lib/poolparty/monitors/monitors/cpu_monitor.rb +0 -15
- data/lib/poolparty/monitors/monitors/web_monitor.rb +0 -18
- data/lib/poolparty/net/messenger.rb +0 -72
- data/lib/poolparty/net/remote.rb +0 -38
- data/lib/poolparty/net/remote_bases/ec2.rb +0 -190
- data/lib/poolparty/net/remoter.rb +0 -343
- data/lib/poolparty/plugins/deploydirectory.rb +0 -71
- data/lib/poolparty/plugins/line.rb +0 -77
- data/lib/poolparty/plugins/rsyncmirror.rb +0 -26
- data/lib/poolparty/poolparty/custom_resource.rb +0 -45
- data/lib/poolparty/poolparty/resources/class_package.rb +0 -105
- data/lib/poolparty/poolparty/resources/conditional.rb +0 -67
- data/lib/poolparty/poolparty/resources/cron.rb +0 -14
- data/lib/poolparty/poolparty/resources/custom_service.rb +0 -30
- data/lib/poolparty/poolparty/resources/directory.rb +0 -26
- data/lib/poolparty/poolparty/resources/exec.rb +0 -28
- data/lib/poolparty/poolparty/resources/file.rb +0 -23
- data/lib/poolparty/poolparty/resources/gem_package.rb +0 -52
- data/lib/poolparty/poolparty/resources/host.rb +0 -14
- data/lib/poolparty/poolparty/resources/mount.rb +0 -22
- data/lib/poolparty/poolparty/resources/package.rb +0 -24
- data/lib/poolparty/poolparty/resources/remote_file.rb +0 -26
- data/lib/poolparty/poolparty/resources/service.rb +0 -21
- data/lib/poolparty/poolparty/resources/sshkey.rb +0 -23
- data/lib/poolparty/poolparty/resources/symlink.rb +0 -25
- data/lib/poolparty/poolparty/resources/variable.rb +0 -32
- data/lib/poolparty/provisioners/capistrano/capistrano.rb +0 -127
- data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +0 -58
- data/lib/poolparty/provisioners/capistrano/recipies/base.rb +0 -104
- data/lib/poolparty/provisioners/capistrano/recipies/master.rb +0 -121
- data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +0 -12
- data/lib/poolparty/provisioners/provisioner_base.rb +0 -204
- data/lib/poolparty/spec/core/string.rb +0 -16
- 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/templates/puppet.conf +0 -26
- data/lib/poolparty/templates/puppetcleaner +0 -12
- data/lib/poolparty/templates/puppetrerun +0 -22
- data/lib/poolparty/version.rb +0 -9
- data/lib/poolpartyspec.rb +0 -34
- data/log/pool.log +0 -0
- data/poolparty.gemspec +0 -580
- data/spec/poolparty/dependency_resolutions/base_spec.rb +0 -11
- data/spec/poolparty/modules/configurable_spec.rb +0 -29
- data/spec/poolparty/net/log/pool.log +0 -0
- data/spec/poolparty/net/messenger_spec.rb +0 -16
- data/spec/poolparty/plugins/svn_spec.rb +0 -16
- data/spec/poolparty/poolparty/custom_resource_spec.rb +0 -120
- data/spec/poolparty/poolparty/resources/class_package_spec.rb +0 -120
- data/spec/poolparty/poolparty/resources/conditional_spec.rb +0 -77
- data/spec/poolparty/poolparty/resources/cron_spec.rb +0 -50
- data/spec/poolparty/poolparty/resources/directory_spec.rb +0 -40
- data/spec/poolparty/poolparty/resources/exec_spec.rb +0 -37
- data/spec/poolparty/poolparty/resources/file_spec.rb +0 -40
- data/spec/poolparty/poolparty/resources/gem_spec.rb +0 -46
- data/spec/poolparty/poolparty/resources/host_spec.rb +0 -28
- data/spec/poolparty/poolparty/resources/package_spec.rb +0 -44
- data/spec/poolparty/poolparty/resources/remote_file_spec.rb +0 -40
- data/spec/poolparty/poolparty/resources/service_spec.rb +0 -45
- data/spec/poolparty/poolparty/resources/sshkey_spec.rb +0 -48
- data/spec/poolparty/poolparty/resources/symlink_spec.rb +0 -22
- data/spec/poolparty/poolparty/resources/user_spec.rb +0 -38
- data/spec/poolparty/poolparty/resources/variable_spec.rb +0 -24
- data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +0 -27
- data/spec/poolparty/provisioners/provisioner_base_spec.rb +0 -120
- data/spec/poolparty/spec/core/string_spec.rb +0 -57
- data/website/index.html +0 -107
- data/website/index.txt +0 -95
- data/website/stylesheets/code.css +0 -29
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
2
|
|
|
3
|
-
class TestRemoteClass
|
|
3
|
+
class TestRemoteClass < PoolParty::Remote::RemoteInstance
|
|
4
4
|
include CloudResourcer
|
|
5
5
|
include PoolParty::Remote
|
|
6
|
-
|
|
7
|
-
def keypair
|
|
8
|
-
"fake_keypair"
|
|
9
|
-
end
|
|
10
6
|
end
|
|
11
7
|
|
|
12
8
|
describe "RemoterBase" do
|
|
@@ -20,7 +16,8 @@ describe "RemoterBase" do
|
|
|
20
16
|
%w(launch_new_instance! terminate_instance describe_instance instances_list).each do |method|
|
|
21
17
|
eval <<-EOE
|
|
22
18
|
it "should raise an exception if #{method} is not defined as a method" do
|
|
23
|
-
|
|
19
|
+
# pending # Weird .should raise_error
|
|
20
|
+
lambda { @tr.class.#{method} }.should raise_error
|
|
24
21
|
end
|
|
25
22
|
it "should not raise an exception if #{method} is defined as a method" do
|
|
26
23
|
lambda {
|
|
@@ -33,56 +30,6 @@ describe "RemoterBase" do
|
|
|
33
30
|
end
|
|
34
31
|
EOE
|
|
35
32
|
end
|
|
36
|
-
describe "lists" do
|
|
37
|
-
before(:each) do
|
|
38
|
-
@tr = TestClass.new
|
|
39
|
-
stub_list_of_instances_for(@tr)
|
|
40
|
-
end
|
|
41
|
-
it "should gather a list of the running instances" do
|
|
42
|
-
@tr.list_of_running_instances.map {|a| a.name }.should == ["master", "node1"]
|
|
43
|
-
end
|
|
44
|
-
it "should be able to gather a list of the pending instances" do
|
|
45
|
-
@tr.list_of_pending_instances.map {|a| a.name }.should == ["node3"]
|
|
46
|
-
end
|
|
47
|
-
it "should be able to gather a list of the terminating instances" do
|
|
48
|
-
@tr.list_of_terminating_instances.map {|a| a.name }.should == []
|
|
49
|
-
end
|
|
50
|
-
it "should be able to gather a list of the non-terminated instances" do
|
|
51
|
-
@tr.list_of_nonterminated_instances.map {|a| a.name }.should == ["master", "node1", "node3"]
|
|
52
|
-
end
|
|
53
|
-
it "should return a list of remote instances" do
|
|
54
|
-
@tr.remote_instances_list.first.class.should == PoolParty::Remote::RemoteInstance
|
|
55
|
-
end
|
|
56
|
-
describe "by keypairs" do
|
|
57
|
-
it "should be able to grab all the alist keypairs" do
|
|
58
|
-
@tr.list_of_instances("fake_keypair").map {|a| a[:name] }.should == ["master", "node1", "node2", "node3"]
|
|
59
|
-
end
|
|
60
|
-
it "should be able to grab all the blist keypairs" do
|
|
61
|
-
@tr.list_of_instances("blist").map {|a| a[:name] }.should == ["node4"]
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
describe "get by name" do
|
|
65
|
-
it "should fetch the instance by number " do
|
|
66
|
-
@tr.get_instance_by_number(1).name.should == "node1"
|
|
67
|
-
end
|
|
68
|
-
it "should fetch the master by number 0" do
|
|
69
|
-
@tr.get_instance_by_number(0).name.should == "master"
|
|
70
|
-
end
|
|
71
|
-
it "should not throw a fit if the node doesn't exist" do
|
|
72
|
-
lambda {@tr.get_instance_by_number(1000)}.should_not raise_error
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
33
|
|
|
77
|
-
describe "adding custom install tasks (like set_hostname, for example)" do
|
|
78
|
-
before(:each) do
|
|
79
|
-
@master = Object.new
|
|
80
|
-
@master.stub!(:ip).and_return "192.68.0.1"
|
|
81
|
-
@tr = TestClass.new
|
|
82
|
-
@tr.stub!(:master).and_return @master
|
|
83
|
-
end
|
|
84
|
-
it "should have the method custom_install_tasks" do;@tr.respond_to?(:custom_install_tasks_for).should == true;end
|
|
85
|
-
it "should have the method custom_configure_tasks" do;@tr.respond_to?(:custom_configure_tasks_for).should == true;end
|
|
86
|
-
end
|
|
87
34
|
end
|
|
88
35
|
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
class TestEC2Class < Ec2
|
|
2
|
+
include CloudResourcer
|
|
3
|
+
include CloudDsl
|
|
4
|
+
include Dslify
|
|
5
|
+
|
|
6
|
+
default_options PoolParty::Default.default_options.merge({:access_key => "Not an access key",
|
|
7
|
+
:secret_access_key => "not a secret access key", :keypair => 'id_rsa'})
|
|
8
|
+
|
|
9
|
+
def ami;"ami-abc123";end
|
|
10
|
+
def size; "small";end
|
|
11
|
+
def security_group; "default";end
|
|
12
|
+
def ebs_volume_id; "ebs_volume_id";end
|
|
13
|
+
def availabilty_zone; "us-east-1a";end
|
|
14
|
+
def verbose; false; end
|
|
15
|
+
def describe_instances(o={})
|
|
16
|
+
response_list_of_instances
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class TestEc2RemoteInstance < PoolParty::Remote::Ec2RemoteInstance
|
|
21
|
+
def initialize(opts, p=nil)
|
|
22
|
+
super
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
|
2
|
+
require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
|
|
3
|
+
|
|
4
|
+
include PoolParty::Remote
|
|
5
|
+
# include Aska
|
|
6
|
+
|
|
7
|
+
# require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
describe "Ec2RemoteInstance" do
|
|
11
|
+
before(:each) do
|
|
12
|
+
@cloud = TestCloud.new :test_remoter_base_cloud
|
|
13
|
+
@ec2 = TestEc2RemoteInstance.new( {:name => "node3"}, TestEC2Class.new(@cloud) )
|
|
14
|
+
# node3 stubbed as {:ip=>"192.168.0.3", :keypair=>"fake_keypair", :status=>"pending", :name=>"node3", :launching_time=>Time.now
|
|
15
|
+
@ec2.my_cloud.stub!(:describe_instances).and_return response_list_of_instances
|
|
16
|
+
end
|
|
17
|
+
it "should require options" do
|
|
18
|
+
lambda {TestEc2RemoteInstance.new()}.should raise_error
|
|
19
|
+
end
|
|
20
|
+
it "should have the name set in the options" do
|
|
21
|
+
@ec2.respond_to?(:name).should == false
|
|
22
|
+
@ec2.options.keys.include?(:name).should == true
|
|
23
|
+
@ec2.name.should == 'node3'
|
|
24
|
+
end
|
|
25
|
+
it "should have access to parent cloud options" do
|
|
26
|
+
@ec2.my_cloud.class.should == TestEC2Class
|
|
27
|
+
@ec2.my_cloud.should respond_to(:describe_instances)
|
|
28
|
+
@ec2.my_cloud.size.should == 'small'
|
|
29
|
+
end
|
|
30
|
+
it "should have instance description hash mapped to methods" do
|
|
31
|
+
# puts "<ol>"
|
|
32
|
+
# @ec2.my_cloud.describe_instances.each{|i| puts "<li>#{i.inspect}</li>"}
|
|
33
|
+
# puts " </ol>"
|
|
34
|
+
@ec2.status.should == 'pending'
|
|
35
|
+
@ec2.name.should == 'node3'
|
|
36
|
+
@ec2.ip.should == '192.168.0.3'
|
|
37
|
+
@ec2.launching_time.should_not be_nil
|
|
38
|
+
@ec2.valid?.should be_true
|
|
39
|
+
end
|
|
40
|
+
it "should not be the master" do
|
|
41
|
+
@ec2.master?.should_not be_true
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
describe "Remote Instance" do
|
|
51
|
+
before(:each) do
|
|
52
|
+
setup
|
|
53
|
+
@valid_hash = {:ip => "127.0.0.1", :name => "master"}
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
describe "configurable" do
|
|
57
|
+
it "should set the options sent in the options, overiding passed option with found instance values" do
|
|
58
|
+
@ec2 = TestEc2RemoteInstance.new(@valid_hash)
|
|
59
|
+
@ec2.ip.should == "127.0.0.1"
|
|
60
|
+
end
|
|
61
|
+
it "should set the options sent by the parent" do
|
|
62
|
+
@obj = Object.new
|
|
63
|
+
@obj.stub!(:options).and_return({:dude => "tte"})
|
|
64
|
+
@ec2 = @ec2 = TestEc2RemoteInstance.new(@valid_hash, @obj)
|
|
65
|
+
@ec2.dude.should == "tte"
|
|
66
|
+
end
|
|
67
|
+
it "should not overwrite the options that are already set" do
|
|
68
|
+
@obj = Object.new
|
|
69
|
+
@obj.stub!(:options).and_return({:ip => "172.176.0.1"})
|
|
70
|
+
@ec2 = TestEc2RemoteInstance.new(@valid_hash, @obj)
|
|
71
|
+
@ec2.ip.should == "127.0.0.1"
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
it "should create a remote instance with a Hash" do
|
|
75
|
+
@ec2 = TestEc2RemoteInstance.new(@valid_hash)
|
|
76
|
+
@ec2.valid?.should == true
|
|
77
|
+
end
|
|
78
|
+
it "should not be valid if there is no ip associated" do
|
|
79
|
+
@ec2 = TestEc2RemoteInstance.new({:ip => nil})
|
|
80
|
+
@ec2.valid?.should == false
|
|
81
|
+
end
|
|
82
|
+
it "should not be valid if there is no name associated" do
|
|
83
|
+
@ec2 = TestEc2RemoteInstance.new(@valid_hash.merge({:name => nil}))
|
|
84
|
+
@ec2.valid?.should == false
|
|
85
|
+
end
|
|
86
|
+
describe "status" do
|
|
87
|
+
it "should say it is running when the status == running" do
|
|
88
|
+
TestEc2RemoteInstance.new(@valid_hash.merge(:status => "running")).running?.should == true
|
|
89
|
+
end
|
|
90
|
+
it "should say it is terminating when the status == shutting down" do
|
|
91
|
+
TestEc2RemoteInstance.new(@valid_hash.merge(:name => "node4", :status => "shutting")).terminating?.should == true
|
|
92
|
+
end
|
|
93
|
+
it "should say it is terminated when the status == terminated" do
|
|
94
|
+
TestEc2RemoteInstance.new(@valid_hash.merge(:status => "terminated")).terminated?.should == true
|
|
95
|
+
end
|
|
96
|
+
it "should not say it is running when it is pending" do
|
|
97
|
+
TestEc2RemoteInstance.new(@valid_hash.merge(:status => "pending") ).running?.should == false
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
describe "methods" do
|
|
101
|
+
before(:each) do
|
|
102
|
+
@ec2 = TestEc2RemoteInstance.new(@valid_hash.merge(:status => "running"))
|
|
103
|
+
end
|
|
104
|
+
it "should give the elapsed time" do
|
|
105
|
+
@ec2.stub!(:launching_time).and_return(30.minutes.ago)
|
|
106
|
+
@ec2.elapsed_runtime.should be >= 1800
|
|
107
|
+
end
|
|
108
|
+
it "should say that it is responding? if responding is not nil" do
|
|
109
|
+
@ec2.running?.should == true
|
|
110
|
+
@ec2.responding?.should == true
|
|
111
|
+
# @ec2.responding.should_not be_nil
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -1,35 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
2
|
# include Remote
|
|
3
|
+
require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
|
|
4
4
|
|
|
5
|
-
class TestEC2Class
|
|
6
|
-
include PoolParty::Remote::RemoterBase
|
|
7
|
-
include Ec2
|
|
8
|
-
include CloudResourcer
|
|
9
|
-
include CloudDsl
|
|
10
|
-
|
|
11
|
-
def keypair
|
|
12
|
-
"fake_keypair"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def ami;"ami-abc123";end
|
|
16
|
-
def size; "small";end
|
|
17
|
-
def security_group; "default";end
|
|
18
|
-
def ebs_volume_id; "ebs_volume_id";end
|
|
19
|
-
def availabilty_zone; "us-east-1a";end
|
|
20
|
-
def verbose
|
|
21
|
-
false
|
|
22
|
-
end
|
|
23
|
-
def ec2
|
|
24
|
-
@ec2 ||= EC2::Base.new( :access_key_id => "not_an_access_key", :secret_access_key => "not_a_secret_access_key")
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
5
|
describe "ec2 remote base" do
|
|
28
6
|
before(:each) do
|
|
29
|
-
|
|
30
|
-
@tr = TestEC2Class.new
|
|
7
|
+
@cloud = TestCloud.new :test_remoter_base_cloud
|
|
8
|
+
@tr = TestEC2Class.new(@cloud)
|
|
31
9
|
stub_remoter_for(@tr)
|
|
32
|
-
@tr.stub!(:get_instances_description).and_return response_list_of_instances
|
|
10
|
+
# @tr.stub!(:get_instances_description).and_return response_list_of_instances
|
|
33
11
|
end
|
|
34
12
|
%w(launch_new_instance! terminate_instance! describe_instance describe_instances create_snapshot).each do |method|
|
|
35
13
|
eval <<-EOE
|
|
@@ -54,39 +32,43 @@ describe "ec2 remote base" do
|
|
|
54
32
|
end
|
|
55
33
|
describe "launching" do
|
|
56
34
|
before(:each) do
|
|
57
|
-
@
|
|
35
|
+
@ret_hash = {:instance_id => "1", :name => "instance"}
|
|
36
|
+
@tr.ec2({}).stub!(:run_instances).and_return @ret_hash
|
|
58
37
|
end
|
|
59
38
|
it "should call run_instances on the ec2 Base class when asking to launch_new_instance!" do
|
|
60
|
-
@tr.ec2.should_receive(:run_instances).and_return true
|
|
39
|
+
# @tr.ec2.should_receive(:run_instances).and_return true
|
|
61
40
|
@tr.launch_new_instance!
|
|
62
41
|
end
|
|
63
42
|
it "should use a specific security group if one is specified" do
|
|
64
43
|
@tr.stub!(:security_group).and_return "web"
|
|
65
|
-
@tr.ec2.should_receive(:run_instances).
|
|
66
|
-
@tr.launch_new_instance!
|
|
67
|
-
end
|
|
68
|
-
it "should use the default security group if none is specified" do
|
|
69
|
-
@tr.ec2.should_receive(:run_instances).with(hash_including(:group_id => ['default'])).and_return true
|
|
44
|
+
@tr.ec2.should_receive(:run_instances).and_return @ret_hash
|
|
70
45
|
@tr.launch_new_instance!
|
|
71
46
|
end
|
|
47
|
+
# it "should use the default security group if none is specified" do
|
|
48
|
+
# @tr.ec2.should_receive(:run_instances).with(hash_including(:group_id => ['default'])).and_return @ret_hash
|
|
49
|
+
# @tr.launch_new_instance!
|
|
50
|
+
# end
|
|
72
51
|
it "should get the hash response from EC2ResponseObject" do
|
|
73
|
-
EC2ResponseObject.should_receive(:get_hash_from_response).and_return
|
|
74
|
-
@tr.launch_new_instance!
|
|
52
|
+
EC2ResponseObject.should_receive(:get_hash_from_response).and_return @ret_hash
|
|
53
|
+
@tr.launch_new_instance! :keypair => "keys"
|
|
75
54
|
end
|
|
76
55
|
end
|
|
77
56
|
describe "terminating" do
|
|
78
57
|
it "should call terminate_instance! on ec2 when asking to terminate_instance!" do
|
|
79
58
|
@tr.ec2.should_receive(:terminate_instances).with(:instance_id => "abc-123").and_return true
|
|
80
|
-
@tr.terminate_instance!("abc-123")
|
|
59
|
+
@tr.terminate_instance!({:instance_id => "abc-123"})
|
|
81
60
|
end
|
|
82
61
|
end
|
|
83
62
|
describe "describe_instance" do
|
|
84
|
-
it "should
|
|
85
|
-
@tr.
|
|
86
|
-
|
|
63
|
+
it "should return a default instance if called with no paramters" do
|
|
64
|
+
@tr.describe_instances(:id => "i-1234").size.should > 0
|
|
65
|
+
end
|
|
66
|
+
it "should return nil if the cloud has no instances" do
|
|
67
|
+
@tr.stub!(:describe_instances).and_return []
|
|
68
|
+
@tr.describe_instance.nil?.should == true
|
|
87
69
|
end
|
|
88
70
|
end
|
|
89
|
-
describe "get_instances_description" do
|
|
71
|
+
describe "get_instances_description" do #NOTE MF: this test is sorta bogus since it is just checking what we stubbed
|
|
90
72
|
it "should return a hash" do
|
|
91
73
|
@tr.describe_instances.class.should == Array
|
|
92
74
|
end
|
|
@@ -97,26 +79,42 @@ describe "ec2 remote base" do
|
|
|
97
79
|
@tr.describe_instances[1][:name].should == "node1"
|
|
98
80
|
end
|
|
99
81
|
it "should call the third node2" do
|
|
100
|
-
@tr.describe_instances[2][:name].should == "
|
|
82
|
+
@tr.describe_instances[2][:name].should == "node2"
|
|
101
83
|
end
|
|
102
84
|
end
|
|
103
|
-
describe "
|
|
85
|
+
describe "elastic_ips" do
|
|
104
86
|
before(:each) do
|
|
105
|
-
|
|
87
|
+
@resp = {"requestId"=>"be9bd2e9-4f8c-448f-993d-c21fe537e322", "addressesSet"=>{"item"=>[{"instanceId"=>nil, "publicIp"=>"174.129.212.93"}, {"instanceId"=>nil, "publicIp"=>"182.199.200.201"}]}, "xmlns"=>"http://ec2.amazonaws.com/doc/2008-12-01/"}
|
|
88
|
+
@tr.ec2.stub!(:describe_addresses).and_return @resp
|
|
89
|
+
end
|
|
90
|
+
it "should have the next available elastic_ip" do
|
|
91
|
+
@tr.next_unused_elastic_ip.should == "174.129.212.93"
|
|
92
|
+
end
|
|
93
|
+
it "should use only the elastic ips set on the cloud" do
|
|
94
|
+
@cloud.stub!(:elastic_ips?).and_return true
|
|
95
|
+
@cloud.stub!(:elastic_ips).and_return ["182.199.200.201"]
|
|
96
|
+
@tr.stub!(:cloud).and_return @cloud
|
|
97
|
+
@tr.next_unused_elastic_ip.should == "182.199.200.201"
|
|
106
98
|
end
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
99
|
+
end
|
|
100
|
+
describe "create_keypair" do
|
|
101
|
+
before(:each) do
|
|
102
|
+
Kernel.stub!(:system).with("ec2-add-keypair fake_keypair > #{Default.base_keypair_path}/id_rsa-fake_keypair && chmod 600 #{Default.base_keypair_path}/id_rsa-fake_keypair").and_return true
|
|
103
|
+
# @tr.stub!(:base_keypair_path).and_return "#{ENV["HOME"]}/.ec2"
|
|
110
104
|
end
|
|
111
105
|
it "should try to create the directory when making a new keypair" do
|
|
112
|
-
FileUtils.should_receive(:mkdir_p).and_return true
|
|
113
|
-
::File.stub!(:directory?).and_return false
|
|
114
|
-
@tr.create_keypair
|
|
106
|
+
# FileUtils.should_receive(:mkdir_p).and_return true
|
|
107
|
+
# ::File.stub!(:directory?).and_return false
|
|
108
|
+
# @tr.create_keypair
|
|
109
|
+
pending
|
|
110
|
+
#TODO Fix with new remoter branch
|
|
115
111
|
end
|
|
116
112
|
it "should not create a keypair if the keypair is nil" do
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
pending
|
|
114
|
+
#TODO Fix with new remoter branch
|
|
115
|
+
# Kernel.should_not_receive(:system)
|
|
116
|
+
# @tr.stub!(:keypair).and_return nil
|
|
117
|
+
# @tr.create_keypair
|
|
120
118
|
end
|
|
121
119
|
end
|
|
122
120
|
describe "create_snapshot" do
|
|
@@ -133,4 +131,4 @@ describe "ec2 remote base" do
|
|
|
133
131
|
@tr.create_snapshot.should == nil
|
|
134
132
|
end
|
|
135
133
|
end
|
|
136
|
-
end
|
|
134
|
+
end
|
|
@@ -6,7 +6,6 @@ describe "Remoter" do
|
|
|
6
6
|
@cloud = cloud :app do;end
|
|
7
7
|
@tc = TestClass.new
|
|
8
8
|
@tc.parent = @cloud
|
|
9
|
-
::File.stub!(:exists?).with("#{File.expand_path(Base.base_keypair_path)}/id_rsa-fake_keypair").and_return true
|
|
10
9
|
@sample_instances_list = [{:ip => "192.168.0.1", :name => "master"}, {:ip => "192.168.0.2", :name => "node1"}]
|
|
11
10
|
end
|
|
12
11
|
describe "ssh_string" do
|
|
@@ -14,7 +13,7 @@ describe "Remoter" do
|
|
|
14
13
|
@tc.ssh_string.should =~ /ssh -o StrictHostKeyChecking=no -l/
|
|
15
14
|
end
|
|
16
15
|
it "should have the keypair in the ssh_string" do
|
|
17
|
-
@tc.ssh_string.should =~ /#{@tc.
|
|
16
|
+
@tc.ssh_string.should =~ /#{@tc.full_keypair_path}/
|
|
18
17
|
end
|
|
19
18
|
end
|
|
20
19
|
describe "ssh_array" do
|
|
@@ -31,93 +30,104 @@ describe "Remoter" do
|
|
|
31
30
|
@ri.stub!(:ip).and_return "192.168.0.22"
|
|
32
31
|
end
|
|
33
32
|
it "should have rsync in the rsync_command" do
|
|
34
|
-
@tc.rsync_command.should == "rsync -azP --exclude cache -e '#{@tc.ssh_string} -l #{
|
|
33
|
+
@tc.rsync_command.should == "rsync -azP --exclude cache -e '#{@tc.ssh_string} -l #{Default.user}'"
|
|
35
34
|
end
|
|
36
35
|
it "should be able to rsync storage commands" do
|
|
37
|
-
@tc.rsync_storage_files_to_command(@ri).should == "#{@tc.rsync_command} #{
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
describe "launch_and_configure_master!" do
|
|
41
|
-
before(:each) do
|
|
42
|
-
@tc.stub!(:wait).and_return true
|
|
43
|
-
stub_list_from_remote_for(@tc)
|
|
44
|
-
stub_remoting_methods_for(@tc)
|
|
45
|
-
@tc.stub!(:maximum_instances).and_return 5
|
|
46
|
-
@tc.stub!(:list_of_pending_instances).and_return []
|
|
47
|
-
@tc.stub!(:list_of_nonterminated_instances).and_return []
|
|
48
|
-
@tc.stub!(:list_of_running_instances).and_return []
|
|
49
|
-
@tc.stub!(:master).and_return ris.first
|
|
50
|
-
@tc.stub!(:after_launched).and_return true
|
|
51
|
-
@tc.stub!(:verbose).and_return false
|
|
52
|
-
::File.stub!(:exists?).and_return true
|
|
53
|
-
|
|
54
|
-
@pb = PoolParty::Provisioner::Capistrano.new(nil, @tc)
|
|
55
|
-
PoolParty::Provisioner::Capistrano.stub!(:new).and_return @pb
|
|
56
|
-
@pb.stub!(:setup_runner)
|
|
57
|
-
@pb.stub!(:install).and_return true
|
|
58
|
-
@pb.stub!(:configure).and_return true
|
|
59
|
-
@pb.stub!(:create_roles).and_return true
|
|
60
|
-
end
|
|
61
|
-
it "should have the method launch_master!" do
|
|
62
|
-
@tc.respond_to?(:launch_and_configure_master!).should == true
|
|
63
|
-
end
|
|
64
|
-
it "should test if it can start a new instance" do
|
|
65
|
-
@tc.should_receive(:can_start_a_new_instance?).once.and_return false
|
|
66
|
-
end
|
|
67
|
-
it "should test if the master is running" do
|
|
68
|
-
@tc.should_receive(:is_master_running?).and_return false
|
|
69
|
-
end
|
|
70
|
-
it "should ask to request_launch_new_instances when the master is not running and we can start a new instance" do
|
|
71
|
-
@tc.should_receive(:request_launch_master_instance)
|
|
72
|
-
@tc.stub!(:can_start_a_new_instance?).and_return true
|
|
73
|
-
@tc.stub!(:is_master_running?).and_return false
|
|
74
|
-
end
|
|
75
|
-
after(:each) do
|
|
76
|
-
@tc.launch_and_configure_master!
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
describe "expansions and contractions" do
|
|
80
|
-
before(:each) do
|
|
81
|
-
@tc = TestClass.new
|
|
82
|
-
stub_list_from_remote_for @tc # sets the list of instances to 2
|
|
83
|
-
end
|
|
84
|
-
describe "list_of_nodes_exceeding_minimum_runtime" do
|
|
85
|
-
before(:each) do
|
|
86
|
-
@tc.stub!(:minimum_runtime).and_return 3000
|
|
87
|
-
end
|
|
88
|
-
it "should not be empty" do
|
|
89
|
-
@tc.list_of_running_instances.size.should == 2
|
|
90
|
-
@tc.list_of_running_instances.first.elapsed_runtime.should be > 3000
|
|
91
|
-
@tc.list_of_nodes_exceeding_minimum_runtime.size.should be > 0
|
|
92
|
-
end
|
|
93
|
-
it "should return a RemoteInstance" do
|
|
94
|
-
@tc.list_of_nodes_exceeding_minimum_runtime.first.should be_instance_of(PoolParty::Remote::RemoteInstance)
|
|
95
|
-
end
|
|
96
|
-
it "are_any_nodes_exceeding_minimum_runtime? should be true" do
|
|
97
|
-
@tc.are_any_nodes_exceeding_minimum_runtime?.should == true
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
describe "are_too_few_instances_running?" do
|
|
102
|
-
it "should be false if the number of running instances is larger than the minimum instances" do
|
|
103
|
-
@tc.stub!(:minimum_instances).and_return 1
|
|
104
|
-
@tc.are_too_few_instances_running?.should == false
|
|
105
|
-
end
|
|
106
|
-
it "should be true if the number of running instances is smaller than the minimum instances" do
|
|
107
|
-
@tc.stub!(:minimum_instances).and_return 5
|
|
108
|
-
@tc.are_too_few_instances_running?.should == true
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
describe "are_too_many_instances_running?" do
|
|
112
|
-
it "should be true if the number of running instances is larger than the maximum instances" do
|
|
113
|
-
@tc.stub!(:maximum_instances).and_return 1
|
|
114
|
-
@tc.are_too_many_instances_running?.should == true
|
|
115
|
-
end
|
|
116
|
-
it "should be false if the number of running instances is smaller than the maximum instances" do
|
|
117
|
-
@tc.stub!(:maximum_instances).and_return 5
|
|
118
|
-
@tc.are_too_many_instances_running?.should == false
|
|
119
|
-
end
|
|
36
|
+
@tc.rsync_storage_files_to_command(@ri).should == "#{@tc.rsync_command} #{Default.storage_directory}/ 192.168.0.22:/var/poolparty"
|
|
120
37
|
end
|
|
121
38
|
end
|
|
122
39
|
|
|
40
|
+
# describe "launch_and_configure_master!" do
|
|
41
|
+
# before(:each) do
|
|
42
|
+
# @tc.stub!(:wait).and_return true
|
|
43
|
+
# stub_list_from_remote_for(@tc)
|
|
44
|
+
# stub_remoting_methods_for(@tc)
|
|
45
|
+
# @tc.stub!(:maximum_instances).and_return 5
|
|
46
|
+
# @tc.stub!(:list_of_pending_instances).and_return []
|
|
47
|
+
# @tc.stub!(:list_of_nonterminated_instances).and_return []
|
|
48
|
+
# @tc.stub!(:nodes(:status => "running")).and_return []
|
|
49
|
+
# @tc.stub!(:master).and_return ris.first
|
|
50
|
+
# @tc.stub!(:after_launched).and_return true
|
|
51
|
+
# @tc.stub!(:verbose).and_return false
|
|
52
|
+
# # @tc.stub!(:testing).and_return true #MF
|
|
53
|
+
# ::File.stub!(:exists?).and_return true
|
|
54
|
+
#
|
|
55
|
+
# @pb = PoolParty::Provisioner::Capistrano.new(nil, @tc)
|
|
56
|
+
# PoolParty::Provisioner::Capistrano.stub!(:new).and_return @pb
|
|
57
|
+
# @pb.stub!(:setup_runner)
|
|
58
|
+
# @pb.stub!(:install).and_return true
|
|
59
|
+
# @pb.stub!(:configure).and_return true
|
|
60
|
+
# @pb.stub!(:create_roles).and_return true
|
|
61
|
+
# end
|
|
62
|
+
# it "should have dependency_resolver_command" do
|
|
63
|
+
# @tc.respond_to?(:dependency_resolver_command)
|
|
64
|
+
# @tc.dependency_resolver_command.should match(/puppet/)
|
|
65
|
+
# end
|
|
66
|
+
# it "should have the method launch_master!" do
|
|
67
|
+
# @tc.respond_to?(:launch_and_configure_master!).should == true
|
|
68
|
+
# end
|
|
69
|
+
# it "should test if it can start a new instance" do
|
|
70
|
+
# @tc.should_receive(:can_start_a_new_instance?).once.and_return false
|
|
71
|
+
# end
|
|
72
|
+
# it "should test if the master is running" do
|
|
73
|
+
# @tc.should_receive(:is_master_running?).and_return false
|
|
74
|
+
# end
|
|
75
|
+
# it "should ask to request_launch_new_instances when the master is not running and we can start a new instance" do
|
|
76
|
+
# @tc.should_receive(:request_launch_master_instance)
|
|
77
|
+
# @tc.stub!(:can_start_a_new_instance?).and_return true
|
|
78
|
+
# @tc.stub!(:is_master_running?).and_return false
|
|
79
|
+
# end
|
|
80
|
+
# after(:each) do
|
|
81
|
+
# @tc.launch_and_configure_master!
|
|
82
|
+
# end
|
|
83
|
+
# end
|
|
84
|
+
|
|
85
|
+
# TODO: Move to test unit
|
|
86
|
+
# describe "expansions and contractions" do
|
|
87
|
+
# before(:each) do
|
|
88
|
+
# @tc = TestClass.new
|
|
89
|
+
# @tc.stub!(:nodes).and_return({:ip => "127.0.0.2", :status => "running"},
|
|
90
|
+
# {:ip => "127.0.0.2", :status => "running"})
|
|
91
|
+
# stub_running_remote_instances @tc
|
|
92
|
+
# end
|
|
93
|
+
# describe "list_of_nodes_exceeding_minimum_runtime" do
|
|
94
|
+
# before(:each) do
|
|
95
|
+
# @tc.stub!(:minimum_runtime).and_return 3000
|
|
96
|
+
# end
|
|
97
|
+
# it "should not be empty" do
|
|
98
|
+
# @tc.nodes(:status => "running").size.should == 2
|
|
99
|
+
# @tc.nodes(:status => "running").first.elapsed_runtime.should be > 3000
|
|
100
|
+
# @tc.list_of_nodes_exceeding_minimum_runtime.size.should be > 0
|
|
101
|
+
# end
|
|
102
|
+
# it "should return a RemoteInstance" do
|
|
103
|
+
# @tc.list_of_nodes_exceeding_minimum_runtime.first.should be_instance_of(PoolParty::Remote::RemoteInstance)
|
|
104
|
+
# end
|
|
105
|
+
# it "are_any_nodes_exceeding_minimum_runtime? should be true" do
|
|
106
|
+
# @tc.are_any_nodes_exceeding_minimum_runtime?.should == true
|
|
107
|
+
# end
|
|
108
|
+
# end
|
|
109
|
+
#
|
|
110
|
+
# describe "are_too_few_instances_running?" do
|
|
111
|
+
# it "should be false if the number of running instances is larger than the minimum instances" do
|
|
112
|
+
# @tc.stub!(:minimum_instances).and_return 1
|
|
113
|
+
# @tc.are_too_few_instances_running?.should == false
|
|
114
|
+
# end
|
|
115
|
+
# it "should be true if the number of running instances is smaller than the minimum instances" do
|
|
116
|
+
# @tc.stub!(:minimum_instances).and_return 5
|
|
117
|
+
# @tc.are_too_few_instances_running?.should == true
|
|
118
|
+
# end
|
|
119
|
+
# end
|
|
120
|
+
# describe "are_too_many_instances_running?" do
|
|
121
|
+
# it "should be true if the number of running instances is larger than the maximum instances" do
|
|
122
|
+
# @tc.stub!(:maximum_instances).and_return 1
|
|
123
|
+
# p @tc.nodes
|
|
124
|
+
# @tc.are_too_many_instances_running?.should == true
|
|
125
|
+
# end
|
|
126
|
+
# it "should be false if the number of running instances is smaller than the maximum instances" do
|
|
127
|
+
# @tc.stub!(:maximum_instances).and_return 5
|
|
128
|
+
# @tc.are_too_many_instances_running?.should == false
|
|
129
|
+
# end
|
|
130
|
+
# end
|
|
131
|
+
# end
|
|
132
|
+
|
|
123
133
|
end
|