poolparty 0.2.84 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -2,26 +2,31 @@ require "ftools"
|
|
2
2
|
module PoolParty
|
3
3
|
|
4
4
|
# Load a file that contains a pool into memory
|
5
|
-
def load_pool(filename)
|
6
|
-
|
5
|
+
def load_pool(filename=nil)
|
6
|
+
filename = filename || Binary.get_existing_spec_location
|
7
|
+
dputs "Using spec at #{filename}"
|
8
|
+
|
7
9
|
unless filename && ::File.readable?(filename)
|
8
|
-
puts "Please specify your cloud with -s, move it to ./clouds.
|
10
|
+
puts "Please specify your cloud with -s, move it to ./clouds.rb or in your POOL_SPEC environment variable"
|
9
11
|
exit(1)
|
10
12
|
else
|
11
13
|
$pool_specfile = filename
|
12
|
-
PoolParty::
|
14
|
+
PoolParty::Pool::Pool.load_from_file filename
|
13
15
|
end
|
14
16
|
end
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
# Helper to print with the nice printer
|
19
|
+
def print_with_nice_printer(header=nil, strs=[], &block)
|
20
|
+
printer = NicePrinter.new
|
21
|
+
printer.header
|
22
|
+
printer.center(header) if header
|
23
|
+
yield(printer)
|
24
|
+
strs.each {|st| printer << st if st}
|
25
|
+
printer.footer
|
26
|
+
printer.print
|
23
27
|
end
|
24
28
|
|
29
|
+
# Keep the pool_specfile
|
25
30
|
def pool_specfile
|
26
31
|
$pool_specfile
|
27
32
|
end
|
@@ -42,32 +47,21 @@ module PoolParty
|
|
42
47
|
# These are the locations the spec file can be before the cloud
|
43
48
|
# aborts because it cannot load the cloud
|
44
49
|
def get_existing_spec_location
|
45
|
-
[
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
[
|
51
|
+
"#{Dir.pwd}/#{Default.default_specfile_name}",
|
52
|
+
Dir["#{Dir.pwd}/*/#{Default.default_specfile_name}"],
|
53
|
+
"#{Default.remote_storage_path}/#{Default.default_specfile_name}",
|
54
|
+
"#{Default.default_specfile_name}",
|
55
|
+
"#{Default.base_config_directory}/#{Default.default_specfile_name}",
|
56
|
+
"#{Default.poolparty_home_path}/#{Default.default_specfile_name}",
|
57
|
+
ENV["POOL_SPEC"]
|
58
|
+
].flatten.reject {|a| a.nil?}.reject do |f|
|
53
59
|
f unless ::File.readable?(f)
|
54
60
|
end.first
|
55
61
|
end
|
56
62
|
# Daemonize the process
|
57
63
|
def daemonize(&block)
|
58
|
-
|
59
|
-
trap("CHLD") {Process.wait(-1, Process::WNOHANG)}
|
60
|
-
pid = fork do
|
61
|
-
Signal.trap('HUP', 'IGNORE') # Don't die upon logout
|
62
|
-
File.open("/dev/null", "r+") do |devnull|
|
63
|
-
$stdout.reopen(devnull)
|
64
|
-
$stderr.reopen(devnull)
|
65
|
-
$stdin.reopen(devnull) unless @use_stdin
|
66
|
-
end
|
67
|
-
block.call if block
|
68
|
-
end
|
69
|
-
Process.detach(pid)
|
70
|
-
pid
|
64
|
+
Daemonize.daemonize(&block)
|
71
65
|
end
|
72
66
|
|
73
67
|
end
|
@@ -20,7 +20,7 @@ module PoolParty
|
|
20
20
|
if level >= 1
|
21
21
|
@np.center "CloudSpeak"
|
22
22
|
@np << "All the commands set on your cloud can be called within the console"
|
23
|
-
@np << "
|
23
|
+
@np << "instances_by_status('running') - get list of running nodes"
|
24
24
|
@np << "list_of_pending_instances - get list of pending nodes"
|
25
25
|
@np << "available_monitors - get list of the available monitors on the cloud"
|
26
26
|
@np << " note: all monitors can be called as a method on the cloud"
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module PoolParty
|
2
|
+
class HashPrinter
|
3
|
+
def self.print_to_string(props={})
|
4
|
+
<<-EOE
|
5
|
+
Top Level
|
6
|
+
#{print_hash(props, 1)}
|
7
|
+
EOE
|
8
|
+
end
|
9
|
+
def self.print_hash(props={}, tabs=0)
|
10
|
+
out = []
|
11
|
+
if props[:options]
|
12
|
+
out << props[:options].map {|k,v| "#{print_tabs(tabs)}#{k} => #{print_value(v)}"}.join("#{print_tabs(tabs)}\n")
|
13
|
+
end
|
14
|
+
if props[:resources]
|
15
|
+
props[:resources].each do |ty,r|
|
16
|
+
out << [
|
17
|
+
"#{print_tabs(tabs)}#{ty.to_s.capitalize}",
|
18
|
+
r.map {|h| h.map {|k,v| "#{print_tabs(tabs+1)}#{k} => #{print_value(v)}"}}.join("#{print_tabs(tabs+1)}\n")
|
19
|
+
].join("\n")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
if props[:services]
|
23
|
+
props[:services].each do |nm,s|
|
24
|
+
out << [
|
25
|
+
"#{print_tabs(tabs)}#{nm.to_s.capitalize}",
|
26
|
+
print_hash(s,tabs+1)
|
27
|
+
].join("\n")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
out.join("\n")
|
31
|
+
end
|
32
|
+
def self.print_tabs(tabs=1)
|
33
|
+
"#{"\t"*tabs}"
|
34
|
+
end
|
35
|
+
def self.print_value(v)
|
36
|
+
case v
|
37
|
+
when Array
|
38
|
+
"[#{v.join(", ")}]"
|
39
|
+
else
|
40
|
+
v
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -1,18 +1,22 @@
|
|
1
1
|
require 'optparse'
|
2
2
|
require "poolparty"
|
3
3
|
require "poolpartycl"
|
4
|
-
require 'rdoc/usage'
|
4
|
+
# require 'rdoc/usage'
|
5
5
|
require 'ostruct'
|
6
6
|
require 'date'
|
7
7
|
|
8
8
|
module PoolParty
|
9
9
|
class Optioner
|
10
|
-
include
|
11
|
-
include MethodMissingSugar
|
10
|
+
include Dslify
|
12
11
|
|
13
|
-
|
12
|
+
default_options( :verbose => false,
|
13
|
+
:quiet => false,
|
14
|
+
:cloudname => false,
|
15
|
+
:poolname => false)
|
16
|
+
|
17
|
+
def initialize(args=[], opts={}, &block)
|
14
18
|
boolean_args << opts[:boolean_args] if opts.has_key?(:boolean_args)
|
15
|
-
|
19
|
+
|
16
20
|
@arguments = parse_args(args)
|
17
21
|
@extra_help = opts.has_key?(:extra_help) ? opts[:extra_help] : ""
|
18
22
|
@abstract = opts.has_key?(:abstract) ? opts[:abstract] : false
|
@@ -21,11 +25,10 @@ module PoolParty
|
|
21
25
|
@command = opts.has_key?(:command) ? opts[:command] : false
|
22
26
|
|
23
27
|
parse_options(&block) if @parse_options
|
24
|
-
set_default_options
|
25
28
|
self
|
26
29
|
end
|
27
30
|
def daemonizeable
|
28
|
-
@opts.on('-
|
31
|
+
@opts.on('-D', '--daemonize', 'Daemonize starting the cloud') { self.daemon true }
|
29
32
|
end
|
30
33
|
def cloudnames
|
31
34
|
@opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| self.cloudname c }
|
@@ -63,18 +66,21 @@ module PoolParty
|
|
63
66
|
args
|
64
67
|
end
|
65
68
|
|
69
|
+
# def parent
|
70
|
+
# self
|
71
|
+
# end
|
72
|
+
|
66
73
|
def parent
|
67
74
|
self
|
68
75
|
end
|
69
76
|
|
70
|
-
def set_default_options
|
71
|
-
self.verbose false
|
72
|
-
self.quiet false
|
73
|
-
end
|
74
|
-
|
75
77
|
def parse_options(&blk)
|
78
|
+
self.spec = nil
|
79
|
+
self.num = nil
|
80
|
+
|
76
81
|
progname = $0.include?("-") ? "#{::File.basename($0[/(\w+)-/, 1])} #{::File.basename($0[/-(.*)/, 1])}" : ::File.basename($0)
|
77
|
-
@opts = OptionParser.new
|
82
|
+
@opts = OptionParser.new
|
83
|
+
@opts.extend(Dslify)
|
78
84
|
@opts.banner = "Usage: #{progname} #{@abstract ? "[command] " : ""}[options]"
|
79
85
|
|
80
86
|
@opts.separator ""
|
@@ -82,15 +88,15 @@ module PoolParty
|
|
82
88
|
unless @abstract
|
83
89
|
@opts.separator "Options:"
|
84
90
|
|
85
|
-
@opts.on('-v', '--verbose', 'Be verbose')
|
86
|
-
@opts.on("--debug", "Debug setting") {self.
|
87
|
-
@opts.on('-s [file]', '--spec-file [file]', 'Set the spec file')
|
88
|
-
@opts.on('-t', '--test', 'Testing mode')
|
91
|
+
@opts.on('-v', '--verbose', 'Be verbose') { self.verbose true }
|
92
|
+
@opts.on('-d', "--debug", "Debug setting") { self.debugging true }
|
93
|
+
@opts.on('-s [file]', '--spec-file [file]', 'Set the spec file') { |file| self.spec file.chomp }
|
94
|
+
@opts.on('-t', '--test', 'Testing mode') { self.testing true }
|
89
95
|
|
90
96
|
blk.call(@opts, self) if blk
|
91
97
|
end
|
92
98
|
|
93
|
-
@opts.on('-V', '--version', 'Display the version') {
|
99
|
+
@opts.on('-V', '--version', 'Display the version') { output_version ; exit 0 }
|
94
100
|
@opts.on_tail("-h", "--help", "Show this message") do
|
95
101
|
puts @opts
|
96
102
|
puts @extra_help
|
@@ -103,31 +109,39 @@ module PoolParty
|
|
103
109
|
output_options if verbose
|
104
110
|
|
105
111
|
if @load_pools
|
106
|
-
self.loaded_pool load_pool(
|
107
|
-
|
112
|
+
self.loaded_pool load_pool( spec? ? spec : Binary.get_existing_spec_location)
|
108
113
|
self.loaded_clouds extract_cloud_from_options(self)
|
109
114
|
self.loaded_pools extract_pool_from_options(self)
|
110
115
|
|
111
116
|
reject_junk_options!
|
112
|
-
raise CloudNotFoundException.new("Please specify your cloud with -s, move it to ./clouds.
|
117
|
+
raise CloudNotFoundException.new("Please specify your cloud with -s, move it to ./clouds.rb or in your POOL_SPEC environment variable") unless loaded_clouds && !loaded_clouds.empty?
|
113
118
|
loaded_pools.each do |pl|
|
114
|
-
pl.
|
119
|
+
pl.options(self.options)
|
115
120
|
end
|
116
121
|
loaded_clouds.each do |cl|
|
117
|
-
cl.
|
122
|
+
cl.options(self.options)
|
118
123
|
end
|
119
124
|
end
|
120
125
|
end
|
126
|
+
|
121
127
|
def reject_junk_options!
|
122
128
|
%w(loaded_pool cloudname extract_pool_from_options).each do |opt|
|
123
|
-
@
|
129
|
+
@dsl_options.delete(opt.to_sym)
|
124
130
|
end
|
125
131
|
end
|
132
|
+
|
126
133
|
def process_options
|
127
134
|
end
|
135
|
+
|
136
|
+
def output_options
|
137
|
+
puts ""
|
138
|
+
end
|
128
139
|
|
129
140
|
def output_version
|
130
|
-
puts
|
141
|
+
puts ::PoolParty::Version
|
142
|
+
end
|
143
|
+
|
144
|
+
def output_options
|
131
145
|
end
|
132
146
|
|
133
147
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "json"
|
3
|
+
begin
|
4
|
+
require "#{::File.dirname(__FILE__)}/../../vendor/gems/dslify/lib/dslify"
|
5
|
+
rescue Exception => e
|
6
|
+
require "dslify"
|
7
|
+
end
|
8
|
+
require "#{::File.dirname(__FILE__)}/poolparty/default"
|
9
|
+
require "#{::File.dirname(__FILE__)}/modules/user_helpers"
|
10
|
+
require "#{::File.dirname(__FILE__)}/schema"
|
11
|
+
require "#{::File.dirname(__FILE__)}/core/string"
|
12
|
+
require "#{::File.dirname(__FILE__)}/net/init"
|
13
|
+
require "#{::File.dirname(__FILE__)}/core/hash"
|
14
|
+
require "#{::File.dirname(__FILE__)}/poolparty/neighborhoods"
|
15
|
+
require "#{::File.dirname(__FILE__)}/exceptions/RemoteException.rb"
|
16
|
+
|
17
|
+
module PoolParty
|
18
|
+
extend ::PoolParty::Remote
|
19
|
+
|
20
|
+
def self.load_cloud_from_json(json_file_path=nil)
|
21
|
+
json_file = json_file_path || PoolParty::Default.properties_hash_file
|
22
|
+
PoolParty::Schema.new( ::File.read(json_file) ) rescue exit 1
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class String
|
27
|
+
def camelcase
|
28
|
+
gsub(/(^|_|-)(.)/) { $2.upcase }
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module PoolParty
|
2
|
+
module Callbacks
|
3
|
+
module ClassMethods
|
4
|
+
def additional_callbacks(arr=[])
|
5
|
+
@additional_callbacks ||= arr
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
module InstanceMethods
|
10
|
+
def defined_callbacks
|
11
|
+
[
|
12
|
+
:before_bootstrap,
|
13
|
+
:after_bootstrap,
|
14
|
+
:before_configure,
|
15
|
+
:after_configure,
|
16
|
+
:after_create,
|
17
|
+
# TODO: Add after_launch_instance and after_terminate_instance
|
18
|
+
# :after_launch_instance,
|
19
|
+
# :after_terminate_instance,
|
20
|
+
self.class.additional_callbacks
|
21
|
+
].flatten
|
22
|
+
end
|
23
|
+
|
24
|
+
# Callbacks on bootstrap and configuration
|
25
|
+
def setup_callbacks
|
26
|
+
defined_callbacks.each do |meth|
|
27
|
+
unless respond_to?("call_#{meth}_callbacks".to_sym)
|
28
|
+
self.class.module_eval <<-EOE
|
29
|
+
def call_#{meth}_callbacks(*args)
|
30
|
+
plugin_store.each {|a| a.call_#{meth}_callbacks(*args) } if respond_to?(:plugin_store) && plugin_store
|
31
|
+
self.send :#{meth}, *args if respond_to?(:#{meth})
|
32
|
+
end
|
33
|
+
EOE
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.included(receiver)
|
40
|
+
receiver.extend ClassMethods
|
41
|
+
receiver.send :include, InstanceMethods
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -1,13 +1,43 @@
|
|
1
1
|
module PoolParty
|
2
2
|
module CloudDsl
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
|
4
|
+
# TODO: Add to ec2 remoter_base
|
5
|
+
# def mount_ebs_volume_at(id="", loc="/data")
|
6
|
+
# ebs_volume_id id
|
7
|
+
# ebs_volume_mount_point loc
|
8
|
+
# ebs_volume_device "/dev/#{id.sanitize}"
|
9
|
+
#
|
10
|
+
# has_mount(:name => loc, :device => ebs_volume_device)
|
11
|
+
# has_directory(:name => loc)
|
12
|
+
# end
|
13
|
+
|
14
|
+
def dependency_resolver(name='puppet')
|
15
|
+
klass = name.preserved_class_constant("Resolver")
|
16
|
+
raise DependencyResolverException.new("Unknown resolver") unless klass
|
17
|
+
dsl_options[:dependency_resolver] = klass unless dsl_options[:dependency_resolver]
|
18
|
+
end
|
19
|
+
|
20
|
+
# Enable a service package
|
21
|
+
def enable(*services)
|
22
|
+
services.each do |service|
|
23
|
+
dsl_options[service] = :enabled
|
24
|
+
end
|
25
|
+
end
|
26
|
+
# Disable a service package
|
27
|
+
def disable(*services)
|
28
|
+
services.each do |service|
|
29
|
+
dsl_options[service] = :disabled
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Check to see if the package has been enabled
|
34
|
+
def enabled?(srv);dsl_options.has_key?(srv) && dsl_options[srv] == :enabled;end
|
35
|
+
|
36
|
+
# All services that are :enabled and have a plugin that corresponds, call on the cloud
|
37
|
+
def add_optional_enabled_services
|
38
|
+
dsl_options.each do |k,v|
|
39
|
+
self.send k if enabled?(k) && respond_to?(k)
|
40
|
+
end
|
11
41
|
end
|
12
42
|
|
13
43
|
end
|
@@ -1,11 +1,25 @@
|
|
1
|
+
=begin rdoc
|
2
|
+
CloudResourcer provides the cloud with convenience methods
|
3
|
+
that you can call on your cloud. This is where the
|
4
|
+
|
5
|
+
instances 2..10
|
6
|
+
|
7
|
+
method is stored, for instance. It's also where the key convenience methods are written
|
8
|
+
=end
|
1
9
|
require "ftools"
|
2
10
|
|
3
11
|
module PoolParty
|
4
12
|
module CloudResourcer
|
5
13
|
|
6
|
-
def plugin_directory(
|
7
|
-
|
8
|
-
|
14
|
+
def plugin_directory(arr=[])
|
15
|
+
arr = [arr] if arr.is_a?(String)
|
16
|
+
arr << [
|
17
|
+
"#{::File.expand_path(Dir.pwd)}/plugins",
|
18
|
+
"#{::File.expand_path(Default.poolparty_home_path)}/plugins"
|
19
|
+
]
|
20
|
+
arr.flatten.each {|arg|
|
21
|
+
Dir["#{arg}/*/*.rb"].each {|f| require f } if ::File.directory?(arg)
|
22
|
+
}
|
9
23
|
end
|
10
24
|
|
11
25
|
# Store block
|
@@ -24,7 +38,9 @@ module PoolParty
|
|
24
38
|
end
|
25
39
|
|
26
40
|
# Set instances with a range or a number
|
27
|
-
|
41
|
+
# if passed with a hash, call nodes(hash) to return filtered list of
|
42
|
+
# instances
|
43
|
+
def instances(arg)
|
28
44
|
case arg
|
29
45
|
when Range
|
30
46
|
minimum_instances arg.first
|
@@ -32,103 +48,73 @@ module PoolParty
|
|
32
48
|
when Fixnum
|
33
49
|
minimum_instances arg
|
34
50
|
maximum_instances arg
|
51
|
+
when Hash
|
52
|
+
nodes(arg)
|
35
53
|
else
|
36
54
|
raise SpecException.new("Don't know how to handle instances cloud input #{arg}")
|
37
55
|
end
|
38
56
|
end
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
57
|
+
|
58
|
+
# Declare the remoter base
|
59
|
+
# Check to make sure the available_bases is available, otherwise raise
|
60
|
+
# Give access to the cloud the remote_base and instantiate a new
|
61
|
+
# instance of the remote base
|
62
|
+
def using(t, &block)
|
63
|
+
@cloud = self
|
64
|
+
if t && self.class.available_bases.include?(t.to_sym)
|
65
|
+
unless using_remoter?
|
66
|
+
self.class.send :attr_reader, :remote_base
|
67
|
+
self.class.send :attr_reader, :parent_cloud
|
68
|
+
klass_string = "#{t}".classify
|
69
|
+
klass = "::PoolParty::Remote::#{klass_string}".constantize
|
70
|
+
|
71
|
+
@remote_base = klass.send :new, self, &block
|
72
|
+
@remote_base.instance_eval &block if block
|
73
|
+
options[:remote_base] = klass.to_s if respond_to?(:options)
|
74
|
+
|
75
|
+
@parent_cloud = @cloud
|
76
|
+
instance_eval "def #{t};@remote_base;end"
|
77
|
+
end
|
51
78
|
else
|
52
|
-
|
79
|
+
raise "Unknown remote base: #{t}"
|
53
80
|
end
|
54
81
|
end
|
55
|
-
def full_pub_keypair_path
|
56
|
-
@full_pub_keypair_path ||= ::File.expand_path("#{full_keypair_basename_path}.pub")
|
57
|
-
end
|
58
|
-
def full_keypair_basename_path
|
59
|
-
dir = ::File.dirname(full_keypair_path)
|
60
|
-
basename = ::File.basename(full_keypair_path, ::File.extname(full_keypair_path))
|
61
|
-
::File.join(dir, basename)
|
62
|
-
end
|
63
82
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
full_path = ::File.join( File.expand_path(path), "#{base}#{keypair}")
|
68
|
-
return full_path if ::File.exists?(full_path)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
return nil
|
83
|
+
# Are we using a remoter?
|
84
|
+
def using_remoter?
|
85
|
+
!@remote_base.nil?
|
72
86
|
end
|
73
87
|
|
74
|
-
#
|
75
|
-
#
|
76
|
-
def
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
end
|
88
|
+
# Keypairs
|
89
|
+
# Use the keypair path
|
90
|
+
def keypair(*args)
|
91
|
+
if args && !args.empty?
|
92
|
+
args.each {|arg| _keypairs.unshift Key.new(arg) unless arg.nil? || arg.empty? }
|
93
|
+
else
|
94
|
+
@keypair ||= _keypairs.select {|key| key.exists? }.first
|
82
95
|
end
|
83
|
-
return nil
|
84
96
|
end
|
85
97
|
|
86
|
-
|
87
|
-
::File.join( keypair_paths.last, "#{possible_keypair_basenames.first}#{keypair}" )
|
88
|
-
end
|
89
|
-
def new_keypair_path
|
90
|
-
::File.join( keypair_paths.first, "#{possible_keypair_basenames.first}#{keypair}" )
|
91
|
-
end
|
98
|
+
alias :set_keypairs :keypair
|
92
99
|
|
93
|
-
def
|
94
|
-
[
|
95
|
-
"id_rsa-",
|
96
|
-
""
|
97
|
-
]
|
100
|
+
def _keypairs
|
101
|
+
dsl_options[:keypairs] ||= [Key.new]
|
98
102
|
end
|
99
103
|
|
100
|
-
def
|
101
|
-
|
102
|
-
Base.base_keypair_path,
|
103
|
-
Base.base_config_directory,
|
104
|
-
Base.remote_storage_path
|
105
|
-
]
|
106
|
-
end
|
107
|
-
|
108
|
-
def context_stack
|
109
|
-
@@context_stack ||= []
|
104
|
+
def full_keypair_path
|
105
|
+
@full_keypair_path ||= keypair.full_filepath
|
110
106
|
end
|
111
107
|
|
112
|
-
def
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
108
|
+
def update_from_schema(schema)
|
109
|
+
keypairs = schema.options.delete(:keypairs).map {|a| PoolParty::Key.new(a.basename) }
|
110
|
+
options.merge! schema.options
|
111
|
+
dsl_options[:keypairs] = keypairs
|
112
|
+
|
113
|
+
dsl_options[:dependency_resolver] = schema.options.dependency_resolver.split("::")[-1].gsub(/Resolver/, '').preserved_class_constant("Resolver") rescue PoolParty::Chef
|
117
114
|
|
118
|
-
context_stack.pop
|
119
|
-
end
|
120
|
-
|
121
|
-
# Set the parent on the resource
|
122
|
-
def set_parent(sink_options=true)
|
123
|
-
unless context_stack.last.nil?
|
124
|
-
@parent = context_stack.last
|
125
|
-
# Add self as a service on the parent
|
126
|
-
parent.add_service(self) if parent.respond_to?(:add_service)
|
127
|
-
# Take the options of the parents
|
128
|
-
configure(parent.options) if parent && parent.respond_to?(:options) && sink_options
|
129
|
-
end
|
130
115
|
end
|
131
|
-
|
116
|
+
|
117
|
+
# TODO: deprecate
|
132
118
|
def number_of_resources
|
133
119
|
arr = resources.map do |n, r|
|
134
120
|
r.size
|
@@ -136,21 +122,5 @@ module PoolParty
|
|
136
122
|
resources.map {|n,r| r.size}.inject(0){|sum,i| sum+=i}
|
137
123
|
end
|
138
124
|
|
139
|
-
def parent
|
140
|
-
@parent ||= nil
|
141
|
-
end
|
142
|
-
|
143
|
-
def plugin_store
|
144
|
-
@plugin_store ||= []
|
145
|
-
end
|
146
|
-
|
147
|
-
def realize_plugins!(force=false)
|
148
|
-
plugin_store.each {|plugin| plugin.realize!(force) if plugin }
|
149
|
-
end
|
150
|
-
|
151
|
-
def plugin_store
|
152
|
-
@plugins ||= []
|
153
|
-
end
|
154
|
-
|
155
125
|
end
|
156
126
|
end
|