fairchild-poolparty 1.1.5 → 1.2.12
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +3 -0
- data/README.txt +13 -9
- data/Rakefile +0 -1
- data/VERSION.yml +2 -2
- data/bin/cloud +43 -46
- data/bin/cloud-bootstrap +33 -23
- data/bin/cloud-configure +33 -34
- data/bin/cloud-console +31 -9
- data/bin/cloud-contract +27 -11
- data/bin/cloud-expand +32 -19
- data/bin/cloud-list +43 -15
- data/bin/cloud-osxcopy +22 -12
- data/bin/cloud-provision +39 -24
- data/bin/cloud-run +37 -0
- data/bin/cloud-setup-dev +31 -20
- data/bin/cloud-show +40 -21
- data/bin/cloud-ssh +24 -15
- data/bin/cloud-start +33 -19
- data/bin/cloud-terminate +34 -15
- data/bin/cloud-verify +41 -0
- data/bin/install-poolparty +22 -0
- data/bin/server-cloud-elections +17 -23
- data/bin/server-list-active +23 -22
- data/bin/server-manage-election +14 -23
- data/bin/server-show-stats +1 -1
- data/config/jeweler.rb +6 -6
- data/examples/basic.rb +13 -14
- data/examples/fairchild.rb +25 -20
- data/examples/maize.rb +37 -0
- data/examples/metavirt_cloud.rb +33 -0
- data/examples/simple.rb +13 -0
- data/examples/vmrun_cloud.rb +17 -0
- data/lib/poolparty/{aska/aska.rb → aska.rb} +3 -0
- data/lib/poolparty/core/array.rb +13 -1
- data/lib/poolparty/core/exception.rb +1 -1
- data/lib/poolparty/core/hash.rb +63 -2
- data/lib/poolparty/core/integer.rb +11 -0
- data/lib/poolparty/core/object.rb +41 -19
- data/lib/poolparty/core/proc.rb +0 -7
- data/lib/poolparty/core/string.rb +35 -2
- data/lib/poolparty/core/symbol.rb +10 -0
- data/lib/poolparty/core/time.rb +6 -0
- data/lib/poolparty/dependency_resolver/chef_resolver.rb +40 -41
- data/lib/poolparty/dependency_resolver/dependency_resolver.rb +1 -1
- data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +6 -6
- data/lib/poolparty/dependency_resolver/puppet.rb +0 -1
- data/lib/poolparty/dependency_resolver/puppet_resolver.rb +14 -48
- data/lib/poolparty/exceptions/MasterException.rb +2 -2
- data/lib/poolparty/extra/duration.rb +96 -0
- data/lib/poolparty/helpers/binary.rb +1 -1
- data/lib/poolparty/helpers/console.rb +0 -5
- data/lib/poolparty/helpers/optioner.rb +18 -13
- data/lib/poolparty/installers/base_installer.rb +113 -0
- data/lib/poolparty/installers/ec2.rb +141 -0
- data/lib/poolparty/installers/vmrun.rb +144 -0
- data/lib/poolparty/lite.rb +5 -2
- data/lib/poolparty/modules/callbacks.rb +15 -2
- data/lib/poolparty/modules/cloud_dsl.rb +10 -8
- data/lib/poolparty/modules/cloud_resourcer.rb +39 -59
- data/lib/poolparty/modules/daemonizable.rb +4 -5
- data/lib/poolparty/modules/definable_resource.rb +6 -7
- data/lib/poolparty/modules/file_writer.rb +2 -2
- data/lib/poolparty/modules/output.rb +2 -2
- data/lib/poolparty/modules/pinger.rb +9 -2
- data/lib/poolparty/modules/pretty_printer.rb +1 -1
- data/lib/poolparty/modules/resourcing_dsl.rb +1 -29
- data/lib/poolparty/modules/searchable_paths.rb +100 -0
- data/lib/poolparty/modules/user_helpers.rb +1 -1
- data/lib/poolparty/monitors/base_monitor.rb +65 -0
- data/lib/poolparty/monitors/monitor_daemon.rb +168 -0
- data/lib/poolparty/monitors/monitor_rack.rb +29 -15
- data/lib/poolparty/monitors/monitors/{time_monitor.rb → clock_monitor.rb} +7 -2
- data/lib/poolparty/monitors/monitors/cloud_monitor.rb +36 -0
- data/lib/poolparty/monitors/monitors/elections_monitor.rb +76 -0
- data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +15 -12
- data/lib/poolparty/monitors/monitors/stats_monitor.rb +68 -49
- data/lib/poolparty/net/init.rb +12 -7
- data/lib/poolparty/net/remote_instance.rb +48 -64
- data/lib/poolparty/net/remoter/cloud_control.rb +0 -177
- data/lib/poolparty/net/remoter/connections.rb +19 -14
- data/lib/poolparty/net/remoter/interactive.rb +30 -24
- data/lib/poolparty/net/remoter_base.rb +140 -48
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +119 -71
- data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +42 -31
- data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +75 -10
- data/lib/poolparty/net/remoter_bases/libvirt/libvirt.rb +73 -0
- data/lib/poolparty/net/remoter_bases/libvirt/libvirt_instance.rb +64 -0
- data/lib/poolparty/net/remoter_bases/metavirt/metavirt.rb +110 -0
- data/lib/poolparty/net/remoter_bases/metavirt/metavirt_instance.rb +37 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +1 -1
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +1 -1
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -117
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +59 -43
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +37 -21
- data/lib/poolparty/plugins/apache2/apache.rb +266 -0
- data/lib/poolparty/plugins/apache2/passenger_site.rb +86 -0
- data/lib/poolparty/plugins/apache2/php5.rb +40 -0
- data/lib/poolparty/plugins/apache2/virtual_host.rb +53 -0
- data/lib/poolparty/plugins/authorized_key.rb +29 -0
- data/lib/poolparty/plugins/bind.rb +5 -6
- data/lib/poolparty/plugins/{chef.rb → chef/chef.rb} +32 -44
- data/lib/poolparty/plugins/chef/chef_deploy.rb +55 -0
- data/lib/poolparty/plugins/chef/chef_deploy_definition.rb +32 -0
- data/lib/poolparty/plugins/chef/chef_library.rb +7 -0
- data/lib/poolparty/plugins/chef/chef_recipe.rb +7 -0
- data/lib/poolparty/plugins/chef/include_chef_recipe.rb +14 -0
- data/lib/poolparty/plugins/deploy_directory.rb +41 -26
- data/lib/poolparty/plugins/gem_package.rb +42 -14
- data/lib/poolparty/plugins/git.rb +62 -33
- data/lib/poolparty/{base_packages → plugins}/haproxy.rb +21 -20
- data/lib/poolparty/plugins/heartbeat.rb +16 -0
- data/lib/poolparty/plugins/host.rb +39 -0
- data/lib/poolparty/plugins/line_in_file.rb +24 -2
- data/lib/poolparty/plugins/plugin_template.rb +13 -0
- data/lib/poolparty/{base_packages/poolparty.rb → plugins/poolparty_base_packages.rb} +4 -6
- data/lib/poolparty/plugins/rails_deploy.rb +128 -0
- data/lib/poolparty/{base_packages → plugins}/ruby.rb +3 -3
- data/lib/poolparty/plugins/runit.rb +17 -92
- data/lib/poolparty/plugins/sshkey.rb +50 -0
- data/lib/poolparty/plugins/svn.rb +10 -8
- data/lib/poolparty/poolparty/cloud.rb +224 -61
- data/lib/poolparty/poolparty/default.rb +22 -15
- data/lib/poolparty/poolparty/key.rb +19 -28
- data/lib/poolparty/poolparty/neighborhoods.rb +16 -5
- data/lib/poolparty/poolparty/plugin.rb +49 -13
- data/lib/poolparty/poolparty/pool.rb +32 -9
- data/lib/poolparty/poolparty/poolparty_base_class.rb +65 -45
- data/lib/poolparty/poolparty/resource.rb +24 -49
- data/lib/poolparty/poolparty/service.rb +11 -9
- data/lib/poolparty/provision/boot_strapper.rb +48 -37
- data/lib/poolparty/provision/configurations/chef.rb +6 -5
- data/lib/poolparty/provision/dr_configure.rb +25 -19
- data/lib/poolparty/resources/cron.rb +37 -4
- data/lib/poolparty/resources/directory.rb +30 -0
- data/lib/poolparty/resources/exec.rb +31 -1
- data/lib/poolparty/resources/file.rb +54 -12
- data/lib/poolparty/resources/group.rb +21 -0
- data/lib/poolparty/resources/mount.rb +24 -4
- data/lib/poolparty/resources/package.rb +30 -6
- data/lib/poolparty/resources/remote_file.rb +33 -1
- data/lib/poolparty/resources/service.rb +22 -1
- data/lib/poolparty/resources/symlink.rb +37 -2
- data/lib/poolparty/resources/user.rb +25 -0
- data/lib/poolparty/resources/variable.rb +26 -1
- data/lib/poolparty/resources.rb +42 -0
- data/lib/poolparty/schema.rb +6 -8
- data/lib/poolparty/templates/apache2/apache2.conf +14 -0
- data/lib/poolparty/templates/apache2/base.conf.erb +168 -0
- data/lib/poolparty/templates/apache2/browser_fixes.conf.erb +26 -0
- data/lib/poolparty/templates/apache2/debian.conf.erb +675 -0
- data/lib/poolparty/templates/apache2/default-site.conf.erb +41 -0
- data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +101 -0
- data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +42 -0
- data/lib/poolparty/templates/apache2/mime-extras.conf.erb +211 -0
- data/lib/poolparty/templates/apache2/mime-minimal.conf.erb +15 -0
- data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +20 -0
- data/lib/poolparty/templates/apache2/mpm-worker.erb +20 -0
- data/lib/poolparty/templates/apache2/passenger.conf.erb +20 -0
- data/lib/poolparty/templates/apache2/php.ini.erb +1253 -0
- data/lib/poolparty/templates/apache2/server-status.erb +19 -0
- data/lib/poolparty/templates/{gemrc → gemrc_template} +0 -0
- data/lib/poolparty/templates/haproxy.conf +2 -2
- data/lib/poolparty/templates/monitor.ru +13 -0
- data/lib/poolparty/templates/php.ini.erb +1253 -0
- data/lib/poolparty/verification/verifier_base.rb +10 -0
- data/lib/poolparty/verification/verifiers/http_match.rb +43 -0
- data/lib/poolparty/verification/verifiers/http_status.rb +59 -0
- data/lib/poolparty/verification/verifiers/ping.rb +18 -1
- data/lib/poolparty/verification/verify.rb +6 -0
- data/lib/poolparty.rb +14 -15
- data/lib/poolpartycl.rb +1 -1
- data/spec/bin/bin_spec_helper.rb +1 -0
- data/spec/bin/fixtures/bin_cloud_for_test.rb +0 -6
- data/spec/bin/server-list-active_spec.rb +4 -6
- data/spec/poolparty/core/object_spec.rb +1 -62
- data/spec/poolparty/core/ordered_hash_spec.rb +7 -7
- data/spec/poolparty/core/string_spec.rb +1 -1
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -8
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +35 -32
- data/spec/poolparty/extra/deployments_spec.rb +68 -68
- data/spec/poolparty/fixtures/clouds.json +1 -1
- data/spec/poolparty/fixtures/fake_key.pub +1 -0
- data/spec/poolparty/helpers/optioner_spec.rb +4 -11
- data/spec/poolparty/modules/cloud_resourcer_spec.rb +1 -1
- data/spec/poolparty/modules/searchable_paths_spec.rb +83 -0
- data/spec/poolparty/net/remote_instance_spec.rb +1 -2
- data/spec/poolparty/net/remoter_base_spec.rb +7 -11
- data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +9 -11
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +6 -56
- data/spec/poolparty/net/remoter_bases/ec2_spec.rb +10 -7
- data/spec/poolparty/net/remoter_spec.rb +2 -3
- data/spec/poolparty/plugins/authorized_key_spec.rb +23 -0
- data/spec/poolparty/plugins/deploydirectory_spec.rb +64 -51
- data/spec/poolparty/plugins/git_spec.rb +8 -10
- data/spec/poolparty/poolparty/cloud_spec.rb +61 -64
- data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +2 -4
- data/spec/poolparty/poolparty/configurers/files/ruby_plugins.rb +1 -1
- data/spec/poolparty/poolparty/configurers/ruby_spec.rb +1 -6
- data/spec/poolparty/poolparty/default_spec.rb +23 -22
- data/spec/poolparty/poolparty/example_spec.rb +47 -26
- data/spec/poolparty/{base_packages → poolparty}/haproxy_spec.rb +1 -1
- data/spec/poolparty/{base_packages → poolparty}/heartbeat_spec.rb +1 -1
- data/spec/poolparty/poolparty/key_spec.rb +2 -2
- data/spec/poolparty/poolparty/neighborhoods_spec.rb +1 -1
- data/spec/poolparty/poolparty/plugin_model_spec.rb +13 -17
- data/spec/poolparty/poolparty/plugin_spec.rb +7 -7
- data/spec/poolparty/poolparty/pool_spec.rb +4 -10
- data/spec/poolparty/poolparty/resource_spec.rb +25 -29
- data/spec/poolparty/poolparty/script_spec.rb +1 -4
- data/spec/poolparty/poolparty/test_plugins/webserver.rb +27 -25
- data/spec/poolparty/resources/file_spec.rb +5 -4
- data/spec/poolparty/resources/sshkey_spec.rb +39 -40
- data/spec/poolparty/spec_helper.rb +9 -39
- data/tasks/poolparty.rake +29 -1
- data/tasks/spec.rake +39 -1
- data/test/fixtures/fake_clouds.rb +11 -0
- data/test/fixtures/metavirt_cloud.json +1 -0
- data/test/fixtures/test_key +1 -0
- data/test/poolparty/core/array_test.rb +11 -0
- data/test/poolparty/core/hash_test.rb +5 -7
- data/test/poolparty/core/object_test.rb +29 -0
- data/test/poolparty/dependency_resolver/chef_resolver_test.rb +82 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +5 -26
- data/test/poolparty/modules/callbacks_test.rb +1 -1
- data/test/poolparty/modules/cloud_dsl_test.rb +10 -8
- data/test/poolparty/monitors/test_base_monitor.rb +17 -0
- data/test/poolparty/monitors/test_monitor_rack.rb +26 -0
- data/test/poolparty/net/remoter_base_test.rb +17 -0
- data/test/poolparty/net/remoter_bases/libvirt/libvirt_test.rb +70 -0
- data/test/poolparty/net/remoter_bases/metavirt/metavirt_test.rb +81 -0
- data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +58 -27
- data/test/poolparty/plugins/chef_deploy_test.rb +37 -0
- data/test/poolparty/plugins/chef_plugin_test.rb +23 -0
- data/test/poolparty/plugins/rails_deploy_test.rb +50 -0
- data/test/poolparty/poolparty/cloud_test.rb +65 -0
- data/test/poolparty/poolparty/isolated_cloud_test.rb +25 -0
- data/test/poolparty/poolparty/neighborhood_test.rb +1 -1
- data/test/poolparty/poolparty/plugin_test.rb +19 -0
- data/test/poolparty/poolparty/pool_test.rb +22 -0
- data/test/poolparty/poolparty/poolparty_base_class_test.rb +53 -15
- data/test/poolparty/poolparty/schema_test.rb +13 -0
- data/test/poolparty/poolparty/template_test.rb +6 -6
- data/test/poolparty/verification/verify_test.rb +7 -3
- data/test/test_helper.rb +15 -4
- data/test/test_methods.rb +11 -0
- data/vendor/chef/apache2/attributes/apache.rb +1 -1
- data/vendor/gems/dslify/LICENSE +20 -0
- data/vendor/gems/dslify/README.rdoc +33 -0
- data/vendor/gems/dslify/Rakefile +56 -0
- data/vendor/gems/dslify/VERSION.yml +4 -0
- data/vendor/gems/dslify/dslify.gemspec +29 -0
- data/vendor/gems/dslify/lib/dslify.rb +81 -0
- data/vendor/gems/dslify/test/dslify_test.rb +283 -0
- data/vendor/gems/dslify/test/test_helper.rb +7 -0
- data/vendor/gems/git-style-binaries/README.markdown +280 -0
- data/vendor/gems/git-style-binaries/Rakefile +64 -0
- data/vendor/gems/git-style-binaries/VERSION.yml +4 -0
- data/vendor/gems/git-style-binaries/doc/EXAMPLES +1 -0
- data/vendor/gems/git-style-binaries/doc/gsb-screencast.png +0 -0
- data/vendor/gems/git-style-binaries/doc/poolparty-binaries.screenplay +412 -0
- data/vendor/gems/git-style-binaries/git-style-binaries.gemspec +78 -0
- data/vendor/gems/git-style-binaries/lib/ext/colorize.rb +198 -0
- data/vendor/gems/git-style-binaries/lib/ext/core.rb +16 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/autorunner.rb +21 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/command.rb +204 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/commands/help.rb +32 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/name_resolver.rb +78 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/pager.rb +37 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/parser.rb +223 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary.rb +88 -0
- data/vendor/gems/git-style-binaries/test/fixtures/flickr +4 -0
- data/vendor/gems/git-style-binaries/test/fixtures/flickr-download +17 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress +42 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-categories +18 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-list +18 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-post +26 -0
- data/vendor/gems/git-style-binaries/test/git-style-binary/command_test.rb +17 -0
- data/vendor/gems/git-style-binaries/test/git_style_binary_test.rb +21 -0
- data/vendor/gems/git-style-binaries/test/running_binaries_test.rb +224 -0
- data/vendor/gems/git-style-binaries/test/shoulda_macros/matching_stdio.rb +13 -0
- data/vendor/gems/git-style-binaries/test/test_helper.rb +28 -0
- data/vendor/gems/parenting/History.txt +4 -0
- data/vendor/gems/parenting/Manifest.txt +14 -0
- data/vendor/gems/parenting/PostInstall.txt +2 -0
- data/vendor/gems/parenting/README.rdoc +47 -0
- data/vendor/gems/parenting/Rakefile +28 -0
- data/vendor/gems/parenting/lib/parenting/parenting.rb +70 -0
- data/vendor/gems/parenting/lib/parenting.rb +10 -0
- data/vendor/gems/parenting/parenting.gemspec +39 -0
- data/vendor/gems/parenting/script/console +10 -0
- data/vendor/gems/parenting/script/destroy +14 -0
- data/vendor/gems/parenting/script/generate +14 -0
- data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
- data/vendor/gems/parenting/test/test_helper.rb +5 -0
- data/vendor/gems/parenting/test/test_parenting.rb +117 -0
- data/vendor/gems/suitcase/LICENSE +20 -0
- data/vendor/gems/suitcase/README.rdoc +31 -0
- data/vendor/gems/suitcase/Rakefile +57 -0
- data/vendor/gems/suitcase/VERSION.yml +4 -0
- data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
- data/vendor/gems/suitcase/lib/suitcase/zipper.rb +167 -0
- data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
- data/vendor/gems/suitcase/suitcase.gemspec +32 -0
- data/vendor/gems/suitcase/test/suitcase_test.rb +108 -0
- data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
- data/vendor/gems/suitcase/test/test_dir/gems/famoseagle-carrot-0.6.0.gem +0 -0
- data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
- data/vendor/gems/suitcase/test/test_helper.rb +12 -0
- data/vendor/gems/trollop/FAQ.txt +35 -0
- data/vendor/gems/trollop/History.txt +97 -0
- data/vendor/gems/trollop/Manifest.txt +7 -0
- data/vendor/gems/trollop/README.txt +40 -0
- data/vendor/gems/trollop/Rakefile +36 -0
- data/vendor/gems/trollop/lib/trollop.rb +735 -0
- data/vendor/gems/trollop/release-script.txt +13 -0
- data/vendor/gems/trollop/test/test_trollop.rb +1042 -0
- data/vendor/gems/trollop/www/index.html +167 -0
- metadata +205 -150
- data/bin/cloud-describe +0 -28
- data/bin/cloud-handle-load +0 -27
- data/bin/cloud-rsync +0 -28
- data/bin/cloud-spec +0 -41
- data/bin/messenger-get-current-nodes +0 -14
- data/bin/server-become-master +0 -24
- data/bin/server-build-messenger +0 -28
- data/bin/server-clean-cert-for +0 -15
- data/bin/server-provision +0 -32
- data/bin/server-start-agent +0 -15
- data/bin/server-start-client +0 -29
- data/bin/server-start-master +0 -26
- data/bin/server-start-node +0 -32
- data/bin/server-stop-client +0 -3
- data/bin/server-stop-master +0 -3
- data/bin/server-stop-node +0 -3
- data/bin/server-update-hosts +0 -49
- data/examples/poolparty.rb +0 -12
- data/lib/poolparty/base_packages/heartbeat.rb +0 -58
- data/lib/poolparty/base_packages/runit.rb +0 -21
- data/lib/poolparty/capistrano/cloud_tasks.rb +0 -10
- data/lib/poolparty/capistrano.rb +0 -54
- data/lib/poolparty/config/postlaunchmessage.txt +0 -5
- data/lib/poolparty/core/metaid.rb +0 -15
- data/lib/poolparty/core/module.rb +0 -40
- data/lib/poolparty/extra/deployments.rb +0 -31
- data/lib/poolparty/helpers/display.rb +0 -30
- data/lib/poolparty/net/messenger.rb +0 -57
- data/lib/poolparty/net/remote_bases.rb +0 -21
- data/lib/poolparty/plugins/chef_deploy.rb +0 -58
- data/lib/poolparty/plugins/dynomite.rb +0 -14
- data/lib/poolparty/plugins/nanite.rb +0 -41
- data/lib/poolparty/plugins/rsyncmirror.rb +0 -28
- data/lib/poolparty/plugins/tokyo_tyrant.rb +0 -23
- data/lib/poolparty/poolparty/plugin_model.rb +0 -45
- data/lib/poolparty/resources/host.rb +0 -16
- data/lib/poolparty/resources/sshkey.rb +0 -27
- data/lib/poolparty/services/conditional.rb +0 -46
- data/lib/poolparty/spec/core/string.rb +0 -18
- data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
- data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
- data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
- data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
- data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
- data/lib/poolparty/spec/matchers/have_file.rb +0 -28
- data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
- data/lib/poolparty/spec/matchers/have_git.rb +0 -28
- data/lib/poolparty/spec/matchers/have_host.rb +0 -28
- data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
- data/lib/poolparty/spec/matchers/have_package.rb +0 -28
- data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
- data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
- data/lib/poolparty/spec/matchers/have_service.rb +0 -28
- data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
- data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
- data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
- data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
- data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
- data/lib/poolparty/spec/templates/have_base.rb +0 -28
- data/lib/poolparty/spec.rb +0 -31
- data/spec/poolparty/core/module_spec.rb +0 -15
- data/spec/poolparty/helpers/display_spec.rb +0 -13
- data/spec/poolparty/id_rsa +0 -27
- data/spec/poolparty/net/messenger_spec.rb +0 -16
- data/spec/poolparty/resources/host_spec.rb +0 -35
- data/spec/poolparty/services/conditional_spec.rb +0 -52
- data/spec/poolparty/spec/core/string_spec.rb +0 -57
data/examples/basic.rb
CHANGED
@@ -1,23 +1,22 @@
|
|
1
1
|
# Basic pool spec
|
2
2
|
# Shows global settings for the clouds
|
3
3
|
pool :application do
|
4
|
-
instances
|
5
|
-
keypair "auser"
|
6
|
-
testing true
|
4
|
+
instances 1..5
|
7
5
|
|
8
|
-
cloud :
|
9
|
-
minimum_instances
|
10
|
-
|
11
|
-
|
12
|
-
has_file :name => "/etc/
|
6
|
+
cloud :frontend do
|
7
|
+
minimum_instances 3
|
8
|
+
keypair 'application_frontend'
|
9
|
+
image_id "ami-abc123"
|
10
|
+
has_file :name => "/etc/motd", :content => "Welcome to your PoolParty instance"
|
13
11
|
end
|
14
12
|
|
15
|
-
cloud :
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
cloud :database do
|
14
|
+
keypair 'application_database'
|
15
|
+
using :vmrun do
|
16
|
+
vmx_hash "/path/to/vmx_file" => "192.168.248.122"
|
17
|
+
end
|
18
|
+
minimum_instances 1
|
19
|
+
image_id "ami-1234bc"
|
21
20
|
end
|
22
21
|
|
23
22
|
end
|
data/examples/fairchild.rb
CHANGED
@@ -1,30 +1,35 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
$:.unshift "#{File.dirname(__FILE__)}/../lib"
|
3
|
+
require "poolparty"
|
4
|
+
|
1
5
|
# Basic pool spec
|
2
6
|
# Shows global settings for the clouds
|
3
|
-
pool :
|
7
|
+
pool :party do
|
4
8
|
instances 1..3
|
5
|
-
|
6
|
-
|
9
|
+
image_id 'ami-7cfd1a15'
|
10
|
+
debugging true
|
11
|
+
|
12
|
+
# access_key "XXXXXX"
|
13
|
+
# secret_access_key "XXXXXXX"
|
7
14
|
|
8
|
-
cloud :
|
15
|
+
cloud :app do
|
16
|
+
keypair 'app'
|
17
|
+
using :ec2 do
|
18
|
+
image_id 'ami-7cfd1a15'
|
19
|
+
availability_zone 'us-east-1c'
|
20
|
+
end
|
21
|
+
|
22
|
+
has_file "/etc/motd", :content => "Welcome to LARubyConf"
|
9
23
|
# has_directory "/var/www"
|
10
|
-
#
|
11
|
-
# has_file "/etc/motd",
|
12
|
-
# :content => "Welcome to LARubyConf"
|
13
24
|
# has_file :name => "/var/www/index.html" do
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
25
|
+
# content "<h1>Welcome to your new poolparty instance</h1>"
|
26
|
+
# mode 0644
|
27
|
+
# owner "www-data"
|
17
28
|
# end
|
18
|
-
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
# end
|
23
|
-
#
|
24
|
-
# chef do
|
25
|
-
# include_recipes "~/.poolparty/chef/cookbooks/*"
|
26
|
-
#
|
27
|
-
# recipe "#{File.dirname(__FILE__)}/examples/fairchild_chef.rb"
|
29
|
+
|
30
|
+
# has_git "paparazzi" do
|
31
|
+
# source "git://github.com/auser/paparazzi.git"
|
32
|
+
# dir "/var/www"
|
28
33
|
# end
|
29
34
|
|
30
35
|
end
|
data/examples/maize.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# Basic poolparty template
|
2
|
+
|
3
|
+
pool :clouds do
|
4
|
+
cloud :app do
|
5
|
+
instances 1..3
|
6
|
+
# keypair "#{ENV['HOME']}/ec2/ec2-keypair.pem" # or the full path to the keypair on the development machine
|
7
|
+
ami 'ami-7cfd1a15'
|
8
|
+
using :vmrun do
|
9
|
+
vmx_hash({
|
10
|
+
"/Users/alerner/Documents/vm/Ubuntu32bitVM.vmwarevm/Ubuntu32bitVM.vmx" => "192.168.248.133"
|
11
|
+
})
|
12
|
+
end
|
13
|
+
|
14
|
+
# directories
|
15
|
+
has_directory "/var/www"
|
16
|
+
|
17
|
+
# packages
|
18
|
+
has_package(:name => "logwatch")
|
19
|
+
has_package(:name => "imagemagick")
|
20
|
+
has_package(:name => "libmagick9-dev")
|
21
|
+
has_package(:name => "librmagick-ruby")
|
22
|
+
has_package(:name => "ffmpeg")
|
23
|
+
has_package(:name => "monit")
|
24
|
+
|
25
|
+
# gems
|
26
|
+
has_gem_package(:name => "rmagick")
|
27
|
+
has_gem_package(:name => "rubyist-aasm")
|
28
|
+
has_gem_package(:name => "rvideo")
|
29
|
+
has_gem_package(:name => "right_aws")
|
30
|
+
has_gem_package(:name => "ap4r")
|
31
|
+
has_gem_package(:name => "rmagick")
|
32
|
+
|
33
|
+
# services
|
34
|
+
has_service(:name => "monit")
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
$:.unshift File.dirname(__FILE__)+'/../lib/'
|
3
|
+
require "poolparty"
|
4
|
+
|
5
|
+
pool :multiverse do
|
6
|
+
|
7
|
+
cloud :front do
|
8
|
+
instances 2..4
|
9
|
+
keypair 'multiverse_front'
|
10
|
+
has_file "/etc/motd", :content => "Welcome to your poolparty instance!"
|
11
|
+
using :metavirt do
|
12
|
+
server_config({:host=>"192.168.1.97", :port=>3000})
|
13
|
+
authorized_keys 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCTppECfx7Tb0zoviRfqFaePyAek6+ZktKkHiTHu/jkhG1s4q1oHEe89no21xLxuReyJrDlNe8rLxxZzoYCaAWRdhcqMR3BNqb2w2jpF4pH+bFj0557KrwWP6HSNpRRkyYhxLqZbuH/2t3TzkPevZbcfSYa09jIzqnmTruh9l1s+n5E3cNr/RDdDn7tv3Ok7mKN7GEjkK7F83Pt9xviHevg22xqzm99nS+hg6Kl/fQUTO6pOmC5x+9V47RJz1+9WdhGJ7M83zijX9rMnAwrR5LFoL6aZyyU0G71SpoIL5e8XD/jt1WNKFJOfG8YMLb3i03UABm/Q5Q30+R7UoRxSWRX'
|
14
|
+
|
15
|
+
# using :vmrun do
|
16
|
+
# # vmx_files Dir[::File.expand_path("~/Documents/Virtual Machines.localized/metavirts/*/*.vmx")]
|
17
|
+
# vmx_files [
|
18
|
+
# "/Users/alerner/Documents/vm/Ubuntu32bitVM.vmwarevm/Ubuntu32bitVM.vmx"
|
19
|
+
# ]
|
20
|
+
# end
|
21
|
+
|
22
|
+
using :libvirt do
|
23
|
+
image_id 'mvi_ef77fdf0'
|
24
|
+
# memory 256000
|
25
|
+
# cpus 1
|
26
|
+
# network 'vnet0'
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
data/examples/simple.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
$:.unshift File.dirname(__FILE__)+'/../lib/'
|
3
|
+
require "poolparty"
|
4
|
+
|
5
|
+
pool :multiverse do
|
6
|
+
|
7
|
+
cloud :vv do
|
8
|
+
keypair "front"
|
9
|
+
instances 1
|
10
|
+
has_file "/etc/motd", :content => "Welcome to your poolparty instance!"
|
11
|
+
using :vmrun do
|
12
|
+
vmx_hash "/Users/stimble/Documents/Virtual Machines.localized/Jaunty.vmwarevm/Jaunty.vmx" => '172.16.68.143'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
data/lib/poolparty/core/array.rb
CHANGED
@@ -7,6 +7,18 @@ class Array
|
|
7
7
|
map {|a| a.to_os }
|
8
8
|
end
|
9
9
|
|
10
|
+
def histogram
|
11
|
+
out = {}
|
12
|
+
map do |ele|
|
13
|
+
if out.has_key?(ele)
|
14
|
+
out[ele] += 1
|
15
|
+
else
|
16
|
+
out.merge!(ele => 1)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
out
|
20
|
+
end
|
21
|
+
|
10
22
|
def collect_with_index &block
|
11
23
|
self.enum_for(:each_with_index).collect &block
|
12
24
|
end
|
@@ -34,7 +46,7 @@ class Array
|
|
34
46
|
def select_with_hash(conditions={})
|
35
47
|
return self if conditions.empty?
|
36
48
|
select do |node|
|
37
|
-
conditions.any? do |k,v|
|
49
|
+
conditions.any? do |k,v|
|
38
50
|
( node.has_key?(k) && node[k]==v ) or ( node.respond_to?(k) && node.send(k)==v )
|
39
51
|
end
|
40
52
|
end
|
data/lib/poolparty/core/hash.rb
CHANGED
@@ -2,6 +2,22 @@
|
|
2
2
|
Hash extentions
|
3
3
|
=end
|
4
4
|
class Hash
|
5
|
+
|
6
|
+
# alias_method :_old_reader, :[]
|
7
|
+
# # Treat string and symbols the same
|
8
|
+
# def [](key)
|
9
|
+
# if o = _old_reader(key) || has_key?(key)
|
10
|
+
# return o
|
11
|
+
# elsif key.is_a? Symbol
|
12
|
+
# _old_reader(key.to_s)
|
13
|
+
# elsif key.is_a? String
|
14
|
+
# _old_reader(key.to_sym) rescue _old_reader(key)
|
15
|
+
# else
|
16
|
+
# _old_reader(key)
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
|
20
|
+
# Return a hash of all the elements where the block evaluates to true
|
5
21
|
def choose(&block)
|
6
22
|
Hash[*self.select(&block).inject([]){|res,(k,v)| res << k << v}]
|
7
23
|
end
|
@@ -66,13 +82,58 @@ class Hash
|
|
66
82
|
keys.sort[idx - 1]
|
67
83
|
end
|
68
84
|
|
85
|
+
def stringify_keys
|
86
|
+
dup.stringify_keys!
|
87
|
+
end
|
88
|
+
|
89
|
+
# Converts all of the keys to strings
|
90
|
+
def stringify_keys!
|
91
|
+
keys.each{|k|
|
92
|
+
v = delete(k)
|
93
|
+
self[k.to_s] = v
|
94
|
+
v.stringify_keys! if v.is_a?(Hash)
|
95
|
+
v.each{|p| p.stringify_keys! if p.is_a?(Hash)} if v.is_a?(Array)
|
96
|
+
}
|
97
|
+
self
|
98
|
+
end
|
99
|
+
|
100
|
+
def symbolize_keys(key_modifier=nil)
|
101
|
+
dup.symbolize_keys!(key_modifier)
|
102
|
+
end
|
103
|
+
|
104
|
+
# Converts all of the keys to strings
|
105
|
+
# can pass in a :key_modifier that will be sent to each key, before being symbolized.
|
106
|
+
# This can be usefull if you want to downcase, or snake_case each key.
|
107
|
+
# >> {'Placement' => {'AvailabilityZone'=>"us-east-1a"} }.symbolize_keys(:snake_case)
|
108
|
+
# => {:placement=>{:availability_zone=>"us-east-1a"}}
|
109
|
+
def symbolize_keys!(key_modifier=nil)
|
110
|
+
keys.each{|k|
|
111
|
+
v = delete(k)
|
112
|
+
if key_modifier && k.respond_to?(key_modifier)
|
113
|
+
k = k.send(key_modifier)
|
114
|
+
end
|
115
|
+
self[k.to_sym] = v
|
116
|
+
v.symbolize_keys!(key_modifier) if v.is_a?(Hash)
|
117
|
+
v.each{|p| p.symbolize_keys!(key_modifier) if p.is_a?(Hash)} if v.is_a?(Array)
|
118
|
+
}
|
119
|
+
self
|
120
|
+
end
|
121
|
+
|
122
|
+
def to_cloud
|
123
|
+
$:.unshift("#{::File.dirname(__FILE__)}/../../poolparty")
|
124
|
+
require "poolparty"
|
125
|
+
cld = Cloud.new((fetch(:name) rescue "hashed_cloud"))
|
126
|
+
cld.set_vars_from_options(self)
|
127
|
+
cld
|
128
|
+
end
|
129
|
+
|
69
130
|
def method_missing(sym, *args, &block)
|
70
|
-
if has_key?(sym)
|
131
|
+
if has_key?(sym.to_sym)
|
71
132
|
fetch(sym)
|
72
133
|
elsif has_key?(sym.to_s)
|
73
134
|
fetch(sym.to_s)
|
74
135
|
else
|
75
136
|
super
|
76
137
|
end
|
77
|
-
end
|
138
|
+
end
|
78
139
|
end
|
@@ -16,11 +16,7 @@ class Object
|
|
16
16
|
original = self.method(original_id).to_proc
|
17
17
|
define_method(new_id){|*args| original.call(*args)}
|
18
18
|
end
|
19
|
-
|
20
|
-
@p = par.clone
|
21
|
-
@p.options.merge!(opts)
|
22
|
-
@p.instance_eval &block if block
|
23
|
-
end
|
19
|
+
|
24
20
|
def returning(receiver)
|
25
21
|
yield receiver
|
26
22
|
receiver
|
@@ -29,14 +25,24 @@ class Object
|
|
29
25
|
block.in_context(self).call
|
30
26
|
self
|
31
27
|
end
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
28
|
+
|
29
|
+
# Procs that have been run already in the run_once blocks
|
30
|
+
# This is just a container array of procs
|
31
|
+
def run_procs
|
32
|
+
@run_procs ||= []
|
33
|
+
end
|
34
|
+
|
35
|
+
# Do once.
|
36
|
+
# Takes a block. IF this block has already been run (from the run_procs array),
|
37
|
+
# then run it and store the block unique id in the run_procs array so
|
38
|
+
# it never gets run again
|
39
|
+
def do_once(&block)
|
40
|
+
unless run_procs.include?(block.to_s)
|
41
|
+
instance_eval &block if block
|
42
|
+
run_procs << block.to_s
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
40
46
|
def respec_string
|
41
47
|
case self.class
|
42
48
|
when String
|
@@ -85,19 +91,35 @@ class Object
|
|
85
91
|
print "#{m}" if debugging?(o) || verbose?(o) rescue ""
|
86
92
|
end
|
87
93
|
def verbose?(o=self)
|
88
|
-
o.respond_to?(:verbose) ? o.verbose : ($TESTING ||= false)
|
94
|
+
o.respond_to?(:verbose) ? o.verbose : (debugging? || $TESTING ||= false)
|
89
95
|
end
|
90
96
|
def debugging?(o=self)
|
91
|
-
|
97
|
+
debugging
|
92
98
|
end
|
93
|
-
def debugging
|
94
|
-
|
99
|
+
def debugging
|
100
|
+
$DEBUGGING ||= false
|
101
|
+
end
|
102
|
+
def debugging=(bool)
|
103
|
+
$DEBUGGING = bool
|
95
104
|
end
|
96
105
|
def testing(bool=$TESTING)
|
97
106
|
bool.nil? ? $TESTING : $TESTING = bool
|
98
107
|
end
|
99
|
-
alias :debug :debugging
|
100
108
|
def unix_hide_string
|
101
109
|
"2>&1 > /dev/null"
|
102
110
|
end
|
103
|
-
|
111
|
+
|
112
|
+
# Get object's meta (ghost, eigenclass, singleton) class
|
113
|
+
# from activesupport
|
114
|
+
def metaclass
|
115
|
+
class << self
|
116
|
+
self
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# If class_eval is called on an object, add those methods to its metaclass
|
121
|
+
# from activesupport
|
122
|
+
def class_eval(*args, &block)
|
123
|
+
metaclass.class_eval(*args, &block)
|
124
|
+
end
|
125
|
+
end
|
data/lib/poolparty/core/proc.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'json'
|
3
|
+
require 'json/add/core'
|
4
|
+
|
1
5
|
class String
|
2
6
|
def hasherize(format=[])
|
3
7
|
hash = {}
|
@@ -25,8 +29,9 @@ class String
|
|
25
29
|
self.strip.split(/\n/).join(" && ")
|
26
30
|
end
|
27
31
|
def top_level_class
|
28
|
-
self.split("::")[-1].
|
32
|
+
self.split("::")[-1].snake_case rescue self.class.to_s
|
29
33
|
end
|
34
|
+
|
30
35
|
def sanitize
|
31
36
|
self.gsub(/[ \.\/\-]*/, '')
|
32
37
|
end
|
@@ -46,6 +51,9 @@ class String
|
|
46
51
|
self.gsub(/['"]/, '\\\"')
|
47
52
|
# self.gsub(/["']/, "\\\"")
|
48
53
|
end
|
54
|
+
def path_quote
|
55
|
+
self.safe_quote.gsub(/[ ]/, '\ ')
|
56
|
+
end
|
49
57
|
def nice_runnable(quite=true)
|
50
58
|
self.split(/ && /).join("\n")
|
51
59
|
end
|
@@ -53,7 +61,7 @@ class String
|
|
53
61
|
# Refactor this guy to get the class if the class is defined, and not always create a new one
|
54
62
|
# although, it doesn't really matter as ruby will just reopen the class
|
55
63
|
def class_constant(superclass=nil, opts={}, &block)
|
56
|
-
symc = ((opts && opts[:preserve]) ? ("#{self.camelcase}
|
64
|
+
symc = ((opts && opts[:preserve]) ? ("#{self.camelcase}") : "PoolParty#{self.camelcase}").classify
|
57
65
|
|
58
66
|
kla=<<-EOE
|
59
67
|
class #{symc} #{"< #{superclass}" if superclass}
|
@@ -176,5 +184,30 @@ class String
|
|
176
184
|
def macify
|
177
185
|
split(":").map {|a| a[0].chr == "0" ? a[1].chr : a}.join(":")
|
178
186
|
end
|
187
|
+
|
188
|
+
##
|
189
|
+
# @param o<String> The path component to join with the string.
|
190
|
+
#
|
191
|
+
# @return <String> The original path concatenated with o.
|
192
|
+
#
|
193
|
+
# @example
|
194
|
+
# "merb"/"core_ext" #=> "merb/core_ext"
|
195
|
+
def /(o)
|
196
|
+
File.join(self, o.to_s)
|
197
|
+
end
|
198
|
+
|
199
|
+
# Parse json string to a ruby object
|
200
|
+
def json_parse
|
201
|
+
return nil if self == "null" || self.empty?
|
202
|
+
result = JSON.parse self
|
203
|
+
if result.respond_to? :keys
|
204
|
+
result.symbolize_keys!
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
# dumb and ugly pluralize
|
209
|
+
def pluralize(count=2)
|
210
|
+
count > 1 ? self + "s" : self
|
211
|
+
end
|
179
212
|
|
180
213
|
end
|
@@ -14,4 +14,14 @@ class Symbol
|
|
14
14
|
def <=>(b)
|
15
15
|
"#{self}" <=> "#{b}"
|
16
16
|
end
|
17
|
+
##
|
18
|
+
# @param o<String, Symbol> The path component to join with the string.
|
19
|
+
#
|
20
|
+
# @return <String> The original path concatenated with o.
|
21
|
+
#
|
22
|
+
# @example
|
23
|
+
# :merb/"core_ext" #=> "merb/core_ext"
|
24
|
+
def /(o)
|
25
|
+
File.join(self.to_s, o.to_s)
|
26
|
+
end
|
17
27
|
end
|