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
@@ -2,32 +2,30 @@ require "#{::File.dirname(__FILE__)}/../../test_helper"
|
|
2
2
|
|
3
3
|
class TestHashClass < Test::Unit::TestCase
|
4
4
|
context "hash_get" do
|
5
|
-
|
5
|
+
setup do
|
6
6
|
@hsh = {
|
7
7
|
"10.0.0.3" => {"stuff" => "here"},
|
8
8
|
"10.0.0.1" => {"stuff" => "here"},
|
9
9
|
"10.0.0.2" => {"stuff" => "here"}
|
10
10
|
}
|
11
11
|
end
|
12
|
-
|
12
|
+
should "should return 0.1 if we are 0.2" do
|
13
13
|
assert @hsh.next_sorted_key("10.0.0.1"), "10.0.0.2"
|
14
14
|
assert @hsh.next_sorted_key("10.0.0.2"), "10.0.0.3"
|
15
15
|
assert @hsh.next_sorted_key("10.0.0.3"), "10.0.0.1"
|
16
16
|
assert @hsh.next_sorted_key("10.0.0.1"), "10.0.0.2"
|
17
17
|
end
|
18
|
-
|
18
|
+
should "should return self if there is only 1 element" do
|
19
19
|
k = {"10.0.0.2" => {"stuff" => "here"}}.next_sorted_key("10.0.0.2")
|
20
20
|
assert k, "10.0.0.2"
|
21
21
|
end
|
22
22
|
end
|
23
23
|
context "test method_missing" do
|
24
|
-
|
24
|
+
should "should be able to call a key on the hash as a method" do
|
25
25
|
{:first_name => "bob", :last_name => "frank"}.first_name.should == "bob"
|
26
26
|
end
|
27
|
-
|
27
|
+
should "should not return nil if there is no key set in the hash" do
|
28
28
|
hsh = {:first_name => "bob", :last_name => "frank"}
|
29
|
-
assert false
|
30
|
-
assert_not_nil hsh.dttte
|
31
29
|
lambda {{:first_name => "bob", :last_name => "frank"}.neighbor}.should raise_error
|
32
30
|
end
|
33
31
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../test_helper"
|
2
|
+
|
3
|
+
class RunOnceClass
|
4
|
+
attr_reader :apples, :count
|
5
|
+
def initialize
|
6
|
+
@count = 1
|
7
|
+
end
|
8
|
+
def run_me
|
9
|
+
do_once do
|
10
|
+
@count += 1
|
11
|
+
@apples = "to apples"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class RunOnceTest < Test::Unit::TestCase
|
17
|
+
def setup
|
18
|
+
@ro = RunOnceClass.new
|
19
|
+
end
|
20
|
+
def test_apples_should_be_nil
|
21
|
+
assert_nil @ro.apples
|
22
|
+
assert_equal @ro.count, 1
|
23
|
+
end
|
24
|
+
def test_apples_should_not_be_nil_when_run
|
25
|
+
@ro.run_me
|
26
|
+
assert_equal @ro.apples, "to apples"
|
27
|
+
assert_equal @ro.count, 2
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../test_helper"
|
2
|
+
|
3
|
+
class TestChefResolver < Test::Unit::TestCase
|
4
|
+
context "from a hash" do
|
5
|
+
setup do
|
6
|
+
reset!
|
7
|
+
@cloud_reference_hash = {
|
8
|
+
:options => {:name => "dog", :keypair => "bob", :users => ["ari", "michael"]},
|
9
|
+
:resources => [
|
10
|
+
{:name => "/etc/motd", :content => "Welcome to the cloud", :pp_type => "file"},
|
11
|
+
{:name => "/etc/profile", :content => "profile info", :pp_type => "file"},
|
12
|
+
{:name => "/var/www", :pp_type => "directory"},
|
13
|
+
{:name => "apache_class", :pp_type => "plugin", :resources => [
|
14
|
+
{:name => "/etc/apache2/apache2.conf", :pp_type => "file", :template => "/absolute/path/to/template", :content => "rendered template string"}
|
15
|
+
]}
|
16
|
+
],
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
should "throw an exception if not given a hash" do
|
21
|
+
lambda { PoolParty::ChefResolver.compile }.should raise_error
|
22
|
+
end
|
23
|
+
should "accept a hash" do
|
24
|
+
lambda { PoolParty::ChefResolver.compile(@cloud_reference_hash)}.should_not raise_error
|
25
|
+
end
|
26
|
+
context "compiled" do
|
27
|
+
setup do
|
28
|
+
reset!
|
29
|
+
@dr = ChefResolver.new(@cloud_reference_hash)
|
30
|
+
@compiled = @dr.compile
|
31
|
+
end
|
32
|
+
|
33
|
+
should "should print resources in the proper layout" do
|
34
|
+
@compiled.should =~ /template \"\/etc\/motd\" do\n\tsource \"\/etc\/motd\.erb\"/
|
35
|
+
end
|
36
|
+
|
37
|
+
should "should print apache into a class definition" do
|
38
|
+
# puts "<pre>#{@compiled.to_yaml}</pre>"
|
39
|
+
@compiled.should =~ /# apache/
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "with a cloud" do
|
45
|
+
setup do
|
46
|
+
reset!
|
47
|
+
@cloud = cloud :hope do
|
48
|
+
keypair "bob"
|
49
|
+
has_file :name => "/etc/motd", :content => "Welcome to the cloud"
|
50
|
+
has_file :name => "/etc/profile", :content => "profile info"
|
51
|
+
|
52
|
+
has_directory :name => "/var/www"
|
53
|
+
has_file :name => "/var/www/index.html", :content => "profile info", :requires => get_directory("/var/www")
|
54
|
+
|
55
|
+
dependency_resolver "chef"
|
56
|
+
# has_package :name => "bash"
|
57
|
+
# parent == cloud
|
58
|
+
apache do
|
59
|
+
# parent == apache
|
60
|
+
listen "8080"
|
61
|
+
has_file :name => "/etc/apache2/apache2.conf", :template => "#{::File.dirname(__FILE__)}/../../fixtures/test_template.erb", :friends => "bob"
|
62
|
+
has_exec :command => "ls /etc/apache2"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
@properties = @cloud.to_properties_hash
|
66
|
+
|
67
|
+
# puts "<pre>#{@cloud_reference_hash.to_yaml}\n\n#{@properties}</pre>"
|
68
|
+
@dr = ChefResolver.new(@properties)
|
69
|
+
@compiled = @dr.compile
|
70
|
+
end
|
71
|
+
should "should compile to a string" do
|
72
|
+
# puts "<pre>#{@compiled.to_yaml}</pre>"
|
73
|
+
@compiled.class.should == String
|
74
|
+
end
|
75
|
+
should "should include apache class" do
|
76
|
+
@compiled.should =~ /# apache/
|
77
|
+
end
|
78
|
+
should "should require the file to have the directory (written as file)" do
|
79
|
+
@compiled.should =~ /directory \"\/var\/www\"/
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -1,10 +1,5 @@
|
|
1
1
|
require "#{::File.dirname(__FILE__)}/../../test_helper"
|
2
2
|
|
3
|
-
class PuppetResolverSpec
|
4
|
-
plugin :apache do
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
3
|
class TestPuppetResolver < Test::Unit::TestCase
|
9
4
|
context "from a hash" do
|
10
5
|
setup do
|
@@ -14,18 +9,12 @@ class TestPuppetResolver < Test::Unit::TestCase
|
|
14
9
|
:resources => [
|
15
10
|
{:name => "/etc/motd", :content => "Welcome to the cloud", :pp_type => "file"},
|
16
11
|
{:name => "/etc/profile", :content => "profile info", :pp_type => "file"},
|
17
|
-
{:name => "/var/www", :pp_type => "directory"}
|
12
|
+
{:name => "/var/www", :pp_type => "directory"},
|
13
|
+
{:name => "apache_class", :pp_type => "plugin", :resources => [
|
14
|
+
{:name => "/etc/apache2/apache2.conf", :pp_type => "file", :template => "/absolute/path/to/template", :content => "rendered template string"}
|
15
|
+
]}
|
18
16
|
],
|
19
|
-
|
20
|
-
:apache => [{
|
21
|
-
:options => {:listen => "8080"},
|
22
|
-
:resources => [
|
23
|
-
{:name => "/etc/apache2/apache2.conf", :pp_type => "file", :template => "/absolute/path/to/template", :content => "rendered template string"}
|
24
|
-
],
|
25
|
-
:services => {}
|
26
|
-
}]
|
27
|
-
}
|
28
|
-
}
|
17
|
+
}
|
29
18
|
end
|
30
19
|
|
31
20
|
should "throw an exception if not given a hash" do
|
@@ -72,12 +61,6 @@ class TestPuppetResolver < Test::Unit::TestCase
|
|
72
61
|
has_file :name => "/etc/apache2/apache2.conf", :template => "#{::File.dirname(__FILE__)}/../../fixtures/test_template.erb", :friends => "bob"
|
73
62
|
has_exec :command => "ls /etc/apache2"
|
74
63
|
end
|
75
|
-
|
76
|
-
case_of "hostname" do
|
77
|
-
when_is 'master' do
|
78
|
-
has_package :name=>'haproxy'
|
79
|
-
end
|
80
|
-
end
|
81
64
|
end
|
82
65
|
@properties = @cloud.to_properties_hash
|
83
66
|
|
@@ -92,10 +75,6 @@ class TestPuppetResolver < Test::Unit::TestCase
|
|
92
75
|
should "should include apache class" do
|
93
76
|
@compiled.should =~ /class apache \{/
|
94
77
|
end
|
95
|
-
should "should include the case statement" do
|
96
|
-
@compiled.should =~ /case \$hostname \{/
|
97
|
-
@compiled.should =~ /master : \{/
|
98
|
-
end
|
99
78
|
should "should require the file to have the directory (written as file)" do
|
100
79
|
@compiled.should =~ /require => File\[\"\/var\/www\"\]/
|
101
80
|
end
|
@@ -4,7 +4,8 @@ class TestCloudDsl < Test::Unit::TestCase
|
|
4
4
|
context "enabling and disabling" do
|
5
5
|
setup do
|
6
6
|
reset!
|
7
|
-
@cloud = cloud :test_cloud_dsl
|
7
|
+
@cloud = cloud :test_cloud_dsl do
|
8
|
+
end
|
8
9
|
end
|
9
10
|
should "not have an option set for hyper_drive" do
|
10
11
|
@cloud.dsl_options[:hyper_drive].should == nil
|
@@ -21,18 +22,20 @@ class TestCloudDsl < Test::Unit::TestCase
|
|
21
22
|
end
|
22
23
|
|
23
24
|
should "be able to check if they are enabled" do
|
24
|
-
@cloud.enable :
|
25
|
-
@cloud.enabled?(:
|
25
|
+
@cloud.enable :hyper_slam
|
26
|
+
@cloud.enabled?(:hyper_slam).should == true
|
26
27
|
end
|
27
28
|
should "be able to check that they are disabled" do
|
28
|
-
@cloud.disable :
|
29
|
-
@cloud.enabled?(:
|
29
|
+
@cloud.disable :hyper_slam
|
30
|
+
@cloud.enabled?(:hyper_slam).should == false
|
30
31
|
end
|
31
32
|
end
|
32
33
|
context "calling add_optional_enabled_services" do
|
33
34
|
setup do
|
34
35
|
reset!
|
35
|
-
@cloud = cloud :test_cloud_dsl_2
|
36
|
+
@cloud = cloud :test_cloud_dsl_2 do
|
37
|
+
enable :haproxy
|
38
|
+
end
|
36
39
|
@cloud.instance_eval "self.class.send :attr_reader, :brains"
|
37
40
|
@cloud.instance_eval "def box;@brains = 'pepper';end"
|
38
41
|
end
|
@@ -47,10 +50,9 @@ class TestCloudDsl < Test::Unit::TestCase
|
|
47
50
|
@cloud.brains.should == nil
|
48
51
|
end
|
49
52
|
should "call haproxy when adding enabled serivces" do
|
50
|
-
@cloud.enable :haproxy
|
51
53
|
@cloud.add_optional_enabled_services
|
52
54
|
klasses = @cloud.plugin_store.map {|a| a.class.to_s.split("::")[-1] }
|
53
|
-
klasses.include?("
|
55
|
+
klasses.include?("Haproxy").should == true
|
54
56
|
end
|
55
57
|
end
|
56
58
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../test_helper"
|
2
|
+
|
3
|
+
class BaseMonitorTest < Test::Unit::TestCase
|
4
|
+
context "Available Monitors" do
|
5
|
+
should "start out with available monitors" do
|
6
|
+
assert Monitors.available.size > 5
|
7
|
+
assert Monitors.available.include? Monitors::Load
|
8
|
+
end
|
9
|
+
|
10
|
+
should "have available_monitors" do
|
11
|
+
class ExtraFoo < ::Monitors::BaseMonitor; end
|
12
|
+
assert Monitors.available.include? ExtraFoo
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../test_helper"
|
2
|
+
require 'tempfile'
|
3
|
+
require 'rack/test'
|
4
|
+
|
5
|
+
|
6
|
+
class MonitorRackTest < Test::Unit::TestCase
|
7
|
+
include Rack::Test::Methods
|
8
|
+
context "MonitorRack" do
|
9
|
+
setup do
|
10
|
+
@rackup = ::File.dirname(__FILE__)+"/../../../lib/poolparty/templates/monitor.ru"
|
11
|
+
end
|
12
|
+
|
13
|
+
should "be able to start" do
|
14
|
+
tfile = Tempfile.new('monitor_rack.pid')
|
15
|
+
output = IO.popen("thin -R #{@rackup} start", 'r')
|
16
|
+
# output = IO.popen("uptime", 'r')
|
17
|
+
p output.status
|
18
|
+
assert $?.success?
|
19
|
+
|
20
|
+
`thin -R #{tfile.path} stop`
|
21
|
+
assert $?.success?
|
22
|
+
tfile.unlink
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../test_helper"
|
2
|
+
|
3
|
+
class RemoterBaseTest < Test::Unit::TestCase
|
4
|
+
context "Available Bases" do
|
5
|
+
|
6
|
+
should "have global remote_bases" do
|
7
|
+
assert !PoolParty::Remote.available.empty?
|
8
|
+
assert PoolParty::Remote.available.size >1
|
9
|
+
assert PoolParty::Remote.available.include?(PoolParty::Remote::Ec2)
|
10
|
+
end
|
11
|
+
|
12
|
+
should "should return an array of top_level RemoterBase class symbols " do
|
13
|
+
assert ::PoolParty::Remote::RemoterBase.available_bases.include?(:ec2)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../../../test_helper"
|
2
|
+
|
3
|
+
# Uncomment the tests for live-testing
|
4
|
+
class TestLibvirt < Test::Unit::TestCase
|
5
|
+
context "registered as remote base" do
|
6
|
+
setup do
|
7
|
+
reset!
|
8
|
+
@lvcloud = cloud :vurt do
|
9
|
+
keypair "#{::File.dirname(__FILE__)}/../../../../fixtures/test_key"
|
10
|
+
instances 1
|
11
|
+
using :libvirt do
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
should "be registered as a remote_base" do
|
16
|
+
assert PoolParty::Remote.available.include?(PoolParty::Remote::Libvirt)
|
17
|
+
end
|
18
|
+
should "be setting the type of remote_base" do
|
19
|
+
assert_equal PoolParty::Remote::Libvirt, @lvcloud.libvirt.class
|
20
|
+
end
|
21
|
+
should "have libvirt as the remoter base" do
|
22
|
+
# assert_equal @lvcloud.libvirt.should, @lvcloud.remote_base
|
23
|
+
assert_equal @lvcloud.remoter_base, :libvirt
|
24
|
+
assert_equal @lvcloud.remote_base.class, PoolParty::Remote::Libvirt
|
25
|
+
end
|
26
|
+
should "have a keypair" do
|
27
|
+
assert_equal 'test_key', @lvcloud.keypair.basename
|
28
|
+
assert_equal 'test_key', @lvcloud.keypair_name
|
29
|
+
end
|
30
|
+
should "be able to initialize without a cloud" do
|
31
|
+
assert_nothing_raised do PoolParty::Remote::Libvirt.new end
|
32
|
+
end
|
33
|
+
# should "start metavirt instance" do
|
34
|
+
# @cloud.launch_instance!
|
35
|
+
# assert @cloud.metavirt.describe_instances.first[:instance_id]>0
|
36
|
+
# end
|
37
|
+
# should "be able to terminate the instance" do
|
38
|
+
# @cloud.launch_instance!
|
39
|
+
# @cloud.terminate_instance!
|
40
|
+
# assert @cloud.describe_instances.empty?
|
41
|
+
# end
|
42
|
+
# teardown do
|
43
|
+
# # PoolParty::Remote::metavirt.terminate!(
|
44
|
+
# @cloud.describe_instances.each do |inst|
|
45
|
+
# @cloud.terminate_instance! inst[:instance_id]
|
46
|
+
# end
|
47
|
+
# end
|
48
|
+
end
|
49
|
+
|
50
|
+
context "running libvirt" do
|
51
|
+
setup do
|
52
|
+
@cloud_lv = cloud :lv do
|
53
|
+
keypair "#{::File.dirname(__FILE__)}/../../../../fixtures/test_key"
|
54
|
+
instances 1
|
55
|
+
using :libvirt do
|
56
|
+
image_id 'jaunty19'
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
should "be setting the type of remote_base" do
|
61
|
+
assert_equal PoolParty::Remote::Libvirt, @cloud_lv.remote_base.class
|
62
|
+
assert_equal 'jaunty19', @cloud_lv.remote_base.image_id
|
63
|
+
assert_equal 'jaunty19', @cloud_lv.libvirt.image_id
|
64
|
+
end
|
65
|
+
should "be able to describe instances" do
|
66
|
+
assert @cloud_lv.describe_instances.class == Array
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../../../test_helper"
|
2
|
+
|
3
|
+
# Uncomment the tests for live-testing
|
4
|
+
class TestMetavirt < Test::Unit::TestCase
|
5
|
+
context "registered as remote base" do
|
6
|
+
setup do
|
7
|
+
reset!
|
8
|
+
@cloud = cloud :metvirt_cld do
|
9
|
+
keypair "#{::File.dirname(__FILE__)}/../../../../fixtures/test_key"
|
10
|
+
instances 1
|
11
|
+
using :metavirt do
|
12
|
+
using :vmrun do
|
13
|
+
vmx_files ['/path/to/vmx', '/another/path']
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
should "be registered as a remote_base" do
|
19
|
+
PoolParty::Remote::RemoterBase.available_bases.include?(:vmrun).should == true
|
20
|
+
end
|
21
|
+
should "be setting the type of remote_base" do
|
22
|
+
assert_equal PoolParty::Remote::Vmrun, @cloud.remote_base.remote_base.class
|
23
|
+
assert_equal PoolParty::Remote::Metavirt, @cloud.remote_base.class
|
24
|
+
end
|
25
|
+
should "have metavirt as the remoter base" do
|
26
|
+
@cloud.metavirt.should == @cloud.remote_base
|
27
|
+
end
|
28
|
+
should "have a keypair" do
|
29
|
+
assert_equal 'test_key', @cloud.keypair.basename
|
30
|
+
assert_equal 'test_key', @cloud.keypair_name
|
31
|
+
end
|
32
|
+
# should "start metavirt instance" do
|
33
|
+
# @cloud.launch_instance!
|
34
|
+
# assert @cloud.metavirt.describe_instances.first[:instance_id]>0
|
35
|
+
# end
|
36
|
+
# should "be able to terminate the instance" do
|
37
|
+
# @cloud.launch_instance!
|
38
|
+
# @cloud.terminate_instance!
|
39
|
+
# assert @cloud.describe_instances.empty?
|
40
|
+
# end
|
41
|
+
# teardown do
|
42
|
+
# # PoolParty::Remote::metavirt.terminate!(
|
43
|
+
# @cloud.describe_instances.each do |inst|
|
44
|
+
# @cloud.terminate_instance! inst[:instance_id]
|
45
|
+
# end
|
46
|
+
# end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "running libvirt" do
|
50
|
+
setup do
|
51
|
+
@cloud_lv = cloud :lv do
|
52
|
+
keypair "#{::File.dirname(__FILE__)}/../../../../fixtures/test_key"
|
53
|
+
instances 1
|
54
|
+
using :metavirt do
|
55
|
+
using :libvirt do
|
56
|
+
image_id 'jaunty19'
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
should "be setting the type of remote_base" do
|
63
|
+
assert_equal PoolParty::Remote::Libvirt, @cloud_lv.remote_base.remote_base.class
|
64
|
+
assert_equal PoolParty::Remote::Metavirt, @cloud_lv.remote_base.class
|
65
|
+
end
|
66
|
+
|
67
|
+
should "be able to describe instances" do
|
68
|
+
if ENV['LIBVIRT'] # set env variable if you want to actually call out to libvirt
|
69
|
+
assert_equal 'jaunty19', @cloud_lv.metavirt.libvirt.image_id
|
70
|
+
assert_equal 'jaunty19', @cloud_lv.metavirt.image_id
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
should "use libvirt options from metavirt" do
|
75
|
+
assert_equal 'jaunty19', clouds[:lv].metavirt.libvirt.image_id
|
76
|
+
assert_not_nil clouds[:lv].metavirt.image_id
|
77
|
+
assert_equal clouds[:lv].metavirt.libvirt.image_id, clouds[:lv].metavirt.image_id
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
@@ -1,50 +1,81 @@
|
|
1
1
|
require "#{::File.dirname(__FILE__)}/../../../../test_helper"
|
2
2
|
|
3
|
+
# Comment out this VmwareInstanceclass if you want to actually run vmware
|
4
|
+
class VmwareInstance
|
5
|
+
def launch!
|
6
|
+
{ :status => 'running',
|
7
|
+
:mac_address => '00:23:6c:93:7b:91',
|
8
|
+
:ip => '10.45.10.234',
|
9
|
+
:internal_ip => '10.45.10.234',
|
10
|
+
:instance_id => vmx_file,
|
11
|
+
:keypair => keypair
|
12
|
+
}
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# Uncomment the tests for live-testing
|
3
17
|
class TestVmRun < Test::Unit::TestCase
|
4
18
|
context "registered as remote base" do
|
5
19
|
setup do
|
6
20
|
reset!
|
7
|
-
|
21
|
+
vmx_keys1 = {
|
8
22
|
::File.expand_path("~/Documents/vm/Ubuntu32bitVM.vmwarevm/Ubuntu32bitVM.vmx") => "192.168.248.133"
|
9
23
|
}
|
10
|
-
|
11
|
-
|
24
|
+
@vmx_files = vmx_keys1.keys
|
25
|
+
@ipaddresses = vmx_keys1.values
|
12
26
|
|
13
27
|
@cloud = cloud :test_vm_runner do
|
14
|
-
|
15
28
|
using :vmrun do
|
16
|
-
|
29
|
+
path_to_binary '/fake/path/to/vmrun'
|
30
|
+
vmx_hash vmx_keys1
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
@cloud2 = cloud :files do
|
35
|
+
using :vmrun do
|
36
|
+
vmx_files ['/path/to/vmx/file', '/another/path']
|
17
37
|
end
|
18
|
-
|
19
|
-
|
38
|
+
end
|
39
|
+
|
20
40
|
end
|
21
41
|
should "be setting the type of remote_base as Vmrun" do
|
22
42
|
@cloud.remote_base.class.should == PoolParty::Remote::Vmrun
|
23
43
|
end
|
24
44
|
should "have the method vmrun as the remoter base" do
|
25
45
|
@cloud.vmrun.should == @cloud.remote_base
|
26
|
-
end
|
27
|
-
should "start vmware instance" do
|
28
|
-
@cloud.launch_instance!
|
29
|
-
assert @cloud.vmrun.describe_instances.first[:instance_id], $vmx_files.first
|
30
46
|
end
|
31
|
-
should "have
|
32
|
-
@cloud.
|
33
|
-
|
34
|
-
vmx_file = @cloud.vmrun.describe_instances.first[:instance_id]
|
35
|
-
instance = @cloud.vmrun.describe_instance(:vmx_file => vmx_file)
|
36
|
-
|
37
|
-
assert !instance.mac_address.nil?
|
38
|
-
assert !instance.ip.nil?
|
39
|
-
end
|
40
|
-
should "be able to turn off the instance" do
|
41
|
-
@cloud.launch_instance!
|
42
|
-
@cloud.terminate_instance!
|
43
|
-
assert @cloud.describe_instances.empty?
|
47
|
+
should "have vmx_files from vmx_hash" do
|
48
|
+
@cloud.remote_base.vmx_files.size.should == 1
|
49
|
+
@cloud.remote_base.vmx_files.should == @vmx_files
|
44
50
|
end
|
45
|
-
|
46
|
-
|
51
|
+
should "have vmx_files form vmx_files option" do
|
52
|
+
@cloud.remote_base.vmx_files == ["~/Documents/vm/Ubuntu32bitVM.vmwarevm/Ubuntu32bitVM.vmx"]
|
53
|
+
@cloud2.remote_base.vmx_files == ['/path/to/vmx/file', '/another/path']
|
47
54
|
end
|
55
|
+
# should "start vmware instance" do
|
56
|
+
# @cloud.launch_instance!
|
57
|
+
# assert @cloud.vmrun.describe_instances.first[:instance_id], $vmx_files.first
|
58
|
+
# end
|
59
|
+
# should "have the ip and mac address" do
|
60
|
+
# @cloud.launch_instance!
|
61
|
+
#
|
62
|
+
# vmx_file = @cloud.vmrun.describe_instances.first[:instance_id]
|
63
|
+
# instance = @cloud.vmrun.describe_instance(:vmx_file => vmx_file)
|
64
|
+
#
|
65
|
+
# assert !instance.mac_address.nil?
|
66
|
+
# assert !instance.ip.nil?
|
67
|
+
# end
|
68
|
+
# should "be able to turn off the instance" do
|
69
|
+
# @cloud.launch_instance!
|
70
|
+
# @cloud.terminate_instance!
|
71
|
+
# assert @cloud.describe_instances.empty?
|
72
|
+
# end
|
73
|
+
# teardown do
|
74
|
+
# # PoolParty::Remote::Vmrun.terminate!(
|
75
|
+
# @cloud.describe_instances.each do |inst|
|
76
|
+
# @cloud.terminate_instance! inst[:instance_id]
|
77
|
+
# end
|
78
|
+
# end
|
48
79
|
end
|
49
80
|
|
50
|
-
end
|
81
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../test_helper"
|
2
|
+
|
3
|
+
class TestChefDeploy < Test::Unit::TestCase
|
4
|
+
context "base usage (chef_deploy)" do
|
5
|
+
setup do
|
6
|
+
reset!
|
7
|
+
@cloud = cloud :test_chef_deploy_cloud do
|
8
|
+
has_chef_deploy do
|
9
|
+
branch "/var/www"
|
10
|
+
repo "git://github.com/auser/paparazzi.git"
|
11
|
+
user "www-data"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
@chef_deploy = @cloud.chef_deploys.first
|
15
|
+
end
|
16
|
+
|
17
|
+
should "place a resource on the cloud" do
|
18
|
+
assert_equal PoolParty::Plugin::ChefDeploy, @cloud.ordered_resources.first.class
|
19
|
+
end
|
20
|
+
should "raise if :repo is not passed" do
|
21
|
+
assert_raise ReposMissingError do
|
22
|
+
cloud :boxy do
|
23
|
+
has_chef_deploy do
|
24
|
+
branch "/bweee"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
should "have the rails required gems installed" do
|
30
|
+
n = @cloud.chef_deploys.first.chef_librarys.map {|a| a.name }.first
|
31
|
+
assert_match /chef\-deploy\/lib\/chef\-deploy\.rb/, n
|
32
|
+
end
|
33
|
+
should "have a chef_deploy_definition" do
|
34
|
+
assert_equal @cloud.chef_deploys.first.chef_deploy_definitions.size, 1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "#{::File.dirname(__FILE__)}/../../test_helper"
|
2
|
+
|
3
|
+
class TestChef < Test::Unit::TestCase
|
4
|
+
context "json generation" do
|
5
|
+
setup do
|
6
|
+
reset!
|
7
|
+
cloud :json_this_yo do
|
8
|
+
chef do
|
9
|
+
json
|
10
|
+
end
|
11
|
+
end
|
12
|
+
@cloud = clouds[:json_this_yo]
|
13
|
+
end
|
14
|
+
|
15
|
+
# TODO: Solidify json generation
|
16
|
+
should "include the json file" do
|
17
|
+
assert ::Suitcase::Zipper.items.has_key?(:"__p__stringdna.json_chef")
|
18
|
+
assert_equal ::Suitcase::Zipper.items[:"__p__stringdna.json_chef"][:content], '{"recipes":["poolparty"]}'
|
19
|
+
::Suitcase::Zipper.build_dir!("#{@cloud.tmp_path}/test_dependencies")
|
20
|
+
assert_equal '{"recipes":["poolparty"]}', open("#{@cloud.tmp_path}/test_dependencies/chef/dna.json").read
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|