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
@@ -0,0 +1,141 @@
|
|
1
|
+
module PoolParty
|
2
|
+
module Installers
|
3
|
+
class Ec2 < BaseInstaller
|
4
|
+
|
5
|
+
def commands
|
6
|
+
[
|
7
|
+
:get_access_key, :get_secret_access_key, :show_cert_message,
|
8
|
+
# :get_ec2_api_tools,
|
9
|
+
:get_keypair, :write_clouds_rb
|
10
|
+
]
|
11
|
+
end
|
12
|
+
|
13
|
+
def get_access_key
|
14
|
+
key_help_str = <<-EOE
|
15
|
+
Now you need to get your keys from Amazon AWS.
|
16
|
+
If you don't already have your keys setup, navigate to http://aws.amazon.com
|
17
|
+
and click on Your Account. Click on the Access Identifiers tab and find:
|
18
|
+
Your Access Key ID. This is your access key.
|
19
|
+
EOE
|
20
|
+
access_key_str = <<-EOE
|
21
|
+
Since you'll be using ec2, we'll have to set some things up before
|
22
|
+
we can get going on PoolParty. Don't worry, this information will stay between us.
|
23
|
+
|
24
|
+
EOE
|
25
|
+
say access_key_str
|
26
|
+
ask_with_help :message => "First, what's your access key?",
|
27
|
+
:help => key_help_str do |t|
|
28
|
+
@access_key = t
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_secret_access_key
|
33
|
+
key_help_str = <<-EOE
|
34
|
+
If you don't already have your keys setup, navigate to http://aws.amazon.com
|
35
|
+
and click on Your Account. Click on the Access Identifiers tab and find:
|
36
|
+
Your Secret Access Key ID. Click on the - show button.
|
37
|
+
This is your secret access key.
|
38
|
+
EOE
|
39
|
+
ask_with_help :message => "Awesome. Now what's your secret access key? ",
|
40
|
+
:help => key_help_str do |t|
|
41
|
+
@secret_access_key = t
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def show_cert_message
|
46
|
+
rescued_ask_str = <<-EOS
|
47
|
+
Super duper! You'll need to make sure you have yout X.509 certificate downloaded too.
|
48
|
+
Save this in your ~/.ec2 directory.
|
49
|
+
|
50
|
+
Press enter when you're ready
|
51
|
+
EOS
|
52
|
+
|
53
|
+
cert_help_str = <<-EOE
|
54
|
+
To get your X.509 certificates, navigate to http://aws.amazon.com and login. Click on
|
55
|
+
Your Account and scroll down. The X.509 Certificate box is at the bottom. Make sure you
|
56
|
+
click download and save the cert-*.pem file. If you don't know or don't have the pk-*.pem file
|
57
|
+
you may have to recreate it. Not to worry though, it's super easy. Click on the Create New button.
|
58
|
+
From there, you can download the cert-*.pem and the pk-*.pem files.
|
59
|
+
|
60
|
+
EOE
|
61
|
+
|
62
|
+
ask_with_help :message => rescued_ask_str,
|
63
|
+
:help => cert_help_str do |t|
|
64
|
+
@cert = true
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_ec2_api_tools
|
69
|
+
url = "http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88"
|
70
|
+
download_url = "http://www.amazon.com/gp/redirect.html/ref=aws_rc_ec2tools?location=http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip&token=A80325AA4DAB186C80828ED5138633E3F49160D9"
|
71
|
+
require 'open-uri'
|
72
|
+
::File.open("ec2-commandline-tools.zip", "w") {|f| f << open(download_url).read }
|
73
|
+
end
|
74
|
+
|
75
|
+
def get_keypair
|
76
|
+
begin
|
77
|
+
ec2 = PoolParty::Remote::Ec2.ec2({:access_key => @access_key, :secret_access_key => @secret_access_key})
|
78
|
+
keypairs = ec2.describe_keypairs["keySet"]["item"]
|
79
|
+
keynames = keypairs.map {|k| k["keyName"]}
|
80
|
+
rescue Exception => e
|
81
|
+
colored_say "There was an error: #{e}. Recheck your access_key and secret_access_key to make sure you copied them correctly"
|
82
|
+
exit 1
|
83
|
+
end
|
84
|
+
|
85
|
+
key_str =<<-EOK
|
86
|
+
|
87
|
+
Finally, what's the name of the keypair you'd like to use?
|
88
|
+
|
89
|
+
You already have the following keypairs setup:
|
90
|
+
\t#{keynames.join("\n\t")}
|
91
|
+
|
92
|
+
You can use one of these keys, or create a new one.
|
93
|
+
EOK
|
94
|
+
|
95
|
+
key_str_help =<<-EOH
|
96
|
+
To make a new keypair, make sure you have the ec2 tools installed. You can create a new one by typing the command:
|
97
|
+
ec2-add-keypair
|
98
|
+
|
99
|
+
Save this into a file in your ~/.ec2 directory. Enter the name of the keypair here.
|
100
|
+
EOH
|
101
|
+
ask_with_help :message => key_str,
|
102
|
+
:help => key_str_help do |t|
|
103
|
+
@keypair = t
|
104
|
+
say <<-EOE
|
105
|
+
|
106
|
+
In your clouds.rb, you can use this keypair in your clouds.
|
107
|
+
|
108
|
+
Create one for each cloud you want to use.
|
109
|
+
|
110
|
+
EOE
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def write_clouds_rb
|
115
|
+
clds =<<-EOC
|
116
|
+
pool :my_pool do
|
117
|
+
cloud :my_app do
|
118
|
+
|
119
|
+
# Copy these lines and source them in your .profile or .bashrc file
|
120
|
+
# export AWS_ACCESS_KEY="#{@access_key}"
|
121
|
+
# export AWS_SECRET_ACCESS_KEY="#{@secret_access_key}"
|
122
|
+
# export EC2_PRIVATE_KEY=$(ls ~/.ec2/pk-*.pem)
|
123
|
+
# export EC2_CERT=$(ls ~/.ec2/cert-*.pem)
|
124
|
+
|
125
|
+
access_key "#{@access_key}"
|
126
|
+
secret_access_key "#{@secret_access_key}"
|
127
|
+
keypair "#{@keypair}"
|
128
|
+
|
129
|
+
has_file "/etc/motd" do
|
130
|
+
content "Welcome to your first PoolParty instance!"
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
EOC
|
135
|
+
|
136
|
+
::File.open("clouds.rb", "w") {|f| f << clds}
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
@@ -0,0 +1,144 @@
|
|
1
|
+
module PoolParty
|
2
|
+
module Installers
|
3
|
+
class Vmrun < BaseInstaller
|
4
|
+
|
5
|
+
def commands
|
6
|
+
[
|
7
|
+
:get_vmrun_file, :get_vm_ip, :get_key,
|
8
|
+
:add_vmware_fusion_to_path, :start_vmrun_instance,
|
9
|
+
:wait_for_connection, :scp_key, :test_login, :fix_eth0,
|
10
|
+
:shutdown_vmrun_instance
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def get_vmrun_file
|
17
|
+
if !default_vmrun_files.empty?
|
18
|
+
show_menu_for_vmrun_files
|
19
|
+
else
|
20
|
+
ask_for_vmrun_path
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def show_menu_for_vmrun_files
|
25
|
+
say "We found the following vmware files in the default vmware directory.\nChoose one of these to use as your vmrun file or select other"
|
26
|
+
choose do |menu|
|
27
|
+
menu.prompt = "Vmware file > "
|
28
|
+
[default_vmrun_files, :other].flatten.each do |base|
|
29
|
+
menu.choice base do
|
30
|
+
|
31
|
+
@vmrun_file = base == :other ? ask_for_vmrun_path : base
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def ask_for_vmrun_path
|
38
|
+
vmrun_file_help =<<-EOV
|
39
|
+
Vmware uses a vmwarevm file to keep information about the vmware instance. To find the vmwarevm file,
|
40
|
+
navigate to vmware and find the vm you'd like to use. Find this in finder and paste that here.
|
41
|
+
EOV
|
42
|
+
|
43
|
+
vmrun_file = <<-EOE
|
44
|
+
Awesome. What's the path to your vmwarevm file?
|
45
|
+
EOE
|
46
|
+
ask_with_help :message => vmrun_file, :help => vmrun_file_help do |t|
|
47
|
+
@vmrun_file = default_vmrun_file if t.nil? || t.empty?
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_vm_ip
|
52
|
+
ip_help =<<-EOV
|
53
|
+
Right now, vmrun, the remoter base needs an explicitly set ip. Log into your vm and type ifconfig. Copy and paste that here.
|
54
|
+
EOV
|
55
|
+
ask_with_help :message => "Now, what's the ip of your vm?",
|
56
|
+
:validate => /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|h|H/,
|
57
|
+
:help => ip_help do |i|
|
58
|
+
@ip = i
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def get_key
|
63
|
+
key_help =<<-EOV
|
64
|
+
Finally, we'll set somethings up here shortly, but first we'll need to know where your public key is. We'll assume it's
|
65
|
+
at ~/.ssh/id_rsa.pub. If this is true, then just press enter. Otherwise, enter the path of your public key.
|
66
|
+
EOV
|
67
|
+
|
68
|
+
ask_with_help :message => "What keypair would you like to use? (default: ~/.ssh/id_rsa.pub)",
|
69
|
+
:help => key_help do |k|
|
70
|
+
@key = k.empty? ? ::File.expand_path("~/.ssh/id_rsa.pub") : k
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def wait_for_connection
|
75
|
+
ping_port_and(@ip, 22) do
|
76
|
+
puts "Instance available for connection"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def scp_key
|
81
|
+
colored_say "Sending key to vmware instance..."
|
82
|
+
o = %x{scp #{@key} root@#{@ip}:~/.ssh/authorized_keys}
|
83
|
+
sleep 2
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_login
|
87
|
+
raise "Could not connect to #{@ip}. Check to make sure you set the ip properly" unless ping_port(@ip, 22, 3)
|
88
|
+
end
|
89
|
+
|
90
|
+
# TODO: Fix this
|
91
|
+
def fix_eth0
|
92
|
+
end
|
93
|
+
|
94
|
+
def add_vmware_fusion_to_path
|
95
|
+
colored_say "Exporting path with the VMware Fusion. You will want to add this to your path by adding \n\texport PATH=/Library/Application Support/VMware Fusion:$PATH\n to your .profile or .bashrc file"
|
96
|
+
o = %x{export PATH=/Library/Application\\\ Support/VMware\\\ Fusion:$PATH}
|
97
|
+
sleep 2
|
98
|
+
end
|
99
|
+
|
100
|
+
def start_vmrun_instance
|
101
|
+
vmrun_path = `which vmrun`.chomp!
|
102
|
+
command = "#{vmrun_path.path_quote} start #{@vmrun_file.path_quote}"
|
103
|
+
%x{#{command}}
|
104
|
+
end
|
105
|
+
|
106
|
+
def shutdown_vmrun_instance
|
107
|
+
vmrun_path = `which vmrun`.chomp!
|
108
|
+
command = "#{vmrun_path.path_quote} stop #{@vmrun_file.path_quote}"
|
109
|
+
%x{#{command}}
|
110
|
+
end
|
111
|
+
|
112
|
+
def closing_message
|
113
|
+
vmx_file = Dir["#{@vmrun_file}/*.vmx"].first
|
114
|
+
clds =<<-EOC
|
115
|
+
pool :my_pool do
|
116
|
+
cloud :my_app do
|
117
|
+
using :vmrun do
|
118
|
+
vmx_hash({
|
119
|
+
"#{vmx_file}" => "#{@ip}"
|
120
|
+
})
|
121
|
+
end
|
122
|
+
|
123
|
+
has_file "/etc/motd" do
|
124
|
+
content "Welcome to your first PoolParty instance!"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
EOC
|
129
|
+
|
130
|
+
::File.open("clouds.rb", "w") {|f| f << clds}
|
131
|
+
super
|
132
|
+
end
|
133
|
+
|
134
|
+
def default_vmrun_files
|
135
|
+
@default_vmrun_files ||= find_default_vmrun_files rescue nil
|
136
|
+
end
|
137
|
+
|
138
|
+
def find_default_vmrun_files
|
139
|
+
Dir["#{::File.expand_path("~")}/Documents/Virtual\ Machines.localized/*.vmwarevm"]
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
data/lib/poolparty/lite.rb
CHANGED
@@ -5,12 +5,15 @@ begin
|
|
5
5
|
rescue Exception => e
|
6
6
|
require "dslify"
|
7
7
|
end
|
8
|
+
require "#{::File.dirname(__FILE__)}/core/string"
|
9
|
+
require "#{::File.dirname(__FILE__)}/core/hash"
|
10
|
+
require "#{::File.dirname(__FILE__)}/core/object"
|
8
11
|
require "#{::File.dirname(__FILE__)}/poolparty/default"
|
9
12
|
require "#{::File.dirname(__FILE__)}/modules/user_helpers"
|
13
|
+
require "#{::File.dirname(__FILE__)}/modules/cloud_resourcer"
|
14
|
+
require "#{::File.dirname(__FILE__)}/modules/pinger"
|
10
15
|
require "#{::File.dirname(__FILE__)}/schema"
|
11
16
|
require "#{::File.dirname(__FILE__)}/net/init"
|
12
|
-
require "#{::File.dirname(__FILE__)}/core/string"
|
13
|
-
require "#{::File.dirname(__FILE__)}/core/hash"
|
14
17
|
require "#{::File.dirname(__FILE__)}/poolparty/neighborhoods"
|
15
18
|
require "#{::File.dirname(__FILE__)}/exceptions/RemoteException.rb"
|
16
19
|
|
@@ -11,23 +11,36 @@ module PoolParty
|
|
11
11
|
[
|
12
12
|
:before_bootstrap,
|
13
13
|
:after_bootstrap,
|
14
|
+
:before_provision,
|
15
|
+
:after_provision,
|
14
16
|
:before_configure,
|
15
17
|
:after_configure,
|
16
18
|
:after_create,
|
17
19
|
# TODO: Add after_launch_instance and after_terminate_instance
|
18
|
-
|
20
|
+
:after_launch_instance,
|
19
21
|
# :after_terminate_instance,
|
20
22
|
self.class.additional_callbacks
|
21
23
|
].flatten
|
22
24
|
end
|
23
25
|
|
24
26
|
# Callbacks on bootstrap and configuration
|
27
|
+
# Defines the callback accessors:
|
28
|
+
# call_before/after_bootstrap/configure_callbacks
|
29
|
+
#
|
30
|
+
# When called, this method will first check to see if there
|
31
|
+
# are plugins and call those plugin's callbacks when called
|
32
|
+
# The method (before/after_bootstrap/configure) is called
|
33
|
+
# on self if the callback method is defined on self
|
25
34
|
def setup_callbacks
|
26
35
|
defined_callbacks.each do |meth|
|
27
36
|
unless respond_to?("call_#{meth}_callbacks".to_sym)
|
28
37
|
self.class.module_eval <<-EOE
|
29
38
|
def call_#{meth}_callbacks(*args)
|
30
|
-
|
39
|
+
if respond_to?(:plugin_store) && plugin_store
|
40
|
+
plugin_store.each do |a|
|
41
|
+
a.call_#{meth}_callbacks(*args) if a.respond_to?(:call_#{meth}_callbacks)
|
42
|
+
end
|
43
|
+
end
|
31
44
|
self.send :#{meth}, *args if respond_to?(:#{meth})
|
32
45
|
end
|
33
46
|
EOE
|
@@ -11,16 +11,18 @@ module PoolParty
|
|
11
11
|
# has_directory(:name => loc)
|
12
12
|
# end
|
13
13
|
|
14
|
-
def dependency_resolver(name='puppet')
|
15
|
-
klass = name.preserved_class_constant("Resolver")
|
16
|
-
raise DependencyResolverException.new("Unknown resolver") unless klass
|
17
|
-
dsl_options[:dependency_resolver] = klass unless dsl_options[:dependency_resolver]
|
18
|
-
end
|
19
|
-
|
20
14
|
# Enable a service package
|
21
|
-
def enable(
|
15
|
+
def enable(*services)
|
16
|
+
services.each do |service|
|
17
|
+
dsl_options[service] = :enabled
|
18
|
+
end
|
19
|
+
end
|
22
20
|
# Disable a service package
|
23
|
-
def disable(
|
21
|
+
def disable(*services)
|
22
|
+
services.each do |service|
|
23
|
+
dsl_options[service] = :disabled
|
24
|
+
end
|
25
|
+
end
|
24
26
|
|
25
27
|
# Check to see if the package has been enabled
|
26
28
|
def enabled?(srv);dsl_options.has_key?(srv) && dsl_options[srv] == :enabled;end
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
method is stored, for instance. It's also where the key convenience methods are written
|
8
8
|
=end
|
9
|
-
require "
|
9
|
+
require "fileutils"
|
10
10
|
|
11
11
|
module PoolParty
|
12
12
|
module CloudResourcer
|
@@ -55,76 +55,56 @@ module PoolParty
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
def setup_dev
|
59
|
-
return true if keypair || master.nil?
|
60
|
-
end
|
61
|
-
|
62
58
|
# Declare the remoter base
|
63
59
|
# Check to make sure the available_bases is available, otherwise raise
|
64
60
|
# Give access to the cloud the remote_base and instantiate a new
|
65
61
|
# instance of the remote base
|
66
|
-
def using(t, &block)
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
instance_eval "def #{t};@remote_base;end"
|
81
|
-
end
|
62
|
+
def using(t, o={}, &block)
|
63
|
+
return self.send(t) if self.respond_to?(t)
|
64
|
+
klass_string = "::PoolParty::Remote::#{t.to_s.camelcase}"
|
65
|
+
remote_base_klass = klass_string.constantize
|
66
|
+
if ::PoolParty::Remote.available.include?(remote_base_klass)
|
67
|
+
set_default_options(remote_base_klass.default_options)
|
68
|
+
@remote_base = remote_base_klass.send(:new, o.merge(:cloud=>self), &block)
|
69
|
+
self.remoter_base t.to_sym
|
70
|
+
instance_eval "def #{t};@remote_base;end"
|
71
|
+
|
72
|
+
# instance_eval "def launch_new_instance!(o={}); remote_base.launch_new_instance!;end"
|
73
|
+
# instance_eval "def terminate_instance!(o={}); remote_base.terminate_instance!(o);end"
|
74
|
+
# instance_eval "def describe_instances(o={}); remote_base.describe_instances;end"
|
75
|
+
# instance_eval "def describe_instance(o={}); remote_base.describe_instance(o);end"
|
82
76
|
else
|
83
77
|
raise "Unknown remote base: #{t}"
|
84
78
|
end
|
85
79
|
end
|
86
80
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
def keypair(*args)
|
95
|
-
if args && !args.empty?
|
96
|
-
args.each {|arg| _keypairs.unshift Key.new(arg) unless arg.nil? || arg.empty? }
|
81
|
+
def dependency_resolver(name=nil)
|
82
|
+
if !name.nil?
|
83
|
+
ext = name=~/Resolver$/ ? nil : 'Resolver'
|
84
|
+
klass = ::PoolParty.module_eval("#{name.camelcase}#{ext}")
|
85
|
+
raise DependencyResolverException.new("Unknown resolver") unless klass
|
86
|
+
dsl_options[:dependency_resolver] = "#{name.camelcase}#{ext}"
|
87
|
+
@dependency_resolver = klass
|
97
88
|
else
|
98
|
-
@
|
89
|
+
@dependency_resolver
|
99
90
|
end
|
100
91
|
end
|
101
|
-
|
102
|
-
alias :set_keypairs :keypair
|
103
|
-
|
104
|
-
def _keypairs
|
105
|
-
dsl_options[:keypairs] ||= [Key.new]
|
106
|
-
end
|
107
|
-
|
108
|
-
def full_keypair_path
|
109
|
-
@full_keypair_path ||= keypair.full_filepath
|
110
|
-
end
|
111
|
-
|
112
|
-
def update_from_schema(schema)
|
113
|
-
keypairs = schema.options.delete(:keypairs).map {|a| PoolParty::Key.new(a.basename) }
|
114
|
-
options.merge! schema.options
|
115
|
-
dsl_options[:keypairs] = keypairs
|
116
|
-
|
117
|
-
dsl_options[:dependency_resolver] = schema.options.dependency_resolver.split("::")[-1].gsub(/Resolver/, '').preserved_class_constant("Resolver") rescue PoolParty::Chef
|
118
|
-
|
119
|
-
end
|
120
92
|
|
121
|
-
#
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
93
|
+
# def update_from_schema(schema)
|
94
|
+
# self.dsl_options.merge! schema.options.to_hash
|
95
|
+
# self.dependency_resolver = schema.options.dependency_resolver.split("::")[-1].gsub(/Resolver/, '').preserved_class_constant("Resolver") rescue PoolParty::Chef
|
96
|
+
# keypair schema.options.keypair_name
|
97
|
+
# remote_base_class = PoolParty::Remote.module_eval( schema.options.remoter_base.camelcase )
|
98
|
+
# self.remote_base = remote_base_class.new schema.options.remote_base.to_hash
|
99
|
+
#
|
100
|
+
# # self.keypair = PoolParty::Key.new schema.options.keypair.basename
|
101
|
+
# # keypair = schema.options.delete(:keypairs).map {|a| PoolParty::Key.new(a.basename) }
|
102
|
+
# # options.merge! schema.options.to_hash
|
103
|
+
# # dsl_options[:keypairs] = keypairs
|
104
|
+
# #
|
105
|
+
# # dsl_options[:dependency_resolver] = schema.options.dependency_resolver.split("::")[-1].gsub(/Resolver/, '').preserved_class_constant("Resolver") rescue PoolParty::Chef
|
106
|
+
#
|
107
|
+
# end
|
128
108
|
|
129
109
|
end
|
130
|
-
end
|
110
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
|
-
# TODO: Diet
|
2
|
-
# module PoolParty
|
3
|
-
#
|
1
|
+
# # TODO: Diet
|
2
|
+
# module PoolParty
|
4
3
|
# module Daemonizeable
|
5
4
|
#
|
6
5
|
# attr_accessor :pid_file
|
@@ -14,7 +13,7 @@
|
|
14
13
|
# end
|
15
14
|
#
|
16
15
|
# def pid_file
|
17
|
-
# @pid_file ||=
|
16
|
+
# @pid_file ||= "/tmp/poolparty_monitor.pid"
|
18
17
|
# end
|
19
18
|
#
|
20
19
|
# # Returns +true+ the process identied by +pid+ is running.
|
@@ -135,7 +134,7 @@
|
|
135
134
|
# end
|
136
135
|
# end
|
137
136
|
# end
|
138
|
-
# class
|
137
|
+
# class Daemon
|
139
138
|
# include Daemonizeable
|
140
139
|
# end
|
141
140
|
# end
|
@@ -16,9 +16,13 @@ module PoolParty
|
|
16
16
|
#
|
17
17
|
# For example usage, see lib/poolparty/plugins/line.rb
|
18
18
|
def define_resource(name, &block)
|
19
|
+
$stderr.puts "define_resource (#{name}) is depricated (#{caller[0]})"
|
19
20
|
name.to_s.new_resource_class &block
|
20
21
|
end
|
21
22
|
|
23
|
+
# DEPRICATED
|
24
|
+
# use plugin instead
|
25
|
+
#
|
22
26
|
# Allow us to create virtual resources
|
23
27
|
# Generally, in plugins
|
24
28
|
# This sets a virtual resource against the Resource class
|
@@ -41,13 +45,8 @@ module PoolParty
|
|
41
45
|
#
|
42
46
|
# An example is included in the poolparty-apache-plugin
|
43
47
|
def virtual_resource(name=:virtual_resource, opts={}, &block)
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
PoolParty::Service.add_has_and_does_not_have_methods_for(symc)
|
48
|
-
|
49
|
-
klass.module_eval &block if block
|
50
|
-
klass
|
48
|
+
$stderr.puts "virtual_resource (#{name}) is depricated"
|
49
|
+
plugin(name, &block)
|
51
50
|
end
|
52
51
|
|
53
52
|
end
|
@@ -10,7 +10,7 @@ module PoolParty
|
|
10
10
|
end
|
11
11
|
def copy_template_to_storage_directory(file, force=false)
|
12
12
|
make_template_directory
|
13
|
-
path = ::File.join(
|
13
|
+
path = ::File.join( tmp_path, Default.template_directory, ::File.basename(file) )
|
14
14
|
if force
|
15
15
|
FileUtils.cp file, path
|
16
16
|
else
|
@@ -76,7 +76,7 @@ module PoolParty
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
def make_template_directory(dir=nil)
|
79
|
-
path = dir ? ::File.join(
|
79
|
+
path = dir ? ::File.join(tmp_path, Default.template_directory, ::File.basename(dir)) : ::File.join(tmp_path, Default.template_directory)
|
80
80
|
begin
|
81
81
|
make_base_directory
|
82
82
|
FileUtils.mkdir path unless ::File.directory?(path)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require "timeout"
|
1
2
|
module PoolParty
|
2
3
|
module Pinger
|
3
4
|
module ClassMethods
|
@@ -5,9 +6,12 @@ module PoolParty
|
|
5
6
|
# for response.
|
6
7
|
def ping_port(host, port=22, retry_times=400)
|
7
8
|
connected = false
|
9
|
+
dputs "pinging #{host}:#{port} for #{retry_times}"
|
8
10
|
retry_times.times do |i|
|
9
11
|
begin
|
10
|
-
|
12
|
+
timeout 5 do
|
13
|
+
break if connected = TCPSocket.new(host, port).is_a?(TCPSocket)
|
14
|
+
end
|
11
15
|
rescue Exception => e
|
12
16
|
sleep(2)
|
13
17
|
end
|
@@ -17,7 +21,10 @@ module PoolParty
|
|
17
21
|
end
|
18
22
|
|
19
23
|
module InstanceMethods
|
20
|
-
def ping_port(ip, port, retry_times=500);self.class.ping_port(ip, port, retry_times);end
|
24
|
+
def ping_port(ip, port=22, retry_times=500);self.class.ping_port(ip, port, retry_times);end
|
25
|
+
def ping_port_and(ip, port=22, retry_times=500, &block)
|
26
|
+
block.call if ping_port(ip, port, retry_times) && block
|
27
|
+
end
|
21
28
|
end
|
22
29
|
|
23
30
|
def self.included(receiver)
|
@@ -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.dsl_options.delete_if {|k,v| o.parent.dsl_options.has_key?(k) && o.parent.
|
29
|
+
(o.dsl_options.delete_if {|k,v| o.parent.dsl_options.has_key?(k) && o.parent.dsl_options[k] == o.dsl_options[k] && !o.dsl_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")
|
@@ -1,13 +1,5 @@
|
|
1
1
|
module PoolParty
|
2
2
|
module ResourcingDsl
|
3
|
-
# Overrides for syntax
|
4
|
-
# Allows us to send require to require a resource
|
5
|
-
def requires(str=nil)
|
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
|
11
3
|
def ensures(str = :present)
|
12
4
|
if [:absent, :present].include?(str)
|
13
5
|
str == :absent ? is_absent : is_present
|
@@ -31,28 +23,8 @@ module PoolParty
|
|
31
23
|
dsl_options.merge!(:ensures => absent)
|
32
24
|
absent
|
33
25
|
end
|
34
|
-
# Alias for unless
|
35
|
-
def ifnot(str="")
|
36
|
-
dsl_options.merge!(:unless => str)
|
37
|
-
end
|
38
|
-
def cancel(*args)
|
39
|
-
dsl_options[:cancelled] = args.empty? ? true : args[0]
|
40
|
-
end
|
41
|
-
def cancelled?
|
42
|
-
dsl_options[:cancelled] || false
|
43
|
-
end
|
44
|
-
def printed(*args)
|
45
|
-
dsl_options[:printed] = true
|
46
|
-
end
|
47
|
-
def printed?
|
48
|
-
dsl_options[:printed] || false
|
49
|
-
end
|
50
26
|
|
51
27
|
#TODO: Diet
|
52
|
-
def render_template
|
53
|
-
# @templates.
|
54
|
-
end
|
55
|
-
|
56
28
|
def get_client_or_gem_template(file)
|
57
29
|
if ::File.file?(file) && ::File.readable?(file)
|
58
30
|
file
|
@@ -75,4 +47,4 @@ module PoolParty
|
|
75
47
|
::File.file?(file) && ::File.readable?(file)
|
76
48
|
end
|
77
49
|
end
|
78
|
-
end
|
50
|
+
end
|