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
@@ -1,9 +1,19 @@
|
|
1
1
|
module PoolParty
|
2
2
|
module Verifiers
|
3
|
+
@available_verifiers =[]
|
4
|
+
def self.available
|
5
|
+
@available_verifiers
|
6
|
+
end
|
3
7
|
|
4
8
|
class VerifierBase
|
5
9
|
attr_reader :host
|
6
10
|
|
11
|
+
def self.inherited(subclass)
|
12
|
+
unless Verifiers.available.include?(subclass)
|
13
|
+
Verifiers.available << subclass
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
7
17
|
def host=(h=nil)
|
8
18
|
@host ||= h
|
9
19
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module PoolParty
|
2
|
+
module Verifiers
|
3
|
+
|
4
|
+
=begin
|
5
|
+
|
6
|
+
== HttpMatch Verifier
|
7
|
+
|
8
|
+
Verify the body of an HTTP call matches a regular expression
|
9
|
+
|
10
|
+
== Usage
|
11
|
+
|
12
|
+
http_match url, response_code
|
13
|
+
|
14
|
+
== Example
|
15
|
+
|
16
|
+
verify do
|
17
|
+
http_match "http://host/index.html", /Welcome to your/
|
18
|
+
http_match "http://host/index.html", /new poolparty instance/
|
19
|
+
end
|
20
|
+
|
21
|
+
=end
|
22
|
+
|
23
|
+
class HttpMatch < VerifierBase
|
24
|
+
require 'open-uri'
|
25
|
+
|
26
|
+
attr_reader :uri, :regexp
|
27
|
+
def initialize(uri, regexp)
|
28
|
+
@uri = URI.parse(uri)
|
29
|
+
@regexp = regexp
|
30
|
+
end
|
31
|
+
|
32
|
+
def passing?
|
33
|
+
@regexp.match(@uri.read) ? true : false
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_s
|
37
|
+
"<#{self.class.to_s} uri:#{uri} regexp:#{regexp}>"
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module PoolParty
|
2
|
+
module Verifiers
|
3
|
+
|
4
|
+
=begin
|
5
|
+
|
6
|
+
== HttpStatus Verifier
|
7
|
+
|
8
|
+
Verify the HTTP response code from a particular url
|
9
|
+
|
10
|
+
== Usage
|
11
|
+
|
12
|
+
http_status url, response_code
|
13
|
+
|
14
|
+
== Example
|
15
|
+
|
16
|
+
verify do
|
17
|
+
http_status "http://host/index.html", 200
|
18
|
+
http_status "http://host/index.html", :success
|
19
|
+
http_status "http://host/asdfasdfads.html", 404
|
20
|
+
end
|
21
|
+
|
22
|
+
=end
|
23
|
+
|
24
|
+
class HttpStatus < VerifierBase
|
25
|
+
require 'net/http'
|
26
|
+
require 'uri'
|
27
|
+
|
28
|
+
attr_reader :uri, :status
|
29
|
+
def initialize(uri, status)
|
30
|
+
@uri = URI.parse(uri)
|
31
|
+
@status = status
|
32
|
+
end
|
33
|
+
|
34
|
+
def passing?
|
35
|
+
http = Net::HTTP.new(@uri.host)
|
36
|
+
response = http.request_get(@uri.path && !@uri.path.empty? ? @uri.path : "/")
|
37
|
+
|
38
|
+
return case true
|
39
|
+
when status.kind_of?(Numeric)
|
40
|
+
response.code == @status.to_s
|
41
|
+
when status.kind_of?(Symbol)
|
42
|
+
case status
|
43
|
+
when :success then response.kind_of?(Net::HTTPSuccess)
|
44
|
+
else
|
45
|
+
raise "unknown symbol #{status}"
|
46
|
+
end
|
47
|
+
else
|
48
|
+
raise "unknown status type #{status}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def to_s
|
53
|
+
"<#{self.class.to_s} uri:#{uri} status:#{status}>"
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
@@ -1,6 +1,18 @@
|
|
1
1
|
module PoolParty
|
2
2
|
module Verifiers
|
3
|
-
|
3
|
+
=begin
|
4
|
+
== Ping
|
5
|
+
|
6
|
+
Open a TCPSocket and verify you can connect.
|
7
|
+
|
8
|
+
== Example:
|
9
|
+
|
10
|
+
verify do
|
11
|
+
ping
|
12
|
+
ping(22)
|
13
|
+
end
|
14
|
+
|
15
|
+
=end
|
4
16
|
class Ping < VerifierBase
|
5
17
|
include ::PoolParty::Pinger
|
6
18
|
|
@@ -11,6 +23,11 @@ module PoolParty
|
|
11
23
|
def passing?
|
12
24
|
ping_port(host, port, 3)
|
13
25
|
end
|
26
|
+
|
27
|
+
def to_s
|
28
|
+
"<#{self.class.to_s} host:#{host} port:#{port}>"
|
29
|
+
end
|
30
|
+
|
14
31
|
end
|
15
32
|
|
16
33
|
end
|
@@ -16,13 +16,18 @@ module PoolParty
|
|
16
16
|
end
|
17
17
|
def verify(&block)
|
18
18
|
v = Verify.new(&block)
|
19
|
+
# ugly, todo fix
|
20
|
+
ip = nodes(:status => "running").first.ip rescue "127.0.0.1"
|
21
|
+
v.host = ip
|
19
22
|
v.verifiers.each {|v| verifiers << v}
|
20
23
|
end
|
21
24
|
def passing?
|
22
25
|
reset!
|
26
|
+
vputs "Starting cloud verification"
|
23
27
|
verifiers.each do |v|
|
24
28
|
ip = nodes(:status => "running").first.ip rescue "127.0.0.1"
|
25
29
|
v.host = ip
|
30
|
+
vputs " checking #{v} on #{ip}"
|
26
31
|
raise "Verification failed at #{v.class}" unless v.passing?
|
27
32
|
end
|
28
33
|
return true
|
@@ -39,6 +44,7 @@ module PoolParty
|
|
39
44
|
Dir[::File.dirname(__FILE__)+"/verifiers/*"].each {|m| require m }
|
40
45
|
|
41
46
|
class Verify
|
47
|
+
attr_accessor :host
|
42
48
|
def initialize(&block)
|
43
49
|
::PoolParty.require_user_directory "verifiers"
|
44
50
|
|
data/lib/poolparty.rb
CHANGED
@@ -2,7 +2,7 @@ $LOAD_PATH<< File.dirname(__FILE__)
|
|
2
2
|
# Load required gems
|
3
3
|
#TODO: remove activesupport
|
4
4
|
@required_software = Array.new
|
5
|
-
%w(rubygems
|
5
|
+
%w(rubygems fileutils resolv digest/sha2 json pp).each do |lib|
|
6
6
|
begin
|
7
7
|
require lib
|
8
8
|
rescue Exception => e
|
@@ -32,23 +32,24 @@ unless @required_software.empty?
|
|
32
32
|
exit(0)
|
33
33
|
end
|
34
34
|
|
35
|
-
Dir.glob(File.join(File.dirname(__FILE__),'..', 'vendor/gems/*/lib
|
36
|
-
|
35
|
+
Dir.glob(File.join(File.dirname(__FILE__),'..', 'vendor/gems/*/lib')).each do |d|
|
36
|
+
$LOAD_PATH.unshift(d)
|
37
37
|
end
|
38
38
|
|
39
|
+
require "dslify"
|
40
|
+
require "parenting"
|
41
|
+
require "suitcase"
|
42
|
+
|
39
43
|
t=Time.now
|
40
44
|
## Load PoolParty
|
41
|
-
|
42
|
-
require "#{File.dirname(__FILE__)}/poolparty/#{f}"
|
45
|
+
module PoolParty
|
43
46
|
end
|
44
47
|
|
45
48
|
def PoolParty.require_directory(dir)
|
46
49
|
if ::File.file?(dir)
|
47
|
-
puts "#{::File.expand_path(dir)}" if $DEBUGGING || $GENERATING_MANIFEST
|
48
50
|
require dir
|
49
51
|
else
|
50
52
|
Dir["#{dir}/*.rb"].sort.each do |file|
|
51
|
-
puts "#{::File.expand_path(file)}" if $DEBUGGING || $GENERATING_MANIFEST
|
52
53
|
require "#{file}" if ::File.file?(file)
|
53
54
|
end
|
54
55
|
Dir["#{dir}/*"].sort.each do |dir|
|
@@ -61,17 +62,20 @@ end
|
|
61
62
|
$_poolparty_load_directories = [
|
62
63
|
"core",
|
63
64
|
"dependencies.rb",
|
65
|
+
"modules/searchable_paths.rb",
|
66
|
+
"modules/pinger.rb",
|
67
|
+
"modules",
|
68
|
+
"poolparty/key.rb",
|
64
69
|
"dependency_resolver/dependency_resolver_cloud_extensions.rb",
|
65
70
|
"dependency_resolver/dependency_resolver.rb",
|
66
71
|
"poolparty/poolparty_base_class.rb",
|
67
72
|
"poolparty/default.rb",
|
68
|
-
"modules",
|
69
73
|
"exceptions",
|
70
74
|
'poolparty/key.rb',
|
71
75
|
"dependency_resolver",
|
72
|
-
"aska",
|
76
|
+
"aska.rb",
|
73
77
|
"config",
|
74
|
-
"monitors/monitor_rack",
|
78
|
+
"monitors/monitor_rack.rb",
|
75
79
|
"capistrano.rb",
|
76
80
|
'provisioners/provisioner_base.rb',
|
77
81
|
'provisioners/capistrano/capistrano.rb',
|
@@ -128,14 +132,9 @@ class Object
|
|
128
132
|
include PoolParty
|
129
133
|
include PoolParty::Pool
|
130
134
|
include PoolParty::Cloud
|
131
|
-
|
132
135
|
include PoolParty::DefinableResource
|
133
136
|
end
|
134
137
|
|
135
|
-
class Class
|
136
|
-
include PoolParty::PluginModel
|
137
|
-
end
|
138
|
-
|
139
138
|
## Load PoolParty Plugins and package
|
140
139
|
module PoolParty
|
141
140
|
%w(plugins base_packages).each do |dir|
|
data/lib/poolpartycl.rb
CHANGED
data/spec/bin/bin_spec_helper.rb
CHANGED
@@ -2,23 +2,21 @@ require File.dirname(__FILE__) + '/bin_spec_helper'
|
|
2
2
|
require "poolparty"
|
3
3
|
|
4
4
|
class PuppetResolverSpec
|
5
|
-
plugin :apache do
|
6
|
-
end
|
7
5
|
end
|
8
6
|
|
9
7
|
describe "Server list active binary" do
|
10
8
|
describe "with real cloud" do
|
11
9
|
before(:each) do
|
12
|
-
|
10
|
+
::PoolParty::Plugin::Haproxy.stub!(:new).and_return nil
|
13
11
|
$pool_specfile = __FILE__
|
14
12
|
@p = PoolParty::Pool::Pool.load_from_file "#{::File.dirname(__FILE__)}/fixtures/bin_cloud_for_test.rb"
|
15
13
|
@pool_hash = @p.to_properties_hash
|
16
14
|
end
|
17
15
|
it "should have the name on the schema" do
|
18
|
-
@pool_hash
|
16
|
+
@pool_hash[:options][:name].should == :binary_testing_cloud
|
19
17
|
end
|
20
18
|
it "should have the remoter base available" do
|
21
|
-
@pool_hash
|
19
|
+
@pool_hash[:options][:remoter_base].should_not be_nil
|
22
20
|
end
|
23
21
|
end
|
24
|
-
end
|
22
|
+
end
|
@@ -4,65 +4,4 @@ describe "Object" do
|
|
4
4
|
it "should respond to to_os" do
|
5
5
|
Object.new.respond_to?(:to_os).should == true
|
6
6
|
end
|
7
|
-
|
8
|
-
before(:each) do
|
9
|
-
@obj.stub!(:run).and_return "true"
|
10
|
-
end
|
11
|
-
it "should run the method :run because it exists" do
|
12
|
-
@obj.send_if_method(:run).should == "true"
|
13
|
-
end
|
14
|
-
it "should not run the method :bah because it doesn't exist" do
|
15
|
-
@obj.send_if_method("bah").should == "bah"
|
16
|
-
end
|
17
|
-
it "should not run the method if it is sent nil" do
|
18
|
-
@obj.send_if_method(nil).should == nil
|
19
|
-
end
|
20
|
-
it "should not run an empty string method" do
|
21
|
-
@obj.send_if_method("").should == ""
|
22
|
-
end
|
23
|
-
it "should not run a method that is an integer" do
|
24
|
-
@obj.send_if_method(2).should == 2
|
25
|
-
end
|
26
|
-
end
|
27
|
-
describe "with_options" do
|
28
|
-
before(:each) do
|
29
|
-
@obj = Class.new
|
30
|
-
end
|
31
|
-
it "should respond to with_options" do
|
32
|
-
@obj.respond_to?(:with_options).should == true
|
33
|
-
end
|
34
|
-
it "should set the options on the parent" do
|
35
|
-
allow_message_expectations_on_nil
|
36
|
-
@a.should_receive(:clone).and_return @a
|
37
|
-
@a.stub!(:options).and_return({})
|
38
|
-
with_options({:nick => "name"}, @a) do
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "running" do
|
43
|
-
before(:each) do
|
44
|
-
Class.stub!(:default_options).and_return({})
|
45
|
-
Class.send :include, Dslify
|
46
|
-
@a = Class.new
|
47
|
-
@b = Class.new
|
48
|
-
|
49
|
-
with_options({:nick => "name", :b => @b}, @a) do
|
50
|
-
b.dude "totally"
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
it "should set the options on the child in the instance eval" do
|
55
|
-
@b.dude.should == "totally"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
describe "contextual running" do
|
59
|
-
before(:each) do
|
60
|
-
@obj.stub!(:default_options).and_return {}
|
61
|
-
@a = @obj.instance_eval { @a = "hello world" }
|
62
|
-
end
|
63
|
-
it "should have the method meta_eval" do
|
64
|
-
@obj.respond_to?(:meta_eval).should == true
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
7
|
+
end
|
@@ -38,11 +38,11 @@ describe "Ordered Hash" do
|
|
38
38
|
@oh[:arr] = [1,2,3]
|
39
39
|
@oh.to_json.should == "{\"var1\":10,\"var2\":2,\"var3\":3,\"var4\":4,\"arr\":[1,2,3]}"
|
40
40
|
end
|
41
|
-
it "PoolParty Key" do
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
JSO
|
46
|
-
|
47
|
-
end
|
41
|
+
it "PoolParty Key" #do
|
42
|
+
# @oh[:key] = [Key.new, Key.new('path/to/nowhere')]
|
43
|
+
# expected=<<JSO
|
44
|
+
# {\"var1\":10,\"var2\":2,\"var3\":3,\"var4\":4,\"key\":[{\"basename\":\"id_rsa\",\"full_filepath\": \"/etc/poolparty/id_rsa\"},{\"basename\":\"path/to/nowhere\",\"full_filepath\": \"/etc/poolparty/path/to/nowhere\"}]}
|
45
|
+
# JSO
|
46
|
+
# @oh.to_json.should == expected.strip
|
47
|
+
# end
|
48
48
|
end
|
@@ -72,7 +72,7 @@ listen web_proxy 127.0.0.1:3000
|
|
72
72
|
@str = "prok"
|
73
73
|
end
|
74
74
|
it "should be able to turn itself into constant" do
|
75
|
-
@str.class_constant.should ==
|
75
|
+
@str.class_constant.should == PoolPartyProk
|
76
76
|
end
|
77
77
|
it "should turn itself into a class constant" do
|
78
78
|
@str.class_constant.class.should == Class
|
@@ -64,8 +64,6 @@ describe "ChefResolver" do
|
|
64
64
|
describe "with a cloud" do
|
65
65
|
before(:each) do
|
66
66
|
class ChefResolverSpec
|
67
|
-
plugin :apache do
|
68
|
-
end
|
69
67
|
end
|
70
68
|
@cloud = cloud :hope do
|
71
69
|
keypair "bob"
|
@@ -81,12 +79,6 @@ describe "ChefResolver" do
|
|
81
79
|
has_file :name => "/etc/apache2/apache2.conf", :template => "#{::File.dirname(__FILE__)}/../fixtures/test_template.erb", :friends => "bob"
|
82
80
|
has_exec :command => "ls /etc/apache2"
|
83
81
|
end
|
84
|
-
|
85
|
-
case_of "hostname" do
|
86
|
-
when_is 'master' do
|
87
|
-
has_package :name=>'haproxy'
|
88
|
-
end
|
89
|
-
end
|
90
82
|
end
|
91
83
|
@properties = @cloud.to_properties_hash
|
92
84
|
|
@@ -8,56 +8,62 @@ end
|
|
8
8
|
class DependencyResolverSpecTestResource
|
9
9
|
include Dslify
|
10
10
|
include PoolParty::DependencyResolverResourceExtensions
|
11
|
+
|
12
|
+
dsl_methods :name, :template, :content
|
11
13
|
end
|
12
14
|
|
13
15
|
# plugins, base_packages
|
14
16
|
class DependencyResolverSpecTestService < DependencyResolverCloudExtensionsSpecBase
|
15
|
-
|
17
|
+
dsl_methods :listen
|
16
18
|
end
|
17
19
|
|
18
20
|
# clouds, duh
|
19
21
|
class DependencyResolverSpecTestCloud < DependencyResolverCloudExtensionsSpecBase
|
22
|
+
dsl_methods :keypair, :name
|
20
23
|
end
|
21
24
|
|
22
|
-
class JunkClassForDefiningPlugin
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
# class JunkClassForDefiningPlugin
|
26
|
+
# apache_plugin do
|
27
|
+
# default_options(
|
28
|
+
# :listen => 80
|
29
|
+
# )
|
30
|
+
# def loaded(o={},&block)
|
31
|
+
# end
|
32
|
+
# end
|
33
|
+
# end
|
28
34
|
|
29
35
|
describe "Resolution spec" do
|
30
36
|
before(:each) do
|
31
37
|
@apache_file = DependencyResolverSpecTestResource.new
|
32
|
-
@apache_file.name "/etc/apache2/apache2.conf"
|
33
|
-
@apache_file.template "/absolute/path/to/template"
|
34
|
-
@apache_file.content "rendered template string"
|
38
|
+
@apache_file.name = "/etc/apache2/apache2.conf"
|
39
|
+
@apache_file.template = "/absolute/path/to/template"
|
40
|
+
@apache_file.content = "rendered template string"
|
35
41
|
|
36
42
|
@apache = DependencyResolverSpecTestService.new :apache_file
|
37
|
-
@apache.listen "8080"
|
43
|
+
@apache.listen = "8080"
|
38
44
|
@apache.resources[:file] = []
|
39
45
|
@apache.resources[:file] << @apache_file
|
40
46
|
|
41
47
|
@cloud = DependencyResolverSpecTestCloud.new :cloud
|
42
|
-
@cloud.keypair "bob"
|
43
|
-
@cloud.name "dog"
|
48
|
+
@cloud.keypair = "bob"
|
49
|
+
@cloud.name = "dog"
|
44
50
|
|
45
|
-
(@cloud.
|
51
|
+
(@cloud.resources[:apache] ||= []) << @apache
|
46
52
|
|
47
53
|
@cloud_file_motd = DependencyResolverSpecTestResource.new
|
48
|
-
@cloud_file_motd.name "/etc/motd"
|
49
|
-
@cloud_file_motd.content "Welcome to the cloud"
|
54
|
+
@cloud_file_motd.name = "/etc/motd"
|
55
|
+
@cloud_file_motd.content = "Welcome to the cloud"
|
50
56
|
|
51
57
|
@cloud_file_profile = DependencyResolverSpecTestResource.new
|
52
|
-
@cloud_file_profile.name "/etc/profile"
|
53
|
-
@cloud_file_profile.content "profile info"
|
58
|
+
@cloud_file_profile.name = "/etc/profile"
|
59
|
+
@cloud_file_profile.content = "profile info"
|
54
60
|
|
55
61
|
@cloud.resources[:file] = []
|
56
62
|
@cloud.resources[:file] << @cloud_file_motd
|
57
63
|
@cloud.resources[:file] << @cloud_file_profile
|
58
64
|
|
59
65
|
@cloud_directory_var_www = DependencyResolverSpecTestResource.new
|
60
|
-
@cloud_directory_var_www.name "/var/www"
|
66
|
+
@cloud_directory_var_www.name = "/var/www"
|
61
67
|
|
62
68
|
@cloud.resources[:directory] = []
|
63
69
|
@cloud.resources[:directory] << @cloud_directory_var_www
|
@@ -67,21 +73,18 @@ describe "Resolution spec" do
|
|
67
73
|
end
|
68
74
|
describe "to_properties_hash" do
|
69
75
|
it "should output a hash" do
|
70
|
-
@cloud.to_properties_hash.class.should ==
|
71
|
-
# puts "<pre>#{@cloud.to_properties_hash.to_yaml}</pre>"
|
76
|
+
@cloud.to_properties_hash.class.should == Hash
|
72
77
|
end
|
73
78
|
it "should have resources on the cloud as an array of hashes" do
|
74
79
|
@cloud.to_properties_hash[:resources].class.should == Array
|
75
80
|
end
|
76
|
-
it "should have services on the cloud as an array of hashes" do
|
77
|
-
@cloud.to_properties_hash[:services].class.should == OrderedHash
|
78
|
-
end
|
79
81
|
end
|
80
82
|
|
81
83
|
describe "defined cloud" do
|
82
84
|
before(:each) do
|
83
85
|
reset!
|
84
|
-
|
86
|
+
::File.stub!(:basename).and_return "template"
|
87
|
+
@file = "Hello <%= friends %> on port <%= port %>"
|
85
88
|
@file.stub!(:read).and_return @file
|
86
89
|
Template.stub!(:open).and_return @file
|
87
90
|
|
@@ -92,16 +95,19 @@ describe "Resolution spec" do
|
|
92
95
|
has_directory :name => "/var/www"
|
93
96
|
has_package :name => "bash"
|
94
97
|
# parent == nil
|
95
|
-
|
98
|
+
apache do
|
96
99
|
# parent == TestClass
|
97
100
|
# puts "<pre>#{parent}</pre> on <pre>#{context_stack.map {|a| a.class }.join(", ")} from #{self.class}</pre>"
|
98
101
|
listen "8080"
|
99
|
-
has_file :name => "/etc/apache2/apache2.conf",
|
102
|
+
has_file :name => "/etc/apache2/apache2.conf",
|
103
|
+
:template => "/absolute/path/to/template",
|
104
|
+
:friends => "bob",
|
105
|
+
:render_as => :erb
|
100
106
|
end
|
101
107
|
end
|
102
108
|
@cloud = clouds[:dog_for_test]
|
103
109
|
@properties = @cloud.to_properties_hash
|
104
|
-
@apache_key = @properties[:
|
110
|
+
@apache_key = @properties[:resources].select {|hsh| hsh[:name] =~ /apache/ }.first
|
105
111
|
end
|
106
112
|
|
107
113
|
it "should have the method to_properties_hash on the cloud" do
|
@@ -112,10 +118,7 @@ describe "Resolution spec" do
|
|
112
118
|
@properties[:resources].class.should == Array
|
113
119
|
end
|
114
120
|
it "contain content in the template's hash" do
|
115
|
-
@
|
116
|
-
end
|
117
|
-
it "should have services" do
|
118
|
-
@properties[:services][@apache_key].empty?.should == false
|
121
|
+
@apache_key.resources.select_with_hash(:pp_type => "file").first[:content].should == "Hello bob on port 8080"
|
119
122
|
end
|
120
123
|
it "contain the files in a hash" do
|
121
124
|
# puts "<pre>#{@properties.to_yaml}</pre>"
|