auser-poolparty 1.0.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/License.txt +1 -1
- data/PostInstall.txt +1 -1
- data/README.txt +1 -1
- data/Rakefile +13 -37
- data/VERSION.yml +4 -0
- data/bin/cloud +3 -2
- data/bin/cloud-bootstrap +21 -0
- data/bin/cloud-configure +21 -10
- data/bin/{pool-console → cloud-console} +0 -0
- data/bin/cloud-list +9 -12
- data/bin/cloud-osxcopy +5 -4
- data/bin/cloud-provision +17 -21
- data/bin/cloud-setup-dev +11 -11
- data/bin/cloud-spec +2 -1
- data/bin/cloud-ssh +12 -3
- data/bin/cloud-start +19 -23
- data/bin/cloud-terminate +1 -1
- data/bin/ec2-list-active +24 -0
- data/bin/server-become-master +1 -1
- data/bin/server-butterfly +25 -0
- data/bin/server-clean-cert-for +1 -1
- data/bin/server-cloud-elections +26 -0
- data/bin/server-ensure-provisioning +1 -2
- data/bin/server-get-load +9 -12
- data/bin/server-list-active +21 -13
- data/bin/server-list-instances +15 -0
- data/bin/server-manage-election +67 -0
- data/bin/server-monitor.ru +25 -0
- data/bin/server-query-agent +1 -1
- data/bin/server-rerun +1 -1
- data/bin/server-update-hosts +1 -1
- data/bin/server-write-new-nodes +1 -1
- data/config/jeweler.rb +43 -0
- data/config/requirements.rb +1 -9
- data/examples/basic.rb +9 -6
- data/examples/fairchild.rb +32 -0
- data/examples/fairchild_chef.rb +19 -0
- data/examples/paparazzi.conf.erb +21 -0
- data/generators/poolspec/poolspec_generator.rb +1 -9
- data/lib/erlang/messenger/Rakefile +1 -1
- data/lib/erlang/messenger/src/pm_node.erl +1 -1
- data/lib/erlang/messenger/src/utils.erl +0 -1
- data/lib/poolparty/aska/aska.rb +18 -16
- data/lib/poolparty/base_packages/bind.rb +11 -0
- data/lib/poolparty/base_packages/haproxy.rb +36 -34
- data/lib/poolparty/base_packages/heartbeat.rb +47 -61
- data/lib/poolparty/base_packages/poolparty.rb +5 -83
- data/lib/poolparty/base_packages/ruby.rb +4 -4
- data/lib/poolparty/base_packages/runit.rb +1 -1
- data/lib/poolparty/capistrano.rb +2 -1
- data/lib/poolparty/core/array.rb +9 -3
- data/lib/poolparty/core/hash.rb +36 -11
- data/lib/poolparty/core/kernel.rb +12 -8
- data/lib/poolparty/core/object.rb +20 -21
- data/lib/poolparty/core/ordered_hash.rb +99 -0
- data/lib/poolparty/core/string.rb +58 -15
- data/lib/poolparty/dependencies.rb +49 -0
- data/lib/poolparty/dependency_resolver/chef_resolver.rb +209 -0
- data/lib/poolparty/dependency_resolver/dependency_resolver.rb +42 -0
- data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +28 -0
- data/lib/poolparty/{dependency_resolutions → dependency_resolver}/puppet.rb +29 -28
- data/lib/poolparty/dependency_resolver/puppet_resolver.rb +173 -0
- 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 +9 -9
- data/lib/poolparty/helpers/display.rb +1 -5
- data/lib/poolparty/helpers/hash_printer.rb +44 -0
- data/lib/poolparty/helpers/optioner.rb +27 -20
- data/lib/poolparty/lite.rb +20 -0
- data/lib/poolparty/modules/cloud_dsl.rb +6 -0
- data/lib/poolparty/modules/cloud_resourcer.rb +48 -111
- data/lib/poolparty/modules/daemonizable.rb +141 -140
- data/lib/poolparty/modules/definable_resource.rb +7 -10
- data/lib/poolparty/modules/file_writer.rb +19 -15
- data/lib/poolparty/modules/pretty_printer.rb +1 -1
- data/lib/poolparty/modules/resourcing_dsl.rb +46 -41
- data/lib/poolparty/monitors/base_monitor.rb +2 -10
- data/lib/poolparty/monitors/monitor_rack.rb +125 -0
- data/lib/poolparty/monitors/monitors/load_monitor.rb +15 -0
- data/lib/poolparty/monitors/monitors/memory_monitor.rb +50 -50
- data/lib/poolparty/monitors/monitors/server_monitor.rb +7 -0
- data/lib/poolparty/monitors/monitors/web_monitor.rb +18 -18
- data/lib/poolparty/monitors/neighborhood_monitor.rb +25 -0
- data/lib/poolparty/monitors/stats_monitor.rb +183 -0
- data/lib/poolparty/monitors.rb +6 -0
- data/lib/poolparty/net/init.rb +11 -0
- data/lib/poolparty/net/messenger.rb +1 -18
- data/lib/poolparty/net/remote_bases.rb +21 -0
- data/lib/poolparty/net/remote_instance.rb +36 -27
- data/lib/poolparty/net/remoter/cloud_control.rb +251 -0
- data/lib/poolparty/net/remoter/connections.rb +180 -0
- data/lib/poolparty/net/remoter/interactive.rb +121 -0
- data/lib/poolparty/net/remoter/lists.rb +12 -0
- data/lib/poolparty/net/remoter_base.rb +46 -124
- data/lib/poolparty/net/{remote_bases → remoter_bases/ec2}/ec2.rb +78 -52
- 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/plugins/chef.rb +168 -0
- data/lib/poolparty/plugins/deploydirectory.rb +22 -46
- data/lib/poolparty/plugins/git.rb +27 -18
- data/lib/poolparty/plugins/line_in_file.rb +13 -0
- data/lib/poolparty/plugins/rsyncmirror.rb +2 -3
- data/lib/poolparty/poolparty/cloud.rb +172 -110
- data/lib/poolparty/poolparty/custom_resource.rb +2 -2
- data/lib/poolparty/poolparty/{base.rb → default.rb} +56 -20
- data/lib/poolparty/poolparty/key.rb +75 -0
- data/lib/poolparty/poolparty/loggable.rb +28 -27
- data/lib/poolparty/poolparty/neighborhoods.rb +69 -0
- data/lib/poolparty/poolparty/plugin.rb +52 -19
- data/lib/poolparty/poolparty/plugin_model.rb +18 -21
- data/lib/poolparty/poolparty/pool.rb +23 -24
- data/lib/poolparty/poolparty/poolparty_base_class.rb +181 -0
- data/lib/poolparty/poolparty/resource.rb +74 -176
- data/lib/poolparty/poolparty/script.rb +32 -20
- data/lib/poolparty/poolparty/service.rb +34 -0
- data/lib/poolparty/poolparty/template.rb +18 -0
- data/lib/poolparty/provision/boot_strapper.rb +140 -0
- data/lib/poolparty/provision/configurations/chef.rb +22 -0
- data/lib/poolparty/provision/configurations/puppet.rb +28 -0
- data/lib/poolparty/provision/dr_configure.rb +85 -0
- data/lib/poolparty/provisioners/capistrano/capistrano.rb +21 -19
- data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +19 -13
- data/lib/poolparty/provisioners/capistrano/recipes/aws.rb +21 -0
- data/lib/poolparty/provisioners/capistrano/{recipies → recipes}/base.rb +76 -56
- data/lib/poolparty/provisioners/capistrano/recipes/master.rb +66 -0
- data/lib/poolparty/provisioners/capistrano/recipes/puppet.rb +101 -0
- data/lib/poolparty/provisioners/capistrano/{recipies → recipes}/slave.rb +5 -9
- data/lib/poolparty/provisioners/provisioner_base.rb +50 -43
- data/lib/poolparty/{poolparty/resources → resources}/cron.rb +0 -0
- data/lib/poolparty/{poolparty/resources → resources}/custom_service.rb +1 -1
- data/lib/poolparty/resources/directory.rb +13 -0
- data/lib/poolparty/resources/exec.rb +25 -0
- data/lib/poolparty/resources/file.rb +29 -0
- data/lib/poolparty/{poolparty/resources → resources}/host.rb +4 -2
- data/lib/poolparty/{poolparty/resources → resources}/mount.rb +5 -6
- data/lib/poolparty/resources/package.rb +12 -0
- data/lib/poolparty/resources/remote_file.rb +20 -0
- data/lib/poolparty/{poolparty/resources → resources}/service.rb +1 -2
- data/lib/poolparty/resources/sshkey.rb +27 -0
- data/lib/poolparty/resources/symlink.rb +21 -0
- data/lib/poolparty/{poolparty/resources/remote_user.rb → resources/user.rb} +1 -5
- data/lib/poolparty/resources/variable.rb +9 -0
- data/lib/poolparty/schema.rb +64 -0
- data/lib/poolparty/services/conditional.rb +46 -0
- data/lib/poolparty/{poolparty/resources → services}/gem_package.rb +12 -10
- data/lib/poolparty/spec.rb +2 -5
- data/lib/poolparty/templates/erlang_cookie_maker +6 -0
- data/lib/poolparty/templates/gemrc +11 -0
- data/lib/poolparty/templates/ha.cf +1 -1
- data/lib/poolparty/templates/haproxy.conf +7 -7
- data/lib/poolparty/templates/haresources +2 -2
- data/lib/poolparty/templates/monitor.ru +16 -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.rb +67 -14
- 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 +19 -0
- data/spec/bin/server-list-active_spec.rb +22 -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 +5 -28
- data/spec/poolparty/core/array_spec.rb +18 -3
- data/spec/poolparty/core/hash_spec.rb +24 -30
- 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 +119 -0
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +128 -0
- data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +16 -0
- data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +124 -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 -14
- 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 +5 -5
- 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 +78 -101
- data/spec/poolparty/net/remoter_base_spec.rb +3 -59
- data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +24 -0
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +125 -0
- data/spec/poolparty/net/{remote_bases → remoter_bases}/ec2_spec.rb +32 -49
- data/spec/poolparty/net/remoter_spec.rb +51 -44
- 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 +14 -19
- data/spec/poolparty/plugins/line_spec.rb +14 -8
- data/spec/poolparty/poolparty/cloud_spec.rb +87 -128
- 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/custom_resource_spec.rb +2 -43
- 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 +66 -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 +69 -268
- 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 +80 -0
- data/spec/poolparty/poolparty_spec.rb +4 -4
- data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +31 -23
- data/spec/poolparty/provisioners/provisioner_base_spec.rb +128 -122
- 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 +62 -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 +29 -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/services/conditional_spec.rb +52 -0
- data/spec/poolparty/spec_helper.rb +104 -23
- data/spec/poolparty/test_spec_helper.rb +13 -0
- data/tasks/development.rake +76 -69
- data/tasks/poolparty.rake +54 -0
- data/tasks/server.rake +41 -39
- data/test/poolparty/core/hash_test.rb +23 -0
- data/test/test_helper.rb +3 -2
- 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 +69 -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 +114 -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 +13 -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/base.rb +65 -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 +89 -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 +103 -0
- data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
- data/vendor/gems/suitcase/suitcase.gemspec +52 -0
- data/vendor/gems/suitcase/test/suitcase_test.rb +89 -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 +428 -184
- data/Capfile +0 -1
- data/Manifest.txt +0 -404
- data/bin/cloud-add-access +0 -29
- data/bin/cloud-add-keypair +0 -28
- data/bin/cloud-maintain +0 -30
- data/bin/cloud-refresh +0 -17
- data/bin/server-list-responding +0 -24
- 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/net/remote.rb +0 -38
- data/lib/poolparty/net/remoter.rb +0 -313
- data/lib/poolparty/plugins/line.rb +0 -77
- data/lib/poolparty/poolparty/resources/class_package.rb +0 -112
- data/lib/poolparty/poolparty/resources/conditional.rb +0 -67
- 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/package.rb +0 -24
- data/lib/poolparty/poolparty/resources/remote_file.rb +0 -26
- data/lib/poolparty/poolparty/resources/sshkey.rb +0 -23
- data/lib/poolparty/poolparty/resources/symlink.rb +0 -31
- data/lib/poolparty/poolparty/resources/variable.rb +0 -32
- data/lib/poolparty/provisioners/capistrano/recipies/master.rb +0 -112
- data/lib/poolparty/server/agent.rb +0 -59
- data/lib/poolparty/templates/puppet.conf +0 -28
- data/lib/poolparty/templates/puppetcleaner +0 -12
- data/lib/poolparty/templates/puppetrerun +0 -22
- data/poolparty.gemspec +0 -64
- data/spec/poolparty/dependency_resolutions/base_spec.rb +0 -11
- data/spec/poolparty/modules/configurable_spec.rb +0 -29
- 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 -39
- data/spec/poolparty/poolparty/resources/variable_spec.rb +0 -24
- data/website/index.html +0 -107
- data/website/index.txt +0 -95
- data/website/stylesheets/code.css +0 -29
@@ -2,16 +2,20 @@ module PoolParty
|
|
2
2
|
module FileWriter
|
3
3
|
def copy_file_to_storage_directory(file, preceded="")
|
4
4
|
make_base_directory
|
5
|
-
path = ::File.join(
|
5
|
+
path = ::File.join( Default.storage_directory, preceded, ::File.basename(file) )
|
6
6
|
::FileUtils.cp file, path unless file == path || ::File.file?(path)
|
7
7
|
end
|
8
8
|
def cleanup_storage_directory
|
9
|
-
::FileUtils.rm_rf "#{
|
9
|
+
::FileUtils.rm_rf "#{Default.storage_directory}"
|
10
10
|
end
|
11
|
-
def copy_template_to_storage_directory(file)
|
11
|
+
def copy_template_to_storage_directory(file, force=false)
|
12
12
|
make_template_directory
|
13
|
-
path = ::File.join(
|
14
|
-
|
13
|
+
path = ::File.join( Default.tmp_path, Default.template_directory, ::File.basename(file) )
|
14
|
+
if force
|
15
|
+
FileUtils.cp file, path
|
16
|
+
else
|
17
|
+
FileUtils.cp file, path unless file == path || ::File.exists?(path)
|
18
|
+
end
|
15
19
|
end
|
16
20
|
def copy_directory_into_template_storage_directory(dir)
|
17
21
|
path = make_template_directory(dir)
|
@@ -21,22 +25,22 @@ module PoolParty
|
|
21
25
|
::File.basename(path)
|
22
26
|
end
|
23
27
|
def copy_directory_into_storage_directory(from, pat)
|
24
|
-
to = ::File.join(
|
28
|
+
to = ::File.join(Default.storage_directory, pat)
|
25
29
|
|
26
30
|
# make_directory_in_storage_directory(to) unless ::File.directory?(to)
|
27
31
|
FileUtils.cp_r(from, to)
|
28
32
|
end
|
29
33
|
def make_directory_in_storage_directory(dirname="newdir")
|
30
|
-
path = ::File.join(
|
34
|
+
path = ::File.join( Default.storage_directory, dirname )
|
31
35
|
make_base_path path
|
32
36
|
end
|
33
37
|
def write_to_file_in_storage_directory(file, str="", preceded="", &block)
|
34
|
-
path = ::File.join(
|
38
|
+
path = ::File.join( Default.storage_directory, preceded, ::File.basename(file) )
|
35
39
|
write_to_file(path, str, &block)
|
36
40
|
end
|
37
41
|
def write_to_file(file, str="", preceded="", &block)
|
38
|
-
path = ::File.join(
|
39
|
-
make_base_path(
|
42
|
+
path = ::File.join( Default.storage_directory, preceded, ::File.basename(file) )
|
43
|
+
make_base_path( Default.storage_directory )
|
40
44
|
::File.open(path, "w+") do |f|
|
41
45
|
f.print str
|
42
46
|
f.flush
|
@@ -46,7 +50,7 @@ module PoolParty
|
|
46
50
|
# Write a temp file with the content str and return the Tempfile
|
47
51
|
# It creates a random file name
|
48
52
|
def write_to_temp_file(str="", &block)
|
49
|
-
returning Tempfile.new("#{
|
53
|
+
returning Tempfile.new("#{Default.storage_directory}/PoolParty-#{str[0..10].chomp}-#{rand(1000)}") do |fp|
|
50
54
|
fp.print str
|
51
55
|
fp.flush
|
52
56
|
block.call(fp)
|
@@ -65,14 +69,14 @@ module PoolParty
|
|
65
69
|
end
|
66
70
|
def make_base_directory
|
67
71
|
begin
|
68
|
-
FileUtils.mkdir_p
|
72
|
+
FileUtils.mkdir_p Default.storage_directory unless ::File.directory?(Default.storage_directory)
|
69
73
|
rescue Errno::EEXIST
|
70
|
-
FileUtils.rm
|
74
|
+
FileUtils.rm Default.storage_directory
|
71
75
|
make_base_directory
|
72
76
|
end
|
73
77
|
end
|
74
78
|
def make_template_directory(dir=nil)
|
75
|
-
path = dir ? ::File.join(
|
79
|
+
path = dir ? ::File.join(Default.tmp_path, Default.template_directory, ::File.basename(dir)) : ::File.join(Default.tmp_path, Default.template_directory)
|
76
80
|
begin
|
77
81
|
make_base_directory
|
78
82
|
FileUtils.mkdir path unless ::File.directory?(path)
|
@@ -83,7 +87,7 @@ module PoolParty
|
|
83
87
|
path
|
84
88
|
end
|
85
89
|
def clear_base_directory
|
86
|
-
Dir["#{
|
90
|
+
Dir["#{Default.storage_directory}/**/*"].each do |f|
|
87
91
|
::FileUtils.rm f if ::File.file?(f)
|
88
92
|
end
|
89
93
|
end
|
@@ -26,7 +26,7 @@ module PoolParty
|
|
26
26
|
def pretty_options(pre, o)
|
27
27
|
return "" unless o.respond_to?(:options)
|
28
28
|
print_options = (o.respond_to?(:parent) && o.parent && o.parent.respond_to?(:options)) ?
|
29
|
-
(o.
|
29
|
+
(o.dsl_options.delete_if {|k,v| o.parent.dsl_options.has_key?(k) && o.parent.options[k] == o.options[k] && !o.options[k].nil? } ) :
|
30
30
|
o.options
|
31
31
|
print_options = print_options.map {|k,v| [k, o.send(k.to_sym).to_s] }.inject({}) { |r,e| r[e[0]] = e[1] unless o.class.default_options[e[0]] == e[1] || e[1].nil? || e[1].empty?; r }
|
32
32
|
print_options.flush_out("#{pre}\t")
|
@@ -2,68 +2,73 @@ module PoolParty
|
|
2
2
|
module ResourcingDsl
|
3
3
|
# Overrides for syntax
|
4
4
|
# Allows us to send require to require a resource
|
5
|
-
def require(str="")
|
6
|
-
str ? options.merge!(:require => str) : options[:require]
|
7
|
-
end
|
8
5
|
def requires(str=nil)
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
str ? dsl_options.merge!(:require => send_if_method(str)) : dsl_options[:require]
|
7
|
+
end
|
8
|
+
def on_change(str=nil)
|
9
|
+
str ? dsl_options.merge!(:notify => send_if_method(str)) : dsl_options[:notify]
|
10
|
+
end
|
12
11
|
def ensures(str="running")
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
str == :absent ? is_absent : is_present
|
13
|
+
end
|
14
|
+
def present
|
15
|
+
"present"
|
16
|
+
end
|
17
|
+
def absent
|
18
|
+
"absent"
|
19
19
|
end
|
20
20
|
# Allows us to send an ensure to ensure the presence of a resource
|
21
21
|
def is_present(*args)
|
22
|
-
|
22
|
+
dsl_options.merge!(:ensures => present)
|
23
|
+
present
|
23
24
|
end
|
24
25
|
# Ensures that what we are sending is absent
|
25
26
|
def is_absent(*args)
|
26
|
-
|
27
|
+
dsl_options.merge!(:ensures => absent)
|
28
|
+
absent
|
27
29
|
end
|
28
30
|
# Alias for unless
|
29
31
|
def ifnot(str="")
|
30
|
-
|
31
|
-
end
|
32
|
-
def present
|
33
|
-
"present"
|
34
|
-
end
|
35
|
-
def absent
|
36
|
-
"absent"
|
32
|
+
dsl_options.merge!(:unless => str)
|
37
33
|
end
|
38
34
|
def cancel(*args)
|
39
|
-
|
35
|
+
dsl_options[:cancelled] = args.empty? ? true : args[0]
|
40
36
|
end
|
41
37
|
def cancelled?
|
42
|
-
|
38
|
+
dsl_options[:cancelled] || false
|
43
39
|
end
|
44
40
|
def printed(*args)
|
45
|
-
|
41
|
+
dsl_options[:printed] = true
|
46
42
|
end
|
47
43
|
def printed?
|
48
|
-
|
49
|
-
end
|
50
|
-
|
51
|
-
#
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
def
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
options.delete(:source) if options.has_key?(:source)
|
63
|
-
copy_template_to_storage_directory(file)
|
44
|
+
dsl_options[:printed] || false
|
45
|
+
end
|
46
|
+
|
47
|
+
#TODO: Diet
|
48
|
+
def render_template
|
49
|
+
# @templates.
|
50
|
+
end
|
51
|
+
|
52
|
+
def get_client_or_gem_template(file)
|
53
|
+
if ::File.file?(file) && ::File.readable?(file)
|
54
|
+
file
|
55
|
+
elsif client_templates_directory_exists? && client_template_exists?(file)
|
56
|
+
vputs "using custom template #{::File.join(Dir.pwd, "templates/#{file}")}"
|
57
|
+
::File.join(Dir.pwd, "templates/#{file}")
|
64
58
|
else
|
65
|
-
|
59
|
+
vputs "using standard template: #{::File.join(::File.dirname(__FILE__), "..", "templates/#{file}")}"
|
60
|
+
::File.join(::File.dirname(__FILE__), "..", "templates/#{file}")
|
66
61
|
end
|
67
62
|
end
|
63
|
+
|
64
|
+
def client_templates_directory_exists?
|
65
|
+
::File.directory?("#{Dir.pwd}/templates")
|
66
|
+
end
|
67
|
+
|
68
|
+
def client_template_exists?(filename)
|
69
|
+
return true if ::File.file?(filename) && ::File.readable?(filename)
|
70
|
+
file = ::File.join("#{Dir.pwd}/templates", filename)
|
71
|
+
::File.file?(file) && ::File.readable?(file)
|
72
|
+
end
|
68
73
|
end
|
69
74
|
end
|
@@ -29,7 +29,7 @@
|
|
29
29
|
Notice that at the end, you must call register_monitor :monitorname. This will tell your cloud
|
30
30
|
that it can monitor it with this monitor.
|
31
31
|
=end
|
32
|
-
require "#{::File.dirname(__FILE__)}/../poolparty/
|
32
|
+
require "#{::File.dirname(__FILE__)}/../poolparty/default"
|
33
33
|
|
34
34
|
module PoolParty
|
35
35
|
module Monitors
|
@@ -78,12 +78,4 @@ end
|
|
78
78
|
# Require included monitors
|
79
79
|
Dir["#{File.dirname(__FILE__)}/monitors/*.rb"].each {|f| require f}
|
80
80
|
# Require custom monitors
|
81
|
-
Dir["#{PoolParty::
|
82
|
-
|
83
|
-
module PoolParty
|
84
|
-
module Cloud
|
85
|
-
class Cloud
|
86
|
-
include PoolParty::Monitors
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
81
|
+
Dir["#{PoolParty::Default.custom_monitor_directories}/*.rb"].each {|f| require f}
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require ::File.dirname(__FILE__)+"/../aska/aska.rb"
|
2
|
+
require ::File.dirname(__FILE__)+"/../lite.rb"
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'rack'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
class String
|
9
|
+
def camelcase
|
10
|
+
gsub(/(^|_|-)(.)/) { $2.upcase }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module Monitors
|
15
|
+
|
16
|
+
# def self.call(env)
|
17
|
+
# @request = Rack::Request.new(env)
|
18
|
+
# @response = Rack::Response.new
|
19
|
+
# begin
|
20
|
+
# response.write map_to_class_method(path_map(env)).to_json
|
21
|
+
# rescue Exception=>e
|
22
|
+
# @response.write e
|
23
|
+
# @response.status = 500
|
24
|
+
# end
|
25
|
+
# @response.finish # [response.status, response.headers, response.body]
|
26
|
+
# end
|
27
|
+
|
28
|
+
class MonitorRack
|
29
|
+
|
30
|
+
def new(opts={})
|
31
|
+
@opts=opts
|
32
|
+
end
|
33
|
+
|
34
|
+
def call(env)
|
35
|
+
dup._call(env)
|
36
|
+
end
|
37
|
+
|
38
|
+
def _call(env)
|
39
|
+
@env = env
|
40
|
+
@request = Rack::Request.new env
|
41
|
+
@response = Rack::Response.new
|
42
|
+
begin
|
43
|
+
path_array= path_map(env['REQUEST_PATH']) || []
|
44
|
+
puts "-- trying to map #{path_array.inspect}"
|
45
|
+
@response.write map_to_class_method(path_array).to_json
|
46
|
+
# rescue Exception=>e
|
47
|
+
# @response.write e
|
48
|
+
# @response.status = 500
|
49
|
+
end
|
50
|
+
@response.finish # this is [response.status, response.headers, response.body]
|
51
|
+
end
|
52
|
+
|
53
|
+
def env
|
54
|
+
@env
|
55
|
+
end
|
56
|
+
def response
|
57
|
+
@response
|
58
|
+
end
|
59
|
+
def request
|
60
|
+
@request
|
61
|
+
end
|
62
|
+
|
63
|
+
def path_map(requested_path)
|
64
|
+
requested_path.split('.')[0].split('/')[1..-1]
|
65
|
+
end
|
66
|
+
|
67
|
+
# Find class and call method from the pattern /class_name/method/args
|
68
|
+
def map_to_class_method(path)
|
69
|
+
if !path or path.empty? or path[0].nil?
|
70
|
+
response.write 'cannot map an empty path'
|
71
|
+
response.status='404'
|
72
|
+
else
|
73
|
+
klass = constantize(path[0])
|
74
|
+
raise "#{path[0]} did not map to a Constant" if !klass
|
75
|
+
case path.size
|
76
|
+
when 0
|
77
|
+
self.respond_to?(:default) ? self.send(:default) : response.status='404'
|
78
|
+
when 1
|
79
|
+
klass.send(:default) rescue klass.new(env).send(:default)
|
80
|
+
when 2
|
81
|
+
klass.send(path[1].to_sym) rescue klass.new(env).send(path[1].to_sym)
|
82
|
+
else
|
83
|
+
klass.send(path[1].to_sym, *path[2..-1])
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def constantize(name, base_object=Monitors)
|
89
|
+
begin
|
90
|
+
const = base_object.constants.find{|cnst| cnst == name.camelcase}
|
91
|
+
base_object.module_eval const
|
92
|
+
rescue Exception => e
|
93
|
+
puts "#{name.camelcase} is not defined. #{e}"
|
94
|
+
nil
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def default
|
99
|
+
'default response'
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
#load our monitors
|
105
|
+
require ::File.dirname(__FILE__)+"/stats_monitor.rb"
|
106
|
+
require ::File.dirname(__FILE__)+"/neighborhood_monitor.rb"
|
107
|
+
|
108
|
+
|
109
|
+
# just here as an example
|
110
|
+
# access it at /monitor_time/ or /monitor_time/now
|
111
|
+
class MonitorTime
|
112
|
+
def self.default
|
113
|
+
now
|
114
|
+
end
|
115
|
+
def self.now
|
116
|
+
Time.now
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
class Favicon
|
121
|
+
def self.default
|
122
|
+
''
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -1,50 +1,50 @@
|
|
1
|
-
module PoolParty
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
1
|
+
# module PoolParty
|
2
|
+
# module Monitors
|
3
|
+
#
|
4
|
+
# class MemoryMonitor < BaseMonitor
|
5
|
+
#
|
6
|
+
# def run
|
7
|
+
# uname = %x[uname]
|
8
|
+
# case uname.chomp
|
9
|
+
# when "Darwin"
|
10
|
+
# darwin_memory_usage
|
11
|
+
# else
|
12
|
+
# nix_memory_usage
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# def darwin_memory_usage
|
17
|
+
# str = %x[vm_stat]
|
18
|
+
# keep_array = []
|
19
|
+
# array_of_strings = str
|
20
|
+
# begin
|
21
|
+
# free_memory = array_of_strings[/free:(\W*)+([0-9]+)/, 2].to_f
|
22
|
+
# active_memory = array_of_strings[/active:(\W*)([0-9]+)/, 2].to_f
|
23
|
+
# inactive_memory = array_of_strings[/inactive:(\W*)([0-9]+)/, 2].to_f
|
24
|
+
#
|
25
|
+
# used_memory = (active_memory + inactive_memory)
|
26
|
+
# total_memory = (free_memory + active_memory + inactive_memory)
|
27
|
+
#
|
28
|
+
# used_memory / total_memory
|
29
|
+
# rescue Exception => e
|
30
|
+
# 0.0
|
31
|
+
# end
|
32
|
+
# end
|
33
|
+
#
|
34
|
+
# def nix_memory_usage
|
35
|
+
# str = %x[free -m | grep -i mem]
|
36
|
+
# begin
|
37
|
+
# total_memory = str.split[1].to_f
|
38
|
+
# used_memory = str.split[2].to_f
|
39
|
+
#
|
40
|
+
# used_memory / total_memory
|
41
|
+
# rescue Exception => e
|
42
|
+
# 0.0
|
43
|
+
# end
|
44
|
+
# end
|
45
|
+
#
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
# register_monitor :memory
|
49
|
+
# end
|
50
|
+
# end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
=begin rdoc
|
2
|
-
|
3
|
-
=end
|
4
|
-
module PoolParty
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
1
|
+
# =begin rdoc
|
2
|
+
# Web monitor.
|
3
|
+
# =end
|
4
|
+
# module PoolParty
|
5
|
+
# module Monitors
|
6
|
+
#
|
7
|
+
# class WebMonitor < BaseMonitor
|
8
|
+
#
|
9
|
+
# def run
|
10
|
+
# str = %x[httperf]
|
11
|
+
# str.split(/\s+/)[-1].to_f rescue 0.0
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# register_monitor :cpu
|
17
|
+
# end
|
18
|
+
# end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require ::File.dirname(__FILE__)+"/monitor_rack.rb"
|
2
|
+
require ::File.dirname(__FILE__)+"/../lite.rb"
|
3
|
+
require ::File.dirname(__FILE__)+"/../core/hash.rb"
|
4
|
+
|
5
|
+
module Monitors
|
6
|
+
|
7
|
+
class Neighborhood
|
8
|
+
attr_reader :stats, :request
|
9
|
+
attr_accessor :response
|
10
|
+
|
11
|
+
def initialize(env, o={})
|
12
|
+
@env = env
|
13
|
+
@request = Rack::Request.new env
|
14
|
+
@response = Rack::Response.new
|
15
|
+
@cloud = JSON.parse( open( "/etc/poolparty/clouds.json" ).read )
|
16
|
+
@opts = @cloud["options"]
|
17
|
+
@remoter_base = PoolParty::Remote.const_get(@opts.remote_base.split("::")[-1].camelcase)
|
18
|
+
end
|
19
|
+
|
20
|
+
def default
|
21
|
+
@remoter_base.send :describe_instances, @opts
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|