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
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe "File" do
|
4
|
+
describe "instances" do
|
5
|
+
before(:each) do
|
6
|
+
@tc = TestBaseClass.new do
|
7
|
+
has_package(:name => "apache2")
|
8
|
+
end
|
9
|
+
@package = @tc.resource(:package).first
|
10
|
+
end
|
11
|
+
it "have the name in the options" do
|
12
|
+
@package.name.should == "apache2"
|
13
|
+
end
|
14
|
+
it "should ensure it's present" do
|
15
|
+
@package.ensures.should == "present"
|
16
|
+
end
|
17
|
+
describe "into PuppetResolver" do
|
18
|
+
before(:each) do
|
19
|
+
@compiled = PuppetResolver.new(@tc.to_properties_hash).compile
|
20
|
+
end
|
21
|
+
it "should set the filename to the name of the file" do
|
22
|
+
@compiled.should match(/package \{ "apache2"/)
|
23
|
+
end
|
24
|
+
it "have the mode set in the puppet output" do
|
25
|
+
@compiled.should match(/ensure => "present"/)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe "Service" do
|
4
|
+
describe "instances" do
|
5
|
+
before(:each) do
|
6
|
+
@tc = TestBaseClass.new do
|
7
|
+
has_service("apache2", {:hasrestart => true})
|
8
|
+
end
|
9
|
+
@service = @tc.resource(:service).first
|
10
|
+
end
|
11
|
+
it "have the name in the options" do
|
12
|
+
@service.name.should == "apache2"
|
13
|
+
end
|
14
|
+
it "should store the hasrestart option" do
|
15
|
+
@service.hasrestart.should == true
|
16
|
+
end
|
17
|
+
describe "into PuppetResolver" do
|
18
|
+
before(:each) do
|
19
|
+
@compiled = PuppetResolver.new(@tc.to_properties_hash).compile
|
20
|
+
end
|
21
|
+
it "should set the filename to the name of the file" do
|
22
|
+
@compiled.should match(/service \{ "apache2"/)
|
23
|
+
end
|
24
|
+
it "have the mode set in the puppet output" do
|
25
|
+
@compiled.should match(/hasrestart => true/)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe "Sshkey" do
|
4
|
+
describe "instances" do
|
5
|
+
before(:each) do
|
6
|
+
@key = Key.new
|
7
|
+
Key.stub!(:new).and_return @key
|
8
|
+
@key.stub!(:content).and_return "DIGITSOFTHEKEY"
|
9
|
+
@tc = TestBaseClass.new do
|
10
|
+
has_sshkey({:name => "~/.ssh/id_rsa"}) do
|
11
|
+
enctype "rsa"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
@dir = @tc.resource(:sshkey).first
|
15
|
+
end
|
16
|
+
it "have the name in the options" do
|
17
|
+
@dir.name.should == "~/.ssh/id_rsa"
|
18
|
+
end
|
19
|
+
it "should store the owner's name" do
|
20
|
+
@dir.enctype.should == "rsa"
|
21
|
+
end
|
22
|
+
describe "into PuppetResolver" do
|
23
|
+
before(:each) do
|
24
|
+
@compiled = PuppetResolver.new(@tc.to_properties_hash).compile
|
25
|
+
end
|
26
|
+
it "should set the filename to the name of the file" do
|
27
|
+
@compiled.should match(/sshkey \{ "~\/\.ssh\/id_rsa"/)
|
28
|
+
end
|
29
|
+
it "should say it's a sshkey in the ensure method" do
|
30
|
+
@compiled.should match(/ensure => "present"/)
|
31
|
+
end
|
32
|
+
it "have the mode set in the puppet output" do
|
33
|
+
@compiled.should match(/type => "rsa"/)
|
34
|
+
end
|
35
|
+
it "have the long string of digits key" do
|
36
|
+
@compiled.should match(/key => "DIGITSOFTHEKEY"/)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe "Symlink" do
|
4
|
+
describe "instances" do
|
5
|
+
before(:each) do
|
6
|
+
@tc = TestBaseClass.new do
|
7
|
+
has_symlink("/etc/apache2/sites-enabled/poolpartyrb.com", :source => "/etc/apache2/sites-available/poolpartyrb.com")
|
8
|
+
end
|
9
|
+
@dir = @tc.resource(:symlink).first
|
10
|
+
end
|
11
|
+
it "have the name in the options" do
|
12
|
+
@dir.name.should == "/etc/apache2/sites-enabled/poolpartyrb.com"
|
13
|
+
end
|
14
|
+
it "should store the source name" do
|
15
|
+
@dir.source.should == "/etc/apache2/sites-available/poolpartyrb.com"
|
16
|
+
end
|
17
|
+
describe "into PuppetResolver" do
|
18
|
+
before(:each) do
|
19
|
+
@compiled = PuppetResolver.new(@tc.to_properties_hash).compile
|
20
|
+
end
|
21
|
+
it "should set the filename to the name of the file" do
|
22
|
+
@compiled.should match(/file \{ "\/etc\/apache2\/sites-enabled\/poolpartyrb\.com"/)
|
23
|
+
end
|
24
|
+
it "set the owner as the owner" do
|
25
|
+
@compiled.should match(/ensure => "\/etc\/apache2\/sites-available\/poolpartyrb\.com"/)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe "User" do
|
4
|
+
describe "instances" do
|
5
|
+
before(:each) do
|
6
|
+
@tc = TestBaseClass.new do
|
7
|
+
has_user("bob", {:job => "accountant", :comment => "Bob is outstanding"}) do
|
8
|
+
password "b0b"
|
9
|
+
home "/home/bob"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
@user = @tc.resources[:user].first
|
13
|
+
end
|
14
|
+
it "have the name in the options" do
|
15
|
+
@user.name.should == "bob"
|
16
|
+
end
|
17
|
+
it "should store the owner's name" do
|
18
|
+
@user.comment.should == "Bob is outstanding"
|
19
|
+
end
|
20
|
+
it "should store the password (from within the block)" do
|
21
|
+
@user.password.should == "b0b"
|
22
|
+
end
|
23
|
+
it "should store the home" do
|
24
|
+
@user.home.should == "/home/bob"
|
25
|
+
end
|
26
|
+
describe "into PuppetResolver" do
|
27
|
+
before(:each) do
|
28
|
+
@compiled = PuppetResolver.new(@tc.to_properties_hash).compile
|
29
|
+
end
|
30
|
+
it "should set the filename to the name of the file" do
|
31
|
+
@compiled.should match(/user \{ "bob"/)
|
32
|
+
end
|
33
|
+
it "set the owner as the owner" do
|
34
|
+
# puts "<pre>"+@compiled.to_yaml+"</pre>"
|
35
|
+
@compiled.should match(/comment => "Bob is outstanding"/)
|
36
|
+
end
|
37
|
+
it "should say it's a user in the ensure method" do
|
38
|
+
@compiled.should match(/ensure => "present"/)
|
39
|
+
end
|
40
|
+
it "have the mode set in the puppet output" do
|
41
|
+
@compiled.should match(/home => "\/home\/bob"/)
|
42
|
+
end
|
43
|
+
it "set the password" do
|
44
|
+
@compiled.should match(/password => "b0b"/)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe "Variables" do
|
4
|
+
describe "instances" do
|
5
|
+
before(:each) do
|
6
|
+
@tc = TestBaseClass.new do
|
7
|
+
has_variable(:name => "master", :value => "herman")
|
8
|
+
end
|
9
|
+
@variable = @tc.resource(:variable).first
|
10
|
+
end
|
11
|
+
it "have the name in the options" do
|
12
|
+
@variable.name.should == "master"
|
13
|
+
end
|
14
|
+
it "should store the owner's name as well" do
|
15
|
+
@variable.value.should == "herman"
|
16
|
+
end
|
17
|
+
describe "into PuppetResolver" do
|
18
|
+
before(:each) do
|
19
|
+
@compiled = PuppetResolver.new(@tc.to_properties_hash).compile
|
20
|
+
end
|
21
|
+
it "have the variable set in the puppet output" do
|
22
|
+
@compiled.should match(/\$master = "herman"/)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "spec"
|
3
|
+
require "json"
|
4
|
+
require File.dirname(__FILE__) + '/../../lib/poolparty/schema'
|
5
|
+
|
6
|
+
describe "Schema" do
|
7
|
+
it "should not fail when called with a hash" do
|
8
|
+
lambda {PoolParty::Schema.new({:a => "a"})}.should_not raise_error
|
9
|
+
end
|
10
|
+
it "should be able to take a string of JSON" do
|
11
|
+
lambda{PoolParty::Schema.new({:a => "a"}.to_json)}.should_not raise_error
|
12
|
+
end
|
13
|
+
describe "methods" do
|
14
|
+
before(:each) do
|
15
|
+
@schema = PoolParty::Schema.new :a => "b", :b => {:a => "a in b", :b => {:a => "a in b.b"}}
|
16
|
+
end
|
17
|
+
it "should be able to call a method that's in the hash on the schema" do
|
18
|
+
@schema.a.should == "b"
|
19
|
+
end
|
20
|
+
it "should be able to call deeply into the hash" do
|
21
|
+
@schema.b.a.should == "a in b"
|
22
|
+
end
|
23
|
+
it "should be able to call really deep into the hash" do
|
24
|
+
@schema.b.b.a.should == "a in b.b"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
describe "json" do
|
28
|
+
before(:each) do
|
29
|
+
@schema = PoolParty::Schema.new({:a => "b", :b => {:a => "a in b", :b => {:a => "a in b.b"}}}.to_json)
|
30
|
+
end
|
31
|
+
it "should be able to call a method that's in the hash on the schema" do
|
32
|
+
@schema.a.should == "b"
|
33
|
+
end
|
34
|
+
it "should be able to call deeply into the hash" do
|
35
|
+
@schema.b.a.should == "a in b"
|
36
|
+
end
|
37
|
+
it "should be able to call really deep into the hash" do
|
38
|
+
@schema.b.b.a.should == "a in b.b"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
describe "with arrays" do
|
42
|
+
before(:each) do
|
43
|
+
@schema = PoolParty::Schema.new({:a => ["b"], :b => {:a => ["a in b", "a in b.a"], :b => {:a => "a in b.b"}}}.to_json)
|
44
|
+
end
|
45
|
+
it "should have an array in a" do
|
46
|
+
@schema.a.class.should == Array
|
47
|
+
@schema.a.should == ["b"]
|
48
|
+
end
|
49
|
+
it "should have an array in b (deep)" do
|
50
|
+
@schema.b.a.should == ["a in b", "a in b.a"]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
# STUB!
|
4
|
+
def add_service(arg)
|
5
|
+
end
|
6
|
+
|
7
|
+
describe "Conditional" do
|
8
|
+
it "not fail when calling case_of" do
|
9
|
+
lambda {
|
10
|
+
case_of "b" do
|
11
|
+
end
|
12
|
+
}.should_not raise_error
|
13
|
+
end
|
14
|
+
it "should put the case object on the case stack as a Conditional object" do
|
15
|
+
c = case_of "b" do
|
16
|
+
end
|
17
|
+
c.attribute.should == "b"
|
18
|
+
end
|
19
|
+
it "should populate the when_statements when a when_is is called" do
|
20
|
+
c = case_of "b" do
|
21
|
+
when_is "b" do
|
22
|
+
end
|
23
|
+
end
|
24
|
+
c.when_statements.size.should == 1
|
25
|
+
end
|
26
|
+
it "freeze the case statement when calling end_of" do
|
27
|
+
c = case_of "b" do
|
28
|
+
when_is "b" do
|
29
|
+
end
|
30
|
+
end
|
31
|
+
c.options.frozen?.should == true
|
32
|
+
end
|
33
|
+
it "create a new service for the when_is block" do
|
34
|
+
c = case_of "b" do
|
35
|
+
when_is "b" do
|
36
|
+
"I'm TOTALLY B!"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
c.when_statements[:b].is_a?(Service).should == true
|
40
|
+
end
|
41
|
+
it "create a new service for the when_is block" do
|
42
|
+
c = case_of "b" do
|
43
|
+
when_is "b" do
|
44
|
+
"I'm TOTALLY B!"
|
45
|
+
end
|
46
|
+
when_is "c" do
|
47
|
+
"You are not 'c', don't lie!"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
c.when_statements[:b].is_a?(Service).should == true
|
51
|
+
end
|
52
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
$:.unshift(File.dirname(__FILE__) + '/../../lib')
|
2
2
|
require 'poolparty'
|
3
3
|
|
4
|
+
# TODO: FIX THE STUBS
|
5
|
+
# %w(context matchy).each do |library|
|
4
6
|
%w(spec).each do |library|
|
5
7
|
begin
|
6
8
|
require library
|
@@ -12,33 +14,78 @@ end
|
|
12
14
|
# Dir["#{File.dirname(__FILE__)}/helpers/**"].each {|a| require a}
|
13
15
|
|
14
16
|
ENV["POOL_SPEC"] = nil
|
17
|
+
ENV["AWS_ACCESS_KEY"] = 'fake_access_key'
|
18
|
+
ENV["AWS_SECRET_ACCESS_KEY"] = 'fake_aws_secret_access_key'
|
15
19
|
|
16
20
|
include PoolParty
|
17
21
|
extend PoolParty
|
18
22
|
|
19
|
-
def debugging
|
20
|
-
|
21
|
-
end
|
22
|
-
def
|
23
|
-
|
24
|
-
|
23
|
+
def debugging(*args); false; end
|
24
|
+
def are_too_many_instances_running?; end
|
25
|
+
def are_any_nodes_exceeding_minimum_runtime?; end
|
26
|
+
def are_too_few_instances_running?; end
|
27
|
+
|
28
|
+
include Remote
|
29
|
+
require File.dirname(__FILE__)+'/net/remoter_bases/ec2_mocks_and_stubs.rb'
|
30
|
+
|
31
|
+
# Append this directory - which contains a mock key named id_rsa - to the list of searchable locations
|
32
|
+
class Key
|
33
|
+
class << self
|
34
|
+
alias :keypair_paths_without_spec_dir :keypair_paths unless method_defined?(:keypair_paths_without_spec_dir)
|
35
|
+
def keypair_paths
|
36
|
+
[keypair_paths_without_spec_dir, File.dirname(__FILE__)].flatten
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
25
40
|
end
|
26
|
-
|
41
|
+
|
42
|
+
class TestRemoterClass < ::PoolParty::Remote::Ec2
|
43
|
+
include CloudResourcer
|
44
|
+
include CloudDsl
|
45
|
+
|
46
|
+
def ami;"ami-abc123";end
|
47
|
+
def size; "small";end
|
48
|
+
def security_group; "default";end
|
49
|
+
def ebs_volume_id; "ebs_volume_id";end
|
50
|
+
def availabilty_zone; "us-east-1a";end
|
51
|
+
def verbose; false; end
|
52
|
+
def debugging; false; end
|
53
|
+
def ec2
|
54
|
+
@ec2 ||= EC2::Base.new( :access_key_id => "not_an_access_key", :secret_access_key => "not_a_secret_access_key")
|
55
|
+
end
|
56
|
+
def describe_instances(o={})
|
57
|
+
response_list_of_instances
|
58
|
+
end
|
27
59
|
end
|
28
60
|
|
29
|
-
class TestClass < PoolParty::Cloud::Cloud
|
61
|
+
class TestClass < ::PoolParty::Cloud::Cloud
|
30
62
|
include CloudResourcer
|
63
|
+
include PoolParty::Remote
|
31
64
|
attr_accessor :parent
|
32
|
-
def initialize(&block)
|
33
|
-
super :test_cloud,
|
65
|
+
def initialize(name=:name, &block)
|
66
|
+
super :test_cloud, &block
|
34
67
|
end
|
35
|
-
def
|
36
|
-
|
68
|
+
def verbose
|
69
|
+
false
|
37
70
|
end
|
38
71
|
end
|
72
|
+
class TestCloud < TestClass
|
73
|
+
end
|
74
|
+
|
75
|
+
class TestBaseClass < PoolParty::PoolPartyBaseClass
|
76
|
+
end
|
39
77
|
|
40
78
|
def setup
|
41
|
-
PoolParty::Messenger.stub!(:messenger_send!).and_return false
|
79
|
+
PoolParty::Messenger.stub!(:messenger_send!).and_return false
|
80
|
+
end
|
81
|
+
|
82
|
+
def new_test_cloud(force_new=false)
|
83
|
+
unless @test_cloud || force_new
|
84
|
+
@test_cloud = TestCloud.new("test_cloud_#{rand(10000)}")
|
85
|
+
stub_list_from_remote_for @test_cloud
|
86
|
+
@test_cloud.stub!(:describe_instances).and_return response_list_of_instances
|
87
|
+
end
|
88
|
+
@test_cloud
|
42
89
|
end
|
43
90
|
|
44
91
|
def setup_cl
|
@@ -93,9 +140,17 @@ def stub_list_from_local_for(o)
|
|
93
140
|
|
94
141
|
@ris = @list.split(/\n/).map {|line| PoolParty::Remote::RemoteInstance.new(line) }
|
95
142
|
end
|
96
|
-
def stub_remoter_for(o)
|
97
|
-
|
143
|
+
def stub_remoter_for(o)
|
144
|
+
@ec2 = EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "even more not a key")
|
145
|
+
EC2::Base.stub!(:new).and_return @ec2
|
146
|
+
|
147
|
+
o.class.stub!(:ec2).and_return @ec2
|
98
148
|
o.stub!(:list_of_running_instances).and_return sample_instances
|
149
|
+
|
150
|
+
o.stub!(:list_of_instances).and_return sample_instances
|
151
|
+
@ec2.stub!(:run_instances).and_return true
|
152
|
+
@ec2.stub!(:describe_instances).and_return sample_instances
|
153
|
+
@ec2.stub!(:describe_instance).and_return sample_instances
|
99
154
|
end
|
100
155
|
def stub_list_from_remote_for(o, launch_stub=true)
|
101
156
|
stub_remoter_for(o)
|
@@ -109,8 +164,6 @@ def stub_list_from_remote_for(o, launch_stub=true)
|
|
109
164
|
stub_remoting_methods_for(o)
|
110
165
|
end
|
111
166
|
def stub_remoting_methods_for(o)
|
112
|
-
o.stub!(:keypair).and_return "fake_keypair"
|
113
|
-
o.stub!(:keypair_path).and_return "~/.ec2/fake_keypair"
|
114
167
|
o.stub!(:other_clouds).and_return []
|
115
168
|
o.stub!(:expand_when).and_return "cpu > 10"
|
116
169
|
o.stub!(:copy_file_to_storage_directory).and_return true
|
@@ -125,20 +178,26 @@ def stub_remoting_methods_for(o)
|
|
125
178
|
o.stub!(:can_expand_cloud?).and_return false
|
126
179
|
end
|
127
180
|
def stub_list_of_instances_for(o)
|
128
|
-
|
129
|
-
o.stub!(:
|
130
|
-
|
181
|
+
o.stub!(:list_of_running_instances).once.and_return running_remote_instances
|
182
|
+
# o.stub!(:describe_instances).and_return response_list_of_instances
|
183
|
+
end
|
184
|
+
|
185
|
+
def stub_running_remote_instances(o)
|
186
|
+
o.stub!(:list_of_running_instances).and_return(running_remote_instances.map {|h| PoolParty::Remote::RemoteInstance.new(h) })
|
131
187
|
end
|
132
188
|
|
133
189
|
def response_list_of_instances(arr=[])
|
134
190
|
unless @response_list_of_instances
|
135
191
|
@a1 = stub_instance(1);
|
136
192
|
@a1[:name] = "master"
|
137
|
-
@a2 = stub_instance(1);
|
138
|
-
@
|
193
|
+
@a2 = stub_instance(1);
|
194
|
+
@a3 = stub_instance(2, "terminated");
|
195
|
+
@a4 = stub_instance(3, "pending")
|
196
|
+
@b1 = stub_instance(4, "shutting down", "blist");
|
197
|
+
@c1 = stub_instance(5, "pending", "clist")
|
139
198
|
@response_list_of_instances = [@a1, @a2, @a3, @a4, @b1, @c1]
|
140
199
|
end
|
141
|
-
@response_list_of_instances
|
200
|
+
@response_list_of_instances+arr
|
142
201
|
end
|
143
202
|
|
144
203
|
def running_remote_instances
|
@@ -179,4 +238,26 @@ class Object
|
|
179
238
|
def messenger_send!(*args)
|
180
239
|
true
|
181
240
|
end
|
241
|
+
end
|
242
|
+
|
243
|
+
class Object
|
244
|
+
def to_html_list
|
245
|
+
str = ''
|
246
|
+
str << "<ul>"
|
247
|
+
str << self.collect {|k,v|
|
248
|
+
"<li>#{k} => #{(v.instance_of?(Hash) || v.instance_of?(Array)) ? v.to_html_list : v.inspect}</li> "
|
249
|
+
}.join(" ")
|
250
|
+
str << "</ul>"
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
class Array
|
255
|
+
def to_html_list
|
256
|
+
str =''
|
257
|
+
str<< "<ul class='array'>"
|
258
|
+
str<< self.collect {|v|
|
259
|
+
"<li>#{(v.is_a?(Array) || v.is_a?(Hash)) ? v.to_html_list : v.inspect}</li>"
|
260
|
+
}.join(' ')
|
261
|
+
str<<"</ul>"
|
262
|
+
end
|
182
263
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__) + '/../../lib')
|
2
|
+
require 'poolparty'
|
3
|
+
|
4
|
+
%w(context matchy).each do |library|
|
5
|
+
begin
|
6
|
+
require library
|
7
|
+
rescue
|
8
|
+
STDERR.puts "== Cannot run test without #{library}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class TestBaseClass < PoolParty::PoolPartyBaseClass
|
13
|
+
end
|
data/tasks/development.rake
CHANGED
@@ -1,75 +1,82 @@
|
|
1
|
-
namespace
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
desc "Setup development environment specify the config_file"
|
7
|
-
task :setup => [:initialize, :setup_keypair] do
|
8
|
-
certloc = "#{Base.ec2_dir}/#{Base.keypair}/cert-*.pem 2>/dev/null"
|
9
|
-
pkloc = "#{Base.ec2_dir}/#{Base.keypair}/pk-*.pem 2>/dev/null"
|
10
|
-
unless `ls #{certloc}`.length > 1 && `ls #{pkloc}`.length > 1
|
11
|
-
puts <<-EOM
|
12
|
-
Make sure you run rake dev:setup_pemkeys before you run this command
|
13
|
-
|
14
|
-
I cannot continue until your keys are setup.
|
15
|
-
exiting...
|
16
|
-
EOM
|
17
|
-
exit
|
1
|
+
namespace :poolparty do
|
2
|
+
namespace(:ec2) do
|
3
|
+
|
4
|
+
task :initialize do
|
5
|
+
Kernel.system"mkdir ~/.ec2 >/dev/null 2>/dev/null" unless File.directory?("~/.ec2")
|
18
6
|
end
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
7
|
+
# Setup a basic development environment for the user
|
8
|
+
|
9
|
+
desc "Setup development environment specify the config_file"
|
10
|
+
task :setup => [:initialize, :setup_keypair] do
|
11
|
+
certloc = "#{Default.ec2_dir}/#{Default.keypair}/cert-*.pem 2>/dev/null"
|
12
|
+
pkloc = "#{Default.ec2_dir}/#{Default.keypair}/pk-*.pem 2>/dev/null"
|
13
|
+
unless `ls #{certloc}`.length > 1 && `ls #{pkloc}`.length > 1
|
14
|
+
puts <<-EOM
|
15
|
+
Make sure you run rake dev:setup_pemkeys before you run this command
|
16
|
+
|
17
|
+
I cannot continue until your keys are setup.
|
18
|
+
exiting...
|
19
|
+
EOM
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
keyfilename = ".#{Default.keypair}_pool_keys"
|
23
|
+
run <<-EOR
|
24
|
+
echo 'export AWS_ACCESS_KEY=\"#{Default.access_key}\"' > $HOME/#{keyfilename}
|
25
|
+
echo 'export AWS_SECRET_ACCESS=\"#{Default.secret_access_key}\"' >> $HOME/#{keyfilename}
|
26
|
+
echo 'export EC2_HOME=\"#{Default.ec2_dir}\"' >> $HOME/#{keyfilename}
|
27
|
+
echo 'export KEYPAIR_NAME=\"#{Default.keypair}\"' >> $HOME/#{keyfilename}
|
28
|
+
echo 'export EC2_PRIVATE_KEY=`ls ~/.ec2/#{Default.keypair}/pk-*.pem`;' >> $HOME/#{keyfilename}
|
29
|
+
echo 'export EC2_CERT=`ls ~/.ec2/#{Default.keypair}/cert-*.pem`;' >> $HOME/#{keyfilename}
|
30
|
+
EOR
|
31
|
+
puts <<-EOM
|
32
|
+
To work on this cloud, source the file like:
|
30
33
|
|
31
|
-
|
34
|
+
source $HOME/#{keyfilename}
|
32
35
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
36
|
+
EOM
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "Generate a new keypair"
|
40
|
+
task :setup_keypair => [:initialize] do
|
41
|
+
Default.keypair ||= "#{File.basename(Dir.pwd)}"
|
42
|
+
run "ec2-delete-keypair #{Default.keypair}" if File.file?(Default.keypair_path)
|
43
|
+
puts "-- setting up keypair named #{Default.keypair} in #{Default.keypair_path}"
|
44
|
+
run <<-EOR
|
45
|
+
chmod 600 #{Default.keypair_path} 2>/dev/null
|
46
|
+
mkdir ~/.ec2/#{Default.keypair} 2>/dev/null
|
47
|
+
ec2-add-keypair #{Default.keypair} > #{Default.keypair_path}
|
48
|
+
EOR
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "Setup pem keys"
|
52
|
+
task :setup_pemkeys => [:initialize] do
|
53
|
+
puts "Setting up stubbed pem keys in ~/.ec2/#{Default.keypair}"
|
54
|
+
run <<-EOR
|
55
|
+
mkdir -p ~/.ec2/#{Default.keypair} 2>/dev/null
|
56
|
+
echo 'UPDATE ME' > #{Default.ec2_dir}/#{Default.keypair}/cert-UPDATEME.pem
|
57
|
+
echo 'UPDATE ME' > #{Default.ec2_dir}/#{Default.keypair}/pk-UPDATEME.pem
|
58
|
+
EOR
|
59
|
+
puts "Don't forget to replace your ~/.ec2/#{Default.keypair}/*.pem keys with the real amazon keys"
|
60
|
+
end
|
61
|
+
|
62
|
+
desc "initialize setup"
|
63
|
+
task :init => [:setup_pemkeys]
|
64
|
+
desc "Authorize base ports for application"
|
65
|
+
task :authorize_ports => :initialize do
|
66
|
+
run <<-EOR
|
67
|
+
ec2-authorize -p 22 default
|
68
|
+
ec2-authorize -p 80 default
|
69
|
+
EOR
|
70
|
+
end
|
71
|
+
|
72
|
+
desc "Turn the gemspec into a yaml file"
|
73
|
+
task :gemspec_to_yaml => [:initialize, :gemspec] do
|
74
|
+
filepath = ::File.join(::File.dirname(__FILE__), "..", "poolparty.gemspec")
|
75
|
+
data = open(filepath).read
|
76
|
+
spec = eval("$SAFE = 3\n#{data}")
|
77
|
+
yml = YAML.dump spec
|
78
|
+
File.open(filepath, "w+"){ |f|f << yml }
|
73
79
|
end
|
80
|
+
|
74
81
|
end
|
75
82
|
end
|