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,47 +1,64 @@
|
|
|
1
1
|
module PoolParty
|
|
2
|
-
class
|
|
2
|
+
class SvnResource
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
virtual_resource :svn do
|
|
5
|
+
def loaded(*args)
|
|
6
|
+
has_package :name => "subversion"
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
virtual_resource :svn_repos do
|
|
11
|
+
|
|
12
|
+
def loaded(opts={}, &block)
|
|
13
|
+
has_package("subversion")
|
|
14
|
+
has_svn_repository
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def has_svn_repository
|
|
18
|
+
puts "wd #{working_dir}"
|
|
19
|
+
puts "cd #{creates_dir}"
|
|
20
|
+
has_directory(::File.dirname(working_dir))
|
|
21
|
+
has_directory(:name => "#{working_dir}", :requires => get_directory("#{::File.dirname(working_dir)}"))
|
|
22
|
+
|
|
23
|
+
has_exec(:name => "svn-#{name}", :requires => [get_directory("#{working_dir}"), get_package("subversion")] ) do
|
|
24
|
+
cwd working_dir
|
|
25
|
+
svn_cmd = if parent.requires_user?
|
|
26
|
+
"svn co #{source} --username #{requires_user} --password #{requires_password}"
|
|
27
|
+
else
|
|
28
|
+
"svn co #{source}"
|
|
29
|
+
end
|
|
30
|
+
command svn_cmd
|
|
31
|
+
creates creates_dir
|
|
32
|
+
end
|
|
33
|
+
has_exec(:name => "update-#{name}", :cwd => ::File.dirname( creates_dir )) do
|
|
34
|
+
command "svn up"
|
|
35
|
+
# If the parent has after_update_svn set on it, then run it
|
|
36
|
+
runs parent.after_update_svn if parent.after_update_svn?
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def svn_repos(src)
|
|
41
|
+
source src
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def at(dir)
|
|
45
|
+
working_dir dir
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def to(dir)
|
|
49
|
+
at(dir)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def creates_dir
|
|
53
|
+
"#{::File.join( working_dir, ::File.basename(source, ::File.extname(source)) )}/.svn"
|
|
54
|
+
end
|
|
5
55
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
path => "#{opts[:path]}",
|
|
11
|
-
user => "#{opts[:user] || false}",
|
|
12
|
-
password => "#{opts[:password] || ""}"
|
|
13
|
-
}
|
|
14
|
-
EOE
|
|
56
|
+
# Since svn is not a native type, we have to say which core resource
|
|
57
|
+
# it is using to be able to require it
|
|
58
|
+
def class_type_name
|
|
59
|
+
"exec"
|
|
15
60
|
end
|
|
16
61
|
|
|
17
|
-
custom_function <<-EOF
|
|
18
|
-
# Serve subversion-based code from a local location. The job of this
|
|
19
|
-
# module is to check the data out from subversion and keep it up to
|
|
20
|
-
# date, especially useful for providing data to your Puppet server.
|
|
21
|
-
define svnserve($source, $path, $user = false, $password = false) {
|
|
22
|
-
file { $path:
|
|
23
|
-
ensure => directory,
|
|
24
|
-
owner => root,
|
|
25
|
-
group => root
|
|
26
|
-
}
|
|
27
|
-
$svncmd = $user ? {
|
|
28
|
-
false => "/usr/bin/svn co --non-interactive $source/$name .",
|
|
29
|
-
default => "/usr/bin/svn co --non-interactive --username $user --password '$password' $source/$name ."
|
|
30
|
-
}
|
|
31
|
-
exec { "svnco-$name":
|
|
32
|
-
command => $svncmd,
|
|
33
|
-
cwd => $path,
|
|
34
|
-
require => File[$path],
|
|
35
|
-
creates => "$path/.svn"
|
|
36
|
-
}
|
|
37
|
-
exec { "svnupdate-$name":
|
|
38
|
-
command => "/usr/bin/svn update",
|
|
39
|
-
require => Exec["svnco-$name"],
|
|
40
|
-
onlyif => '/usr/bin/svn status -u --non-interactive | /bin/grep "\*"',
|
|
41
|
-
cwd => $path
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
EOF
|
|
45
62
|
end
|
|
46
63
|
|
|
47
64
|
end
|
|
@@ -3,133 +3,143 @@ require File.dirname(__FILE__) + "/resource"
|
|
|
3
3
|
|
|
4
4
|
module PoolParty
|
|
5
5
|
module Cloud
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
# Instantiate a new cloud
|
|
7
|
+
def cloud(name, &block)
|
|
8
|
+
clouds[name] ||= Cloud.new(name, &block)
|
|
8
9
|
end
|
|
9
10
|
|
|
11
|
+
# Global hash of clouds
|
|
10
12
|
def clouds
|
|
11
13
|
$clouds ||= {}
|
|
12
14
|
end
|
|
13
15
|
|
|
16
|
+
# TODO: Deprecate
|
|
14
17
|
def with_cloud(cl, opts={}, &block)
|
|
15
18
|
raise CloudNotFoundException.new("Cloud not found") unless cl
|
|
16
19
|
cl.options.merge!(opts) if opts
|
|
17
20
|
cl.run_in_context &block if block
|
|
18
21
|
end
|
|
19
22
|
|
|
20
|
-
class Cloud
|
|
21
|
-
attr_reader :templates
|
|
23
|
+
class Cloud < PoolParty::PoolPartyBaseClass
|
|
24
|
+
attr_reader :templates, :cloud_name, :remote_base
|
|
25
|
+
|
|
26
|
+
include CloudResourcer
|
|
22
27
|
include PoolParty::PluginModel
|
|
23
|
-
include PoolParty::Resources
|
|
28
|
+
include PoolParty::Resources
|
|
29
|
+
include PoolParty::Callbacks
|
|
30
|
+
include PoolParty::DependencyResolverCloudExtensions
|
|
24
31
|
include PrettyPrinter
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
include
|
|
28
|
-
# extend CloudResourcer
|
|
29
|
-
# Net methods
|
|
30
|
-
include Remote
|
|
32
|
+
|
|
33
|
+
# Net methods
|
|
34
|
+
include ::PoolParty::Remote
|
|
31
35
|
include PoolParty::CloudDsl
|
|
36
|
+
include PoolParty::Verification
|
|
37
|
+
# include PoolParty::Monitors
|
|
38
|
+
|
|
39
|
+
def verbose
|
|
40
|
+
true
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def self.immutable_methods
|
|
44
|
+
[:name]
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Redefining methods are not allowed
|
|
48
|
+
def self.method_added sym
|
|
49
|
+
raise "Exception: #{sym.to_s.capitalize} method has been redefined" if immutable_methods.include?(sym) && !respond_to?(sym)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
alias :name :cloud_name
|
|
53
|
+
|
|
54
|
+
# Call the remoter commands on the cloud if they don't exist on the cloud itself
|
|
55
|
+
# This gives the cloud access to the remote_base's methods
|
|
56
|
+
def method_missing(m, *args, &block)
|
|
57
|
+
remote_base.respond_to?(m) ? remote_base.send(m, *args, &block) : super
|
|
58
|
+
end
|
|
32
59
|
|
|
33
|
-
|
|
60
|
+
# Default set of options. Most take the Default options from the default class
|
|
61
|
+
default_options(
|
|
62
|
+
:expand_when => Default.expand_when,
|
|
63
|
+
:contract_when => Default.contract_when,
|
|
34
64
|
:minimum_instances => 2,
|
|
35
65
|
:maximum_instances => 5,
|
|
36
|
-
:
|
|
37
|
-
:
|
|
38
|
-
:access_key => Base.access_key,
|
|
39
|
-
:secret_access_key => Base.secret_access_key,
|
|
66
|
+
:access_key => Default.access_key,
|
|
67
|
+
:secret_access_key => Default.secret_access_key,
|
|
40
68
|
:ec2_dir => ENV["EC2_HOME"],
|
|
41
|
-
:
|
|
42
|
-
:
|
|
43
|
-
|
|
44
|
-
:ami => 'ami-44bd592d'
|
|
45
|
-
})
|
|
69
|
+
:minimum_runtime => Default.minimum_runtime,
|
|
70
|
+
:user => Default.user
|
|
71
|
+
)
|
|
46
72
|
|
|
47
|
-
|
|
73
|
+
additional_callbacks [
|
|
74
|
+
"after_launch_instance"
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
# Freeze the cloud_name so we can't modify it at all, set the plugin_directory
|
|
78
|
+
# call and run instance_eval on the block and then call the after_create callback
|
|
79
|
+
def initialize(name, &block)
|
|
48
80
|
@cloud_name = name
|
|
49
81
|
@cloud_name.freeze
|
|
50
|
-
|
|
51
|
-
plugin_directory
|
|
52
|
-
|
|
53
|
-
p = pare.is_a?(PoolParty::Pool::Pool) ? pare : nil
|
|
54
|
-
store_block(&block)
|
|
55
|
-
run_setup(p, &block)
|
|
56
82
|
|
|
57
|
-
#
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
# reset! # reset the clouds
|
|
62
|
-
# reset_remoter_base!
|
|
83
|
+
plugin_directory "#{pool_specfile ? ::File.dirname(pool_specfile) : Dir.pwd}/plugins"
|
|
84
|
+
before_create
|
|
85
|
+
super
|
|
86
|
+
after_create
|
|
63
87
|
end
|
|
64
88
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
generate_keypair unless has_keypair?
|
|
89
|
+
# Fetch the name of the cloud
|
|
90
|
+
def name(*args)
|
|
91
|
+
@cloud_name ||= @cloud_name ? @cloud_name : (args.empty? ? :default_cloud : args.first)
|
|
69
92
|
end
|
|
70
93
|
|
|
71
|
-
def
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
# Keypairs
|
|
76
|
-
# Let's just make sure that the keypair exists on the options
|
|
77
|
-
def has_keypair?
|
|
78
|
-
options.has_key?(:keypair) && options[:keypair] && !options[:keypair].empty?
|
|
79
|
-
end
|
|
80
|
-
# Generate a keypair based on the parent's name (if there is a parent)
|
|
81
|
-
# and the cloud's name
|
|
82
|
-
def generate_keypair(*args)
|
|
83
|
-
options[:keypair] = "#{parent && parent.is_a?(PoolParty::Pool::Pool) ? parent.name : "poolparty"}_#{name}" unless has_keypair?
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# Prepare to send the new configuration to the instances
|
|
87
|
-
# First, let's make sure that our base directory is made
|
|
88
|
-
# Then copy the templates that have no other reference in
|
|
89
|
-
# a spec file. Make sure the keys are stored in a file
|
|
90
|
-
# For the master to have access to them
|
|
91
|
-
# Then, send the saved containing cloud instances to give the
|
|
92
|
-
# remote master access to the cloud options that are required
|
|
93
|
-
# for the master to run checks
|
|
94
|
-
def prepare_for_configuration
|
|
95
|
-
# clear_base_directory
|
|
96
|
-
make_base_directory
|
|
97
|
-
copy_misc_templates
|
|
98
|
-
copy_custom_monitors
|
|
99
|
-
store_keys_in_file
|
|
100
|
-
Script.save!(self)
|
|
101
|
-
# not my favorite...
|
|
102
|
-
copy_ssh_key
|
|
103
|
-
write_unique_cookie
|
|
104
|
-
before_configuration_tasks
|
|
94
|
+
def before_create
|
|
95
|
+
context_stack.push self
|
|
96
|
+
(parent ? parent : self).add_poolparty_base_requirements
|
|
97
|
+
context_stack.pop
|
|
105
98
|
end
|
|
106
99
|
|
|
107
|
-
#
|
|
108
|
-
#
|
|
109
|
-
|
|
110
|
-
|
|
100
|
+
# Callback
|
|
101
|
+
# called after the cloud has been created, everything has run and is set at this point
|
|
102
|
+
# here the base requirements are added as well as an empty chef recipe is called
|
|
103
|
+
# Also, the after_create hook on the plugins used by the cloud are called here
|
|
104
|
+
def after_create
|
|
105
|
+
::FileUtils.mkdir_p("#{Default.tmp_path}/dr_configure")
|
|
106
|
+
|
|
107
|
+
run_in_context do
|
|
108
|
+
add_optional_enabled_services
|
|
109
|
+
chef do
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
plugin_store.each {|a| a.call_after_create_callbacks }
|
|
114
|
+
setup_defaults
|
|
115
|
+
|
|
116
|
+
setup_callbacks
|
|
111
117
|
end
|
|
112
118
|
|
|
113
|
-
#
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
119
|
+
# setup defaults for the cloud
|
|
120
|
+
def setup_defaults
|
|
121
|
+
# this can be overridden in the spec, but ec2 is the default
|
|
122
|
+
using :ec2
|
|
123
|
+
options[:keypair] ||= keypair rescue nil
|
|
124
|
+
options[:rules] = {:expand => dsl_options[:expand_when], :contract => dsl_options[:contract_when]}
|
|
125
|
+
dependency_resolver 'chef'
|
|
126
|
+
# enable :haproxy unless dsl_options[:haproxy] == :disabled
|
|
117
127
|
end
|
|
118
128
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
write_to_file_in_storage_directory("cookie") do
|
|
122
|
-
generate_unique_cookie_string
|
|
123
|
-
end
|
|
129
|
+
def after_launch_instance(inst=nil)
|
|
130
|
+
remote_base.send :after_launch_instance, inst
|
|
124
131
|
end
|
|
125
132
|
|
|
126
|
-
#
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
def generate_unique_cookie_string
|
|
130
|
-
Digest::SHA256.hexdigest("#{full_keypair_name}#{name}")
|
|
133
|
+
# provide list of public ips to get into the cloud
|
|
134
|
+
def ips
|
|
135
|
+
nodes(:status => "running").map {|ri| ri.ip }
|
|
131
136
|
end
|
|
132
137
|
|
|
138
|
+
# TODO: make this be a random ip, since we should not rely on it being the same each time
|
|
139
|
+
def ip
|
|
140
|
+
ips.first
|
|
141
|
+
end
|
|
142
|
+
|
|
133
143
|
# Build the new poolparty manifest
|
|
134
144
|
# Wrapping all of these requirements into the one
|
|
135
145
|
# poolparty class.
|
|
@@ -137,19 +147,14 @@ module PoolParty
|
|
|
137
147
|
# TODO: Consider the benefits of moving all the manifest
|
|
138
148
|
# classes to separate files and keeping the containing
|
|
139
149
|
# references in the include
|
|
140
|
-
def build_and_store_new_config_file(force=false)
|
|
150
|
+
def build_and_store_new_config_file(filepath=nil, force=false)
|
|
151
|
+
filepath ||= ::File.join(Default.storage_directory, "poolparty.pp")
|
|
152
|
+
# write_properties_hash if debugging
|
|
141
153
|
vputs "Building new manifest configuration file (forced: #{force})"
|
|
142
154
|
manifest = force ? rebuild_manifest : build_manifest
|
|
143
|
-
|
|
144
|
-
::File.open(config_file, "w") do |file|
|
|
155
|
+
::File.open(filepath, "w") do |file|
|
|
145
156
|
file << manifest
|
|
146
157
|
end
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
def copy_misc_templates
|
|
150
|
-
["namespaceauth.conf", "puppet.conf", "gem"].each do |f|
|
|
151
|
-
copy_file_to_storage_directory(::File.join(::File.dirname(__FILE__), "..", "templates", f))
|
|
152
|
-
end
|
|
153
158
|
end
|
|
154
159
|
|
|
155
160
|
# If there is a directory named monitors in the same directory
|
|
@@ -159,70 +164,45 @@ module PoolParty
|
|
|
159
164
|
# the monitors directory for any custom monitors
|
|
160
165
|
# that are in known locations, these are included
|
|
161
166
|
def copy_custom_monitors
|
|
162
|
-
unless
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
copy_file_to_storage_directory(f, "monitors")
|
|
167
|
+
unless Default.custom_monitor_directories.empty?
|
|
168
|
+
Default.custom_monitor_directories.each do |dir|
|
|
169
|
+
Dir["#{dir}/*.rb"].each {|f| ::Suitcase::Zipper.add(f, "monitors")}
|
|
166
170
|
end
|
|
167
|
-
end
|
|
171
|
+
end
|
|
168
172
|
end
|
|
169
|
-
|
|
173
|
+
|
|
174
|
+
#FIXME MOVE TO DEPENDECY RESOL
|
|
170
175
|
# Configuration files
|
|
171
176
|
def build_manifest
|
|
172
177
|
vputs "Building manifest"
|
|
173
178
|
@build_manifest ||= build_from_existing_file
|
|
174
|
-
unless @build_manifest
|
|
175
|
-
|
|
176
|
-
add_poolparty_base_requirements
|
|
179
|
+
unless @build_manifest
|
|
180
|
+
props = to_properties_hash
|
|
177
181
|
|
|
178
|
-
@build_manifest =
|
|
182
|
+
@build_manifest = options[:dependency_resolver].send(:compile, props, self)
|
|
179
183
|
end
|
|
184
|
+
dputs "Finished creating manifest"
|
|
180
185
|
@build_manifest
|
|
181
186
|
end
|
|
182
187
|
|
|
188
|
+
# Force rebuilding of the manifest
|
|
183
189
|
def rebuild_manifest
|
|
184
190
|
@build_manifest = nil
|
|
185
191
|
build_manifest
|
|
186
192
|
end
|
|
187
193
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
# Refactor this into the resources method
|
|
192
|
-
# TODO
|
|
193
|
-
services.each do |service|
|
|
194
|
-
service.options.merge!(:name => service.name)
|
|
195
|
-
classpackage_with_self(service)
|
|
196
|
-
end
|
|
197
|
-
|
|
198
|
-
options.merge!(:name => "user")
|
|
199
|
-
classpackage_with_self
|
|
200
|
-
# resources.each do |type, res|
|
|
201
|
-
# str << "# #{type.to_s.pluralize}"
|
|
202
|
-
# str << res.to_string
|
|
203
|
-
# end
|
|
204
|
-
|
|
205
|
-
global_classpackages.each do |cls|
|
|
206
|
-
str << cls.to_string
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
str << "# Custom functions"
|
|
210
|
-
str << Resources::CustomResource.custom_functions_to_string
|
|
211
|
-
end.join("\n")
|
|
212
|
-
end
|
|
213
|
-
|
|
194
|
+
# If the pp already exists, then let's not recreate it
|
|
195
|
+
# TODO: Abstract
|
|
214
196
|
def build_from_existing_file
|
|
215
|
-
::FileTest.file?("#{
|
|
197
|
+
::FileTest.file?("#{Default.base_config_directory}/poolparty.pp") ? open("#{Default.base_config_directory}/poolparty.pp").read : nil
|
|
216
198
|
end
|
|
217
199
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
(
|
|
223
|
-
|
|
224
|
-
:expand_when, :contract_when, :set_master_ip_to
|
|
225
|
-
]<< custom_minimum_runnable_options).flatten
|
|
200
|
+
def write_properties_hash(filename=::File.join(Default.tmp_path, Default.properties_hash_filename) )
|
|
201
|
+
file_path = ::File.dirname(filename)
|
|
202
|
+
file_name = "#{::File.basename(filename, ::File.extname(filename))}_#{name}#{::File.extname(filename)}"
|
|
203
|
+
output = to_properties_hash.to_json
|
|
204
|
+
::File.open("#{file_path}/#{file_name}", "w") {|f| f.write output }
|
|
205
|
+
true
|
|
226
206
|
end
|
|
227
207
|
|
|
228
208
|
# Add all the poolparty requirements here
|
|
@@ -232,35 +212,25 @@ module PoolParty
|
|
|
232
212
|
# all that is necessary in a method called enable
|
|
233
213
|
# which is called when there is no block
|
|
234
214
|
def add_poolparty_base_requirements
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
poolparty_base_packages
|
|
239
|
-
realize_plugins!(true) # Force realizing of the plugins
|
|
215
|
+
# poolparty_base_heartbeat
|
|
216
|
+
poolparty_base_ruby
|
|
217
|
+
poolparty_base_packages
|
|
240
218
|
end
|
|
241
219
|
|
|
220
|
+
# TODO: Deprecate
|
|
242
221
|
def other_clouds
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
end
|
|
222
|
+
arr = []
|
|
223
|
+
clouds.each do |name, cl|
|
|
224
|
+
arr << cl if name != self.name
|
|
247
225
|
end
|
|
226
|
+
arr
|
|
248
227
|
end
|
|
249
228
|
|
|
229
|
+
# Reset the entire cloud
|
|
250
230
|
def reset!
|
|
251
231
|
reset_remoter_base!
|
|
252
|
-
@build_manifest = @describe_instances = nil
|
|
253
|
-
end
|
|
254
|
-
|
|
255
|
-
# Add to the services pool for the manifest listing
|
|
256
|
-
def add_service(serv)
|
|
257
|
-
services << serv
|
|
258
|
-
end
|
|
259
|
-
# Container for the services
|
|
260
|
-
def services
|
|
261
|
-
@services ||= []
|
|
262
|
-
end
|
|
263
|
-
|
|
232
|
+
@build_manifest = @describe_instances = @remote_instances_list = nil
|
|
233
|
+
end
|
|
264
234
|
end
|
|
265
|
-
end
|
|
266
|
-
end
|
|
235
|
+
end
|
|
236
|
+
end
|
|
@@ -5,14 +5,20 @@
|
|
|
5
5
|
require "open-uri"
|
|
6
6
|
require "ftools"
|
|
7
7
|
module PoolParty
|
|
8
|
-
class
|
|
9
|
-
include
|
|
10
|
-
extend MethodMissingSugar
|
|
8
|
+
class Default
|
|
9
|
+
include Dslify
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
# def self.options
|
|
12
|
+
default_options(
|
|
13
|
+
:testing => false,
|
|
14
|
+
:debugging => false,
|
|
15
|
+
:minimum_instances => 2,
|
|
16
|
+
:maximum_instances => 5,
|
|
13
17
|
:user => "root", # This should change here
|
|
14
18
|
:base_keypair_path => "#{ENV["HOME"]}/.ec2",
|
|
19
|
+
:base_ssh_path => "#{ENV["HOME"]}/.ssh",
|
|
15
20
|
:tmp_path => "/tmp/poolparty",
|
|
21
|
+
:poolparty_home_path => "#{ENV["HOME"]}/.poolparty",
|
|
16
22
|
:remote_storage_path => "/var/poolparty",
|
|
17
23
|
:remote_gem_path => "/var/poolparty/gems",
|
|
18
24
|
:fileserver_base => "puppet://master/files",
|
|
@@ -20,33 +26,44 @@ module PoolParty
|
|
|
20
26
|
:template_directory => "templates",
|
|
21
27
|
:template_path => "/var/lib/puppet/templates",
|
|
22
28
|
:module_path => "/etc/puppet/modules/poolparty",
|
|
23
|
-
:default_specfile_name => "clouds.
|
|
24
|
-
:
|
|
29
|
+
:default_specfile_name => "clouds.rb",
|
|
30
|
+
:properties_hash_filename => "clouds.json",
|
|
31
|
+
:vendor_path => "#{::File.dirname(__FILE__)}/../../../vendor",
|
|
32
|
+
:poolparty_src_path => "#{::File.dirname(__FILE__)}/../../..",
|
|
25
33
|
:port => "80",
|
|
26
34
|
:forwarding_port => "8080",
|
|
35
|
+
:monitor_port => 8081,
|
|
27
36
|
:proxy_mode => "http",
|
|
28
|
-
:
|
|
37
|
+
:butterfly_port => 8642,
|
|
29
38
|
:minimum_runtime => 3000, #50.minutes in seconds
|
|
30
|
-
|
|
31
|
-
:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
:contract_when => "load < 0.25",
|
|
40
|
+
:expand_when => "load > 0.9"
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
def options
|
|
44
|
+
default_options
|
|
45
|
+
end
|
|
46
|
+
|
|
39
47
|
# Class methods
|
|
40
48
|
class << self
|
|
41
|
-
def
|
|
42
|
-
|
|
49
|
+
def method_missing(m,*a,&block)
|
|
50
|
+
default_options.include?(m) ? default_options[m] : super
|
|
51
|
+
end
|
|
52
|
+
def options
|
|
53
|
+
default_options
|
|
43
54
|
end
|
|
44
55
|
# Get the access_key
|
|
45
56
|
def access_key
|
|
46
|
-
@access_key ||=
|
|
57
|
+
@access_key ||= load_access_keys_from_environment_var || load_keys_from_file[:access_key]
|
|
58
|
+
end
|
|
59
|
+
def load_access_keys_from_environment_var
|
|
60
|
+
[ ENV["AWS_ACCESS_KEY"], ENV["AWS_ACCESS_KEY_ID"]].reject {|a| a.nil? }.first
|
|
47
61
|
end
|
|
48
62
|
def secret_access_key
|
|
49
|
-
@secret_access_key ||=
|
|
63
|
+
@secret_access_key ||= load_secret_access_keys_from_environment_var || load_keys_from_file[:secret_access_key]
|
|
64
|
+
end
|
|
65
|
+
def load_secret_access_keys_from_environment_var
|
|
66
|
+
[ ENV["AWS_SECRET_ACCESS_KEY"] ].reject {|a| a.nil? }.first
|
|
50
67
|
end
|
|
51
68
|
def read_keyfile
|
|
52
69
|
open(get_working_key_file_locations).read
|
|
@@ -71,6 +88,7 @@ module PoolParty
|
|
|
71
88
|
def reset!
|
|
72
89
|
@keys = nil
|
|
73
90
|
end
|
|
91
|
+
|
|
74
92
|
# Get the instance first instance file that exists on the system from the expected places
|
|
75
93
|
# denoted in the local_instances_list_file_locations
|
|
76
94
|
def get_working_key_file_locations
|
|
@@ -80,15 +98,24 @@ module PoolParty
|
|
|
80
98
|
def key_file_locations
|
|
81
99
|
[
|
|
82
100
|
".ppkeys",
|
|
83
|
-
"#{
|
|
84
|
-
"#{
|
|
101
|
+
"#{Default.base_config_directory}/.ppkeys",
|
|
102
|
+
"#{Default.storage_directory}/ppkeys",
|
|
85
103
|
"~/.ppkeys",
|
|
86
104
|
"ppkeys"
|
|
87
105
|
]
|
|
88
106
|
end
|
|
107
|
+
def properties_hash_file
|
|
108
|
+
[
|
|
109
|
+
Default.base_config_directory,
|
|
110
|
+
Dir.pwd
|
|
111
|
+
].collect do |dir|
|
|
112
|
+
full_dir = ::File.join(dir, Default.properties_hash_filename)
|
|
113
|
+
full_dir if ::File.file?(full_dir)
|
|
114
|
+
end.compact.first || "#{Default.base_config_directory}/#{Default.properties_hash_filename}"
|
|
115
|
+
end
|
|
89
116
|
def storage_directory
|
|
90
117
|
[
|
|
91
|
-
"/var/poolparty"
|
|
118
|
+
"/var/poolparty"
|
|
92
119
|
].select do |dir|
|
|
93
120
|
dir if viable_directory?(dir)
|
|
94
121
|
end.first || ::File.join( "/tmp/poolparty")
|
|
@@ -98,12 +125,12 @@ module PoolParty
|
|
|
98
125
|
"/var/log/poolparty"
|
|
99
126
|
].select do |dir|
|
|
100
127
|
dir if viable_directory?(dir)
|
|
101
|
-
end.first
|
|
128
|
+
end.first
|
|
102
129
|
end
|
|
103
130
|
# Assume the logs will be at the pool.log location within the
|
|
104
131
|
# logger_location set above
|
|
105
132
|
def pool_logger_location
|
|
106
|
-
::File.join(logger_location, "
|
|
133
|
+
::File.join(logger_location, "poolparty.log")
|
|
107
134
|
end
|
|
108
135
|
def custom_monitor_directories
|
|
109
136
|
[
|
|
@@ -112,11 +139,21 @@ module PoolParty
|
|
|
112
139
|
"#{Dir.pwd}/monitors"
|
|
113
140
|
].select {|d| d if viable_directory?(d) }
|
|
114
141
|
end
|
|
142
|
+
|
|
143
|
+
def custom_modules_directories
|
|
144
|
+
[
|
|
145
|
+
"/var/poolparty/modules",
|
|
146
|
+
"/etc/poolparty/modules",
|
|
147
|
+
"#{Dir.pwd}/modules"
|
|
148
|
+
].select {|d| d if viable_directory?(d) }
|
|
149
|
+
end
|
|
115
150
|
# Only return true if the directory we are reading is both readable
|
|
116
151
|
# and exists
|
|
117
152
|
def viable_directory?(dir)
|
|
118
153
|
::File.directory?(dir) && ::File.readable?(dir)
|
|
119
154
|
end
|
|
120
155
|
end
|
|
156
|
+
#end of class methods
|
|
157
|
+
|
|
121
158
|
end
|
|
122
159
|
end
|