poolparty 0.2.6 → 0.2.18
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +123 -4
- data/PostInstall.txt +2 -1
- data/bin/cloud +16 -7
- data/bin/cloud-provision +9 -5
- data/bin/cloud-run +19 -0
- data/bin/cloud-ssh +2 -7
- data/bin/cloud-start +2 -1
- data/bin/pool +3 -3
- data/bin/server-build-messenger +20 -0
- data/bin/server-fire-cmd +14 -0
- data/bin/server-get-load +29 -0
- data/bin/server-list-active +25 -0
- data/bin/server-list-responding +24 -0
- data/bin/server-rerun +24 -0
- data/bin/server-start-master +27 -0
- data/bin/server-start-node +33 -0
- data/config/requirements.rb +1 -1
- data/erl_crash.dump +8409 -0
- data/lib/erlang/messenger/Emakefile +1 -0
- data/lib/erlang/messenger/Makefile +15 -0
- data/lib/erlang/messenger/README +5 -0
- data/lib/erlang/messenger/Rakefile +60 -0
- data/lib/erlang/messenger/control +11 -0
- data/lib/erlang/messenger/ebin/master.app +19 -0
- data/lib/erlang/messenger/ebin/master_app.beam +0 -0
- data/lib/erlang/messenger/ebin/node.app +19 -0
- data/lib/erlang/messenger/ebin/node_app.beam +0 -0
- data/lib/erlang/messenger/ebin/packager.app +19 -0
- data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -0
- data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -0
- data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
- data/lib/erlang/messenger/ebin/utils.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/AUTHORS +2 -0
- data/lib/erlang/messenger/lib/eunit/CHANGELOG +14 -0
- data/lib/erlang/messenger/lib/eunit/COPYING +504 -0
- data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
- data/lib/erlang/messenger/lib/eunit/NOTES +276 -0
- data/lib/erlang/messenger/lib/eunit/README +3 -0
- data/lib/erlang/messenger/lib/eunit/doc/edoc-info +3 -0
- data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
- data/lib/erlang/messenger/lib/eunit/doc/eunit.html +172 -0
- data/lib/erlang/messenger/lib/eunit/doc/index.html +17 -0
- data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +12 -0
- data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +984 -0
- data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +980 -0
- data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +11 -0
- data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +55 -0
- data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +21 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +1 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +339 -0
- data/lib/erlang/messenger/lib/eunit/examples/fib.erl +19 -0
- data/lib/erlang/messenger/lib/eunit/examples/tests.txt +1 -0
- data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +313 -0
- data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
- data/lib/erlang/messenger/lib/eunit/src/autoload.erl +388 -0
- data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +243 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +21 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +1 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit.erl +196 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +102 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +798 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +48 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +682 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +552 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +157 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +340 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +64 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +334 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +45 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +272 -0
- data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +409 -0
- data/lib/erlang/messenger/lib/eunit/sys.config +9 -0
- data/lib/erlang/messenger/lib/eunit/vsn.mk +1 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.script +242 -0
- data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_node_rel-0.1.script +242 -0
- data/lib/erlang/messenger/src/master_app.erl +39 -0
- data/lib/erlang/messenger/src/node_app.erl +39 -0
- data/lib/erlang/messenger/src/pm_client.erl +19 -0
- data/lib/erlang/messenger/src/pm_cluster.erl +57 -0
- data/lib/erlang/messenger/src/pm_event_handler.erl +21 -0
- data/lib/erlang/messenger/src/pm_master.erl +118 -0
- data/lib/erlang/messenger/src/pm_master_supervisor.erl +40 -0
- data/lib/erlang/messenger/src/pm_node.erl +124 -0
- data/lib/erlang/messenger/src/pm_node_supervisor.erl +40 -0
- data/lib/erlang/messenger/src/pm_packager.erl +73 -0
- data/lib/erlang/messenger/src/utils.erl +38 -0
- data/lib/poolparty/base_packages/haproxy.rb +9 -2
- data/lib/poolparty/base_packages/heartbeat.rb +40 -28
- data/lib/poolparty/base_packages/poolparty.rb +39 -16
- data/lib/poolparty/base_packages/ruby.rb +2 -3
- data/lib/poolparty/config/allowed_commands.yml +1 -0
- data/lib/poolparty/core/array.rb +5 -2
- data/lib/poolparty/core/hash.rb +16 -2
- data/lib/poolparty/core/string.rb +9 -2
- data/lib/poolparty/core/symbol.rb +2 -2
- data/lib/poolparty/dependency_resolutions/base.rb +12 -0
- data/lib/poolparty/dependency_resolutions/puppet.rb +49 -0
- data/lib/poolparty/exceptions/UnacceptableCommand.rb +5 -0
- data/lib/poolparty/helpers/console.rb +3 -2
- data/lib/poolparty/helpers/display.rb +3 -3
- data/lib/poolparty/helpers/messenger.rb +29 -0
- data/lib/poolparty/helpers/optioner.rb +6 -2
- data/lib/poolparty/helpers/provisioner_base.rb +18 -11
- data/lib/poolparty/helpers/provisioners/master.rb +24 -22
- data/lib/poolparty/helpers/provisioners/slave.rb +8 -4
- data/lib/poolparty/modules/definable_resource.rb +1 -0
- data/lib/poolparty/modules/file_writer.rb +11 -10
- data/lib/poolparty/modules/method_missing_sugar.rb +1 -1
- data/lib/poolparty/modules/pretty_printer.rb +11 -11
- data/lib/poolparty/modules/resourcing_dsl.rb +61 -0
- data/lib/poolparty/monitors/base_monitor.rb +17 -3
- data/lib/poolparty/monitors/monitors/cpu_monitor.rb +15 -0
- data/lib/poolparty/monitors/monitors/memory_monitor.rb +23 -0
- data/lib/poolparty/net/remote_instance.rb +6 -1
- data/lib/poolparty/net/remoter.rb +23 -5
- data/lib/poolparty/net/remoter_base.rb +5 -1
- data/lib/poolparty/plugins/git.rb +22 -24
- data/lib/poolparty/pool/base.rb +22 -6
- data/lib/poolparty/pool/cloud.rb +28 -4
- data/lib/poolparty/pool/custom_resource.rb +6 -6
- data/lib/poolparty/pool/loggable.rb +3 -0
- data/lib/poolparty/pool/pool.rb +1 -1
- data/lib/poolparty/pool/resource.rb +58 -94
- data/lib/poolparty/pool/resources/class_package.rb +6 -6
- data/lib/poolparty/pool/resources/conditional.rb +5 -1
- data/lib/poolparty/pool/resources/exec.rb +6 -2
- data/lib/poolparty/pool/resources/gem.rb +22 -8
- data/lib/poolparty/pool/resources/remote_file.rb +5 -1
- data/lib/poolparty/pool/resources/symlink.rb +25 -0
- data/lib/poolparty/pool/resources/variable.rb +8 -7
- data/lib/poolparty/pool/tmp/.ppkeys +3 -0
- data/lib/poolparty/pool/tmp/happydayz +1 -0
- data/lib/poolparty/pool/tmp/install_master.sh +33 -0
- data/lib/poolparty/pool/tmp/pool.spec +11 -0
- data/lib/poolparty/pool/tmp/poolparty.pp +600 -0
- data/lib/poolparty/pool/tmp/tc-instances.list +1 -0
- data/lib/poolparty/templates/cib.xml +54 -0
- data/lib/poolparty/templates/ha.cf +12 -3
- data/lib/poolparty/templates/haproxy.conf +3 -3
- data/lib/poolparty/templates/haresources +3 -0
- data/lib/poolparty/templates/poolparty.monitor +14 -0
- data/lib/poolparty/templates/puppet.conf +3 -4
- data/lib/poolparty/version.rb +1 -1
- data/lib/poolparty.rb +9 -6
- data/poolparty.gemspec +7 -6
- data/setup.rb +3 -3
- data/spec/poolparty/bin/console_spec.rb +1 -1
- data/spec/poolparty/core/array_spec.rb +5 -0
- data/spec/poolparty/core/hash_spec.rb +19 -1
- data/spec/poolparty/core/string_spec.rb +13 -0
- data/spec/poolparty/dependency_resolutions/base_spec.rb +11 -0
- data/spec/poolparty/helpers/messenger_spec.rb +14 -0
- data/spec/poolparty/helpers/optioner_spec.rb +2 -1
- data/spec/poolparty/helpers/provisioner_base_spec.rb +1 -1
- data/spec/poolparty/helpers/provisioners/master_spec.rb +2 -2
- data/spec/poolparty/helpers/provisioners/slave_spec.rb +3 -3
- data/spec/poolparty/modules/file_writer_spec.rb +9 -0
- data/spec/poolparty/monitors/base_monitor_spec.rb +19 -0
- data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +17 -0
- data/spec/poolparty/net/remote_instance_spec.rb +6 -1
- data/spec/poolparty/net/remote_spec.rb +51 -42
- data/spec/poolparty/net/remoter_spec.rb +2 -1
- data/spec/poolparty/plugins/git_spec.rb +2 -2
- data/spec/poolparty/pool/base_spec.rb +20 -2
- data/spec/poolparty/pool/cloud_spec.rb +30 -1
- data/spec/poolparty/pool/custom_resource_spec.rb +2 -2
- data/spec/poolparty/pool/plugin_spec.rb +4 -4
- data/spec/poolparty/pool/pool_spec.rb +1 -1
- data/spec/poolparty/pool/resource_spec.rb +66 -0
- data/spec/poolparty/pool/resources/gem_spec.rb +29 -3
- data/spec/poolparty/pool/resources/symlink_spec.rb +22 -0
- data/spec/poolparty/pool/resources/variable_spec.rb +4 -0
- data/spec/poolparty/spec_helper.rb +5 -0
- data/tasks/cloud.rake +0 -54
- data/tasks/development.rake +0 -12
- data/tasks/ec2.rake +1 -16
- data/tasks/instance.rake +0 -61
- data/test_manifest.pp +286 -166
- data/website/index.html +5 -5
- data/website/index.txt +3 -3
- metadata +137 -8
- data/bin/pool-start-monitor +0 -1
- data/lib/erlang/eb_server.erl +0 -27
- data/lib/poolparty/plugins/gem_package.rb +0 -17
- data/spec/poolparty/modules/tmp/willy/nilly.rb +0 -1
@@ -1,10 +1,19 @@
|
|
1
|
-
#
|
1
|
+
# Heartbeat
|
2
2
|
keepalive 2 # Time inbetween heartbeats
|
3
3
|
deadtime 32 # wait 32 seconds before declaring dead
|
4
4
|
warntime 16 # issue a warning halfway through
|
5
5
|
initdead 60 # Don't boot instances between 60 seconds of each other
|
6
|
-
|
6
|
+
logfacility daemon # Log to syslog as facility "daemon"
|
7
|
+
auto_failback off
|
7
8
|
use_logd yes
|
9
|
+
bcast eth0
|
8
10
|
crm on
|
11
|
+
logfile /var/log/ha.log
|
9
12
|
|
10
|
-
|
13
|
+
<% ha_node_ips.chomp.split(/\t/).each_with_index do |ip,index| -%>
|
14
|
+
<% if $hostname != ha_nodenames.chomp.split(/\t/)[index] -%>
|
15
|
+
ucast eth0 <%= ip %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
node <%= ha_nodenames %>
|
@@ -30,7 +30,7 @@ defaults
|
|
30
30
|
|
31
31
|
listen <%= name_haproxy %>
|
32
32
|
bind 0.0.0.0:<%= ports_haproxy.join(",0.0.0.0:") %>
|
33
|
-
<% node_ips_haproxy.each_with_index do |ip, index| -%>
|
34
33
|
cookie POOLPARTYPARTY
|
35
|
-
|
36
|
-
|
34
|
+
<%- node_ips_haproxy.chomp.split(/\t/).each_with_index do |ip, index| -%>
|
35
|
+
server <%= index == 0 ? "master" : "node#{index}" %> <%= ip %>:<%= forwarding_port %> weight 1 check cookie
|
36
|
+
<%- end -%>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Based on puppet High Availability recipe
|
3
|
+
#
|
4
|
+
# http://reductivelabs.com/trac/puppet/wiki/Recipes/HighAvailability
|
5
|
+
# Modified for PoolParty
|
6
|
+
#
|
7
|
+
exitstatus=0
|
8
|
+
processid=`ps aux | grep puppetmasterd | awk '{print $2}'`
|
9
|
+
|
10
|
+
if [ -z $processid ] || test `netstat -apn | grep "${processid}/ruby" | wc -l` -eq 0 ; then
|
11
|
+
exitstatus=1
|
12
|
+
fi
|
13
|
+
|
14
|
+
exit $exitstatus
|
@@ -1,12 +1,11 @@
|
|
1
1
|
[main]
|
2
2
|
vardir = /var/lib/puppet
|
3
3
|
logdir = /var/log/puppet
|
4
|
-
templatepath = /var/lib/puppet/templates
|
5
|
-
|
6
|
-
[puppetd]
|
7
|
-
localconfig = $vardir/localconfig
|
8
4
|
pluginsync=false
|
9
5
|
factsync=false
|
6
|
+
|
7
|
+
[puppetd]
|
8
|
+
localconfig = $vardir/localconfig
|
10
9
|
report=true
|
11
10
|
server=master
|
12
11
|
|
data/lib/poolparty/version.rb
CHANGED
data/lib/poolparty.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
|
3
3
|
# Load required gems
|
4
|
-
|
5
|
-
|
6
|
-
require
|
7
|
-
|
8
|
-
|
4
|
+
%w(activesupport open4 ftools logging ruby2ruby).each do |lib|
|
5
|
+
begin
|
6
|
+
require lib
|
7
|
+
rescue Exception => e
|
8
|
+
puts "Could not find library #{lib}: #{e}"
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
9
12
|
|
10
13
|
# Use active supports auto load mechanism
|
11
14
|
ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__)
|
@@ -13,7 +16,7 @@ ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__)
|
|
13
16
|
## Load PoolParty
|
14
17
|
require "#{File.dirname(__FILE__)}/poolparty/version"
|
15
18
|
|
16
|
-
%w(core modules exceptions net).each do |dir|
|
19
|
+
%w(core modules exceptions dependency_resolutions monitors net).each do |dir|
|
17
20
|
Dir[File.dirname(__FILE__) + "/poolparty/#{dir}/**.rb"].each do |file|
|
18
21
|
require file
|
19
22
|
end
|
data/poolparty.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{poolparty}
|
3
|
-
s.version = "0.2.
|
3
|
+
s.version = "0.2.18"
|
4
4
|
|
5
5
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
6
|
s.authors = ["Ari Lerner"]
|
7
|
-
s.date = %q{2008-10-
|
7
|
+
s.date = %q{2008-10-23}
|
8
8
|
s.description = %q{Self-healing, auto-scaling cloud computing tool}
|
9
9
|
s.email = ["ari.lerner@citrusbyte.com"]
|
10
|
-
s.executables = ["cloud", "cloud-add-keypair", "cloud-configure", "cloud-contract", "cloud-expand", "cloud-list", "cloud-maintain", "cloud-osxcopy", "cloud-provision", "cloud-refresh", "cloud-ssh", "cloud-start", "cloud-terminate", "pool", "pool-console", "pool-describe", "pool-list", "pool-provision", "pool-spec", "pool-start", "
|
11
|
-
s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "website/index.txt"]
|
12
|
-
s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "Rakefile", "bin/cloud", "bin/cloud-add-keypair", "bin/cloud-configure", "bin/cloud-contract", "bin/cloud-expand", "bin/cloud-list", "bin/cloud-maintain", "bin/cloud-osxcopy", "bin/cloud-provision", "bin/cloud-refresh", "bin/cloud-ssh", "bin/cloud-start", "bin/cloud-terminate", "bin/pool", "bin/pool-console", "bin/pool-describe", "bin/pool-list", "bin/pool-provision", "bin/pool-spec", "bin/pool-start", "bin/pool-start-monitor", "config/hoe.rb", "config/requirements.rb", "examples/basic.rb", "examples/plugin_without_plugin_directory.rb", "examples/poolparty.rb", "examples/with_apache_plugin.rb", "generators/poolspec/USAGE", "generators/poolspec/poolspec_generator.rb", "generators/poolspec/templates/pool_spec_template.erb", "lib/erlang/eb_server.erl", "lib/poolparty.rb", "lib/poolparty/base_packages/haproxy.rb", "lib/poolparty/base_packages/heartbeat.rb", "lib/poolparty/base_packages/poolparty.rb", "lib/poolparty/base_packages/ruby.rb", "lib/poolparty/core/array.rb", "lib/poolparty/core/exception.rb", "lib/poolparty/core/float.rb", "lib/poolparty/core/hash.rb", "lib/poolparty/core/kernel.rb", "lib/poolparty/core/module.rb", "lib/poolparty/core/my_open_struct.rb", "lib/poolparty/core/object.rb", "lib/poolparty/core/proc.rb", "lib/poolparty/core/string.rb", "lib/poolparty/core/symbol.rb", "lib/poolparty/core/time.rb", "lib/poolparty/exceptions/RemoteException.rb", "lib/poolparty/exceptions/ResourceException.rb", "lib/poolparty/exceptions/RuntimeException.rb", "lib/poolparty/exceptions/SpecException.rb", "lib/poolparty/exceptions/TemplateNotFound.rb", "lib/poolparty/helpers/binary.rb", "lib/poolparty/helpers/console.rb", "lib/poolparty/helpers/display.rb", "lib/poolparty/helpers/optioner.rb", "lib/poolparty/helpers/provisioner_base.rb", "lib/poolparty/helpers/provisioners/master.rb", "lib/poolparty/helpers/provisioners/slave.rb", "lib/poolparty/modules/cloud_resourcer.rb", "lib/poolparty/modules/configurable.rb", "lib/poolparty/modules/definable_resource.rb", "lib/poolparty/modules/file_writer.rb", "lib/poolparty/modules/method_missing_sugar.rb", "lib/poolparty/modules/output.rb", "lib/poolparty/modules/pretty_printer.rb", "lib/poolparty/modules/s3_string.rb", "lib/poolparty/modules/safe_instance.rb", "lib/poolparty/monitors/base_monitor.rb", "lib/poolparty/net/remote.rb", "lib/poolparty/net/remote_bases/ec2.rb", "lib/poolparty/net/remote_instance.rb", "lib/poolparty/net/remoter.rb", "lib/poolparty/net/remoter_base.rb", "lib/poolparty/plugins/gem_package.rb", "lib/poolparty/plugins/git.rb", "lib/poolparty/plugins/line.rb", "lib/poolparty/plugins/svn.rb", "lib/poolparty/pool/base.rb", "lib/poolparty/pool/cloud.rb", "lib/poolparty/pool/custom_resource.rb", "lib/poolparty/pool/loggable.rb", "lib/poolparty/pool/plugin.rb", "lib/poolparty/pool/plugin_model.rb", "lib/poolparty/pool/pool.rb", "lib/poolparty/pool/resource.rb", "lib/poolparty/pool/resources/class_package.rb", "lib/poolparty/pool/resources/conditional.rb", "lib/poolparty/pool/resources/cron.rb", "lib/poolparty/pool/resources/directory.rb", "lib/poolparty/pool/resources/exec.rb", "lib/poolparty/pool/resources/file.rb", "lib/poolparty/pool/resources/gem.rb", "lib/poolparty/pool/resources/host.rb", "lib/poolparty/pool/resources/package.rb", "lib/poolparty/pool/resources/remote_file.rb", "lib/poolparty/pool/resources/service.rb", "lib/poolparty/pool/resources/sshkey.rb", "lib/poolparty/pool/resources/variable.rb", "lib/poolparty/pool/script.rb", "lib/poolparty/templates/authkeys", "lib/poolparty/templates/cib.xml", "lib/poolparty/templates/fileserver.conf", "lib/poolparty/templates/gem", "lib/poolparty/templates/ha.cf", "lib/poolparty/templates/haproxy.conf", "lib/poolparty/templates/namespaceauth.conf", "lib/poolparty/templates/puppet.conf", "lib/poolparty/version.rb", "lib/poolpartycl.rb", "poolparty.gemspec", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "spec/poolparty/base_packages/haproxy_spec.rb", "spec/poolparty/base_packages/heartbeat_spec.rb", "spec/poolparty/bin/console_spec.rb", "spec/poolparty/core/array_spec.rb", "spec/poolparty/core/float.rb", "spec/poolparty/core/hash_spec.rb", "spec/poolparty/core/kernel_spec.rb", "spec/poolparty/core/module_spec.rb", "spec/poolparty/core/object_spec.rb", "spec/poolparty/core/string_spec.rb", "spec/poolparty/core/time_spec.rb", "spec/poolparty/helpers/binary_spec.rb", "spec/poolparty/helpers/display_spec.rb", "spec/poolparty/helpers/optioner_spec.rb", "spec/poolparty/helpers/provisioner_base_spec.rb", "spec/poolparty/helpers/provisioners/master_spec.rb", "spec/poolparty/helpers/provisioners/slave_spec.rb", "spec/poolparty/modules/cloud_resourcer_spec.rb", "spec/poolparty/modules/configurable_spec.rb", "spec/poolparty/modules/definable_resource.rb", "spec/poolparty/modules/file_writer_spec.rb", "spec/poolparty/modules/s3_string_spec.rb", "spec/poolparty/modules/tmp/willy/nilly.rb", "spec/poolparty/net/remote_bases/ec2_spec.rb", "spec/poolparty/net/remote_instance_spec.rb", "spec/poolparty/net/remote_spec.rb", "spec/poolparty/net/remoter_base_spec.rb", "spec/poolparty/net/remoter_spec.rb", "spec/poolparty/plugins/git_spec.rb", "spec/poolparty/plugins/line_spec.rb", "spec/poolparty/plugins/svn_spec.rb", "spec/poolparty/pool/base_spec.rb", "spec/poolparty/pool/cloud_spec.rb", "spec/poolparty/pool/configurers/files/ruby_basic.rb", "spec/poolparty/pool/configurers/files/ruby_plugins.rb", "spec/poolparty/pool/configurers/ruby_spec.rb", "spec/poolparty/pool/custom_resource_spec.rb", "spec/poolparty/pool/example_spec.rb", "spec/poolparty/pool/plugin_model_spec.rb", "spec/poolparty/pool/plugin_spec.rb", "spec/poolparty/pool/pool_spec.rb", "spec/poolparty/pool/resource_spec.rb", "spec/poolparty/pool/resources/class_package_spec.rb", "spec/poolparty/pool/resources/conditional_spec.rb", "spec/poolparty/pool/resources/cron_spec.rb", "spec/poolparty/pool/resources/directory_spec.rb", "spec/poolparty/pool/resources/exec_spec.rb", "spec/poolparty/pool/resources/file_spec.rb", "spec/poolparty/pool/resources/gem_spec.rb", "spec/poolparty/pool/resources/host_spec.rb", "spec/poolparty/pool/resources/package_spec.rb", "spec/poolparty/pool/resources/remote_file_spec.rb", "spec/poolparty/pool/resources/service_spec.rb", "spec/poolparty/pool/resources/sshkey_spec.rb", "spec/poolparty/pool/resources/variable_spec.rb", "spec/poolparty/pool/script_spec.rb", "spec/poolparty/pool/test_plugins/sshkey_test", "spec/poolparty/pool/test_plugins/virtual_host_template.erb", "spec/poolparty/pool/test_plugins/webserver.rb", "spec/poolparty/poolparty_spec.rb", "spec/poolparty/spec_helper.rb", "tasks/cloud.rake", "tasks/deployment.rake", "tasks/development.rake", "tasks/ec2.rake", "tasks/environment.rake", "tasks/instance.rake", "tasks/server.rake", "tasks/spec.rake", "tasks/website.rake", "test/test_generator_helper.rb", "test/test_helper.rb", "test/test_pool_spec_generator.rb", "test/test_poolparty.rb", "test_manifest.pp", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/code.css", "website/stylesheets/screen.css", "website/template.html.erb"]
|
10
|
+
s.executables = ["cloud", "cloud-add-keypair", "cloud-configure", "cloud-contract", "cloud-expand", "cloud-list", "cloud-maintain", "cloud-osxcopy", "cloud-provision", "cloud-refresh", "cloud-run", "cloud-ssh", "cloud-start", "cloud-terminate", "pool", "pool-console", "pool-describe", "pool-list", "pool-provision", "pool-spec", "pool-start", "server-build-messenger", "server-fire-cmd", "server-get-load", "server-list-active", "server-list-responding", "server-rerun", "server-start-master", "server-start-node"]
|
11
|
+
s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "lib/erlang/messenger/lib/eunit/examples/tests.txt", "website/index.txt"]
|
12
|
+
s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "Rakefile", "bin/cloud", "bin/cloud-add-keypair", "bin/cloud-configure", "bin/cloud-contract", "bin/cloud-expand", "bin/cloud-list", "bin/cloud-maintain", "bin/cloud-osxcopy", "bin/cloud-provision", "bin/cloud-refresh", "bin/cloud-run", "bin/cloud-ssh", "bin/cloud-start", "bin/cloud-terminate", "bin/pool", "bin/pool-console", "bin/pool-describe", "bin/pool-list", "bin/pool-provision", "bin/pool-spec", "bin/pool-start", "bin/server-build-messenger", "bin/server-fire-cmd", "bin/server-get-load", "bin/server-list-active", "bin/server-list-responding", "bin/server-rerun", "bin/server-start-master", "bin/server-start-node", "config/hoe.rb", "config/requirements.rb", "erl_crash.dump", "examples/basic.rb", "examples/plugin_without_plugin_directory.rb", "examples/poolparty.rb", "examples/with_apache_plugin.rb", "generators/poolspec/USAGE", "generators/poolspec/poolspec_generator.rb", "generators/poolspec/templates/pool_spec_template.erb", "lib/erlang/messenger/Emakefile", "lib/erlang/messenger/Makefile", "lib/erlang/messenger/README", "lib/erlang/messenger/Rakefile", "lib/erlang/messenger/control", "lib/erlang/messenger/ebin/master.app", "lib/erlang/messenger/ebin/master_app.beam", "lib/erlang/messenger/ebin/node.app", "lib/erlang/messenger/ebin/node_app.beam", "lib/erlang/messenger/ebin/packager.app", "lib/erlang/messenger/ebin/pm_client.beam", "lib/erlang/messenger/ebin/pm_cluster.beam", "lib/erlang/messenger/ebin/pm_event_handler.beam", "lib/erlang/messenger/ebin/pm_master.beam", "lib/erlang/messenger/ebin/pm_master_rel-0.1.rel", "lib/erlang/messenger/ebin/pm_master_supervisor.beam", "lib/erlang/messenger/ebin/pm_node.beam", "lib/erlang/messenger/ebin/pm_node_rel-0.1.rel", "lib/erlang/messenger/ebin/pm_node_supervisor.beam", "lib/erlang/messenger/ebin/pm_packager.beam", "lib/erlang/messenger/ebin/utils.beam", "lib/erlang/messenger/lib/eunit/AUTHORS", "lib/erlang/messenger/lib/eunit/CHANGELOG", "lib/erlang/messenger/lib/eunit/COPYING", "lib/erlang/messenger/lib/eunit/Makefile", "lib/erlang/messenger/lib/eunit/NOTES", "lib/erlang/messenger/lib/eunit/README", "lib/erlang/messenger/lib/eunit/doc/edoc-info", "lib/erlang/messenger/lib/eunit/doc/erlang.png", "lib/erlang/messenger/lib/eunit/doc/eunit.html", "lib/erlang/messenger/lib/eunit/doc/index.html", "lib/erlang/messenger/lib/eunit/doc/modules-frame.html", "lib/erlang/messenger/lib/eunit/doc/overview-summary.html", "lib/erlang/messenger/lib/eunit/doc/overview.edoc", "lib/erlang/messenger/lib/eunit/doc/packages-frame.html", "lib/erlang/messenger/lib/eunit/doc/stylesheet.css", "lib/erlang/messenger/lib/eunit/ebin/autoload.beam", "lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit.app", "lib/erlang/messenger/lib/eunit/ebin/eunit.appup", "lib/erlang/messenger/lib/eunit/ebin/eunit.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam", "lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam", "lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl", "lib/erlang/messenger/lib/eunit/examples/fib.erl", "lib/erlang/messenger/lib/eunit/examples/tests.txt", "lib/erlang/messenger/lib/eunit/include/eunit.hrl", "lib/erlang/messenger/lib/eunit/src/Makefile", "lib/erlang/messenger/lib/eunit/src/autoload.erl", "lib/erlang/messenger/lib/eunit/src/code_monitor.erl", "lib/erlang/messenger/lib/eunit/src/eunit.app.src", "lib/erlang/messenger/lib/eunit/src/eunit.appup.src", "lib/erlang/messenger/lib/eunit/src/eunit.erl", "lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl", "lib/erlang/messenger/lib/eunit/src/eunit_data.erl", "lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl", "lib/erlang/messenger/lib/eunit/src/eunit_lib.erl", "lib/erlang/messenger/lib/eunit/src/eunit_proc.erl", "lib/erlang/messenger/lib/eunit/src/eunit_serial.erl", "lib/erlang/messenger/lib/eunit/src/eunit_server.erl", "lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl", "lib/erlang/messenger/lib/eunit/src/eunit_test.erl", "lib/erlang/messenger/lib/eunit/src/eunit_tests.erl", "lib/erlang/messenger/lib/eunit/src/eunit_tty.erl", "lib/erlang/messenger/lib/eunit/src/file_monitor.erl", "lib/erlang/messenger/lib/eunit/sys.config", "lib/erlang/messenger/lib/eunit/vsn.mk", "lib/erlang/messenger/pm_master_rel-0.1.boot", "lib/erlang/messenger/pm_master_rel-0.1.script", "lib/erlang/messenger/pm_node_rel-0.1.boot", "lib/erlang/messenger/pm_node_rel-0.1.script", "lib/erlang/messenger/src/master_app.erl", "lib/erlang/messenger/src/node_app.erl", "lib/erlang/messenger/src/pm_client.erl", "lib/erlang/messenger/src/pm_cluster.erl", "lib/erlang/messenger/src/pm_event_handler.erl", "lib/erlang/messenger/src/pm_master.erl", "lib/erlang/messenger/src/pm_master_supervisor.erl", "lib/erlang/messenger/src/pm_node.erl", "lib/erlang/messenger/src/pm_node_supervisor.erl", "lib/erlang/messenger/src/pm_packager.erl", "lib/erlang/messenger/src/utils.erl", "lib/poolparty.rb", "lib/poolparty/base_packages/haproxy.rb", "lib/poolparty/base_packages/heartbeat.rb", "lib/poolparty/base_packages/poolparty.rb", "lib/poolparty/base_packages/ruby.rb", "lib/poolparty/config/allowed_commands.yml", "lib/poolparty/core/array.rb", "lib/poolparty/core/exception.rb", "lib/poolparty/core/float.rb", "lib/poolparty/core/hash.rb", "lib/poolparty/core/kernel.rb", "lib/poolparty/core/module.rb", "lib/poolparty/core/my_open_struct.rb", "lib/poolparty/core/object.rb", "lib/poolparty/core/proc.rb", "lib/poolparty/core/string.rb", "lib/poolparty/core/symbol.rb", "lib/poolparty/core/time.rb", "lib/poolparty/dependency_resolutions/base.rb", "lib/poolparty/dependency_resolutions/puppet.rb", "lib/poolparty/exceptions/RemoteException.rb", "lib/poolparty/exceptions/ResourceException.rb", "lib/poolparty/exceptions/RuntimeException.rb", "lib/poolparty/exceptions/SpecException.rb", "lib/poolparty/exceptions/TemplateNotFound.rb", "lib/poolparty/exceptions/UnacceptableCommand.rb", "lib/poolparty/helpers/binary.rb", "lib/poolparty/helpers/console.rb", "lib/poolparty/helpers/display.rb", "lib/poolparty/helpers/messenger.rb", "lib/poolparty/helpers/optioner.rb", "lib/poolparty/helpers/provisioner_base.rb", "lib/poolparty/helpers/provisioners/master.rb", "lib/poolparty/helpers/provisioners/slave.rb", "lib/poolparty/modules/cloud_resourcer.rb", "lib/poolparty/modules/configurable.rb", "lib/poolparty/modules/definable_resource.rb", "lib/poolparty/modules/file_writer.rb", "lib/poolparty/modules/method_missing_sugar.rb", "lib/poolparty/modules/output.rb", "lib/poolparty/modules/pretty_printer.rb", "lib/poolparty/modules/resourcing_dsl.rb", "lib/poolparty/modules/s3_string.rb", "lib/poolparty/modules/safe_instance.rb", "lib/poolparty/monitors/base_monitor.rb", "lib/poolparty/monitors/monitors/cpu_monitor.rb", "lib/poolparty/monitors/monitors/memory_monitor.rb", "lib/poolparty/net/remote.rb", "lib/poolparty/net/remote_bases/ec2.rb", "lib/poolparty/net/remote_instance.rb", "lib/poolparty/net/remoter.rb", "lib/poolparty/net/remoter_base.rb", "lib/poolparty/plugins/git.rb", "lib/poolparty/plugins/line.rb", "lib/poolparty/plugins/svn.rb", "lib/poolparty/pool/base.rb", "lib/poolparty/pool/cloud.rb", "lib/poolparty/pool/custom_resource.rb", "lib/poolparty/pool/loggable.rb", "lib/poolparty/pool/plugin.rb", "lib/poolparty/pool/plugin_model.rb", "lib/poolparty/pool/pool.rb", "lib/poolparty/pool/resource.rb", "lib/poolparty/pool/resources/class_package.rb", "lib/poolparty/pool/resources/conditional.rb", "lib/poolparty/pool/resources/cron.rb", "lib/poolparty/pool/resources/directory.rb", "lib/poolparty/pool/resources/exec.rb", "lib/poolparty/pool/resources/file.rb", "lib/poolparty/pool/resources/gem.rb", "lib/poolparty/pool/resources/host.rb", "lib/poolparty/pool/resources/package.rb", "lib/poolparty/pool/resources/remote_file.rb", "lib/poolparty/pool/resources/service.rb", "lib/poolparty/pool/resources/sshkey.rb", "lib/poolparty/pool/resources/symlink.rb", "lib/poolparty/pool/resources/variable.rb", "lib/poolparty/pool/script.rb", "lib/poolparty/pool/tmp/.ppkeys", "lib/poolparty/pool/tmp/happydayz", "lib/poolparty/pool/tmp/install_master.sh", "lib/poolparty/pool/tmp/pool.spec", "lib/poolparty/pool/tmp/poolparty.pp", "lib/poolparty/pool/tmp/tc-instances.list", "lib/poolparty/templates/authkeys", "lib/poolparty/templates/cib.xml", "lib/poolparty/templates/fileserver.conf", "lib/poolparty/templates/gem", "lib/poolparty/templates/ha.cf", "lib/poolparty/templates/haproxy.conf", "lib/poolparty/templates/haresources", "lib/poolparty/templates/namespaceauth.conf", "lib/poolparty/templates/poolparty.monitor", "lib/poolparty/templates/puppet.conf", "lib/poolparty/version.rb", "lib/poolpartycl.rb", "poolparty.gemspec", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "spec/poolparty/base_packages/haproxy_spec.rb", "spec/poolparty/base_packages/heartbeat_spec.rb", "spec/poolparty/bin/console_spec.rb", "spec/poolparty/core/array_spec.rb", "spec/poolparty/core/float.rb", "spec/poolparty/core/hash_spec.rb", "spec/poolparty/core/kernel_spec.rb", "spec/poolparty/core/module_spec.rb", "spec/poolparty/core/object_spec.rb", "spec/poolparty/core/string_spec.rb", "spec/poolparty/core/time_spec.rb", "spec/poolparty/dependency_resolutions/base_spec.rb", "spec/poolparty/helpers/binary_spec.rb", "spec/poolparty/helpers/display_spec.rb", "spec/poolparty/helpers/messenger_spec.rb", "spec/poolparty/helpers/optioner_spec.rb", "spec/poolparty/helpers/provisioner_base_spec.rb", "spec/poolparty/helpers/provisioners/master_spec.rb", "spec/poolparty/helpers/provisioners/slave_spec.rb", "spec/poolparty/modules/cloud_resourcer_spec.rb", "spec/poolparty/modules/configurable_spec.rb", "spec/poolparty/modules/definable_resource.rb", "spec/poolparty/modules/file_writer_spec.rb", "spec/poolparty/modules/s3_string_spec.rb", "spec/poolparty/monitors/base_monitor_spec.rb", "spec/poolparty/monitors/monitors/cpu_monitor_spec.rb", "spec/poolparty/net/remote_bases/ec2_spec.rb", "spec/poolparty/net/remote_instance_spec.rb", "spec/poolparty/net/remote_spec.rb", "spec/poolparty/net/remoter_base_spec.rb", "spec/poolparty/net/remoter_spec.rb", "spec/poolparty/plugins/git_spec.rb", "spec/poolparty/plugins/line_spec.rb", "spec/poolparty/plugins/svn_spec.rb", "spec/poolparty/pool/base_spec.rb", "spec/poolparty/pool/cloud_spec.rb", "spec/poolparty/pool/configurers/files/ruby_basic.rb", "spec/poolparty/pool/configurers/files/ruby_plugins.rb", "spec/poolparty/pool/configurers/ruby_spec.rb", "spec/poolparty/pool/custom_resource_spec.rb", "spec/poolparty/pool/example_spec.rb", "spec/poolparty/pool/plugin_model_spec.rb", "spec/poolparty/pool/plugin_spec.rb", "spec/poolparty/pool/pool_spec.rb", "spec/poolparty/pool/resource_spec.rb", "spec/poolparty/pool/resources/class_package_spec.rb", "spec/poolparty/pool/resources/conditional_spec.rb", "spec/poolparty/pool/resources/cron_spec.rb", "spec/poolparty/pool/resources/directory_spec.rb", "spec/poolparty/pool/resources/exec_spec.rb", "spec/poolparty/pool/resources/file_spec.rb", "spec/poolparty/pool/resources/gem_spec.rb", "spec/poolparty/pool/resources/host_spec.rb", "spec/poolparty/pool/resources/package_spec.rb", "spec/poolparty/pool/resources/remote_file_spec.rb", "spec/poolparty/pool/resources/service_spec.rb", "spec/poolparty/pool/resources/sshkey_spec.rb", "spec/poolparty/pool/resources/symlink_spec.rb", "spec/poolparty/pool/resources/variable_spec.rb", "spec/poolparty/pool/script_spec.rb", "spec/poolparty/pool/test_plugins/sshkey_test", "spec/poolparty/pool/test_plugins/virtual_host_template.erb", "spec/poolparty/pool/test_plugins/webserver.rb", "spec/poolparty/poolparty_spec.rb", "spec/poolparty/spec_helper.rb", "tasks/cloud.rake", "tasks/deployment.rake", "tasks/development.rake", "tasks/ec2.rake", "tasks/environment.rake", "tasks/instance.rake", "tasks/server.rake", "tasks/spec.rake", "tasks/website.rake", "test/test_generator_helper.rb", "test/test_helper.rb", "test/test_pool_spec_generator.rb", "test/test_poolparty.rb", "test_manifest.pp", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/code.css", "website/stylesheets/screen.css", "website/template.html.erb"]
|
13
13
|
s.has_rdoc = true
|
14
14
|
s.homepage = %q{http://poolparty.rubyforge.org}
|
15
15
|
s.post_install_message = %q{Get ready to jump in the pool, you just installed poolpartyrb!
|
@@ -21,8 +21,9 @@ To get started, run the generator:
|
|
21
21
|
Please check out the documentation for any questions or check out the google groups at
|
22
22
|
http://groups.google.com/group/poolpartyrb
|
23
23
|
|
24
|
+
Tutorials are at http://poolpartyrb.com
|
24
25
|
|
25
|
-
Don't forget to check out the plugin tutorial @ http://poolpartyrb.com for
|
26
|
+
Don't forget to check out the plugin tutorial @ http://poolpartyrb.com to extend PoolParty for your needs!
|
26
27
|
|
27
28
|
For more information, check http://PoolPartyrb.com
|
28
29
|
On IRC:
|
data/setup.rb
CHANGED
@@ -1363,7 +1363,7 @@ class Installer
|
|
1363
1363
|
|
1364
1364
|
def install_dir_conf(rel)
|
1365
1365
|
# FIXME: should not remove current config files
|
1366
|
-
# (rename
|
1366
|
+
# (rename preious file to .old/.org)
|
1367
1367
|
install_files targetfiles(), "#{config('sysconfdir')}/#{rel}", 0644
|
1368
1368
|
end
|
1369
1369
|
|
@@ -1542,12 +1542,12 @@ class Installer
|
|
1542
1542
|
|
1543
1543
|
dir = File.basename(rel)
|
1544
1544
|
Dir.mkdir dir unless File.dir?(dir)
|
1545
|
-
|
1545
|
+
predir = Dir.pwd
|
1546
1546
|
Dir.chdir dir
|
1547
1547
|
$stderr.puts '---> ' + rel if verbose?
|
1548
1548
|
@currdir = rel
|
1549
1549
|
yield
|
1550
|
-
Dir.chdir
|
1550
|
+
Dir.chdir predir
|
1551
1551
|
$stderr.puts '<--- ' + rel if verbose?
|
1552
1552
|
@currdir = File.dirname(rel)
|
1553
1553
|
end
|
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/../../../lib/poolparty/helpers/console'
|
|
3
3
|
|
4
4
|
describe "Console" do
|
5
5
|
before(:each) do
|
6
|
-
::File.stub!(:
|
6
|
+
::File.stub!(:readable?).with("pop").and_return true
|
7
7
|
end
|
8
8
|
describe "load_pool" do
|
9
9
|
before(:each) do
|
@@ -30,7 +30,7 @@ describe "Hash" do
|
|
30
30
|
it "should be able to flush out into a string into an array" do
|
31
31
|
@a.flush_out.should == ["a => '10'","b => '20'","c => '30'"]
|
32
32
|
end
|
33
|
-
it "should be able to flush out with
|
33
|
+
it "should be able to flush out with pre and posts" do
|
34
34
|
@a.flush_out("hi", "ho").should == ["hia => '10'ho","hib => '20'ho","hic => '30'ho"]
|
35
35
|
end
|
36
36
|
describe "select" do
|
@@ -60,4 +60,22 @@ describe "Hash" do
|
|
60
60
|
}.should_not raise_error
|
61
61
|
end
|
62
62
|
end
|
63
|
+
describe "append" do
|
64
|
+
before(:each) do
|
65
|
+
@hash = {:game => "token", :required => "for_play"}
|
66
|
+
end
|
67
|
+
it "should not destroy an option salready on the hash" do
|
68
|
+
@hash.append(:required => "to_play")[:game].should == "token"
|
69
|
+
end
|
70
|
+
it "should change the entry to an array if it already exists" do
|
71
|
+
@hash.append(:game => "coin")[:game].class.should == Array
|
72
|
+
end
|
73
|
+
it "should append the other hash's key to the end of the array" do
|
74
|
+
@hash.append(:game => "coin")[:game][-1].should == "coin"
|
75
|
+
end
|
76
|
+
it "should change the hash with the append(bang) option" do
|
77
|
+
@hash.append!(:game => "coin")
|
78
|
+
@hash[:game][-1].should == "coin"
|
79
|
+
end
|
80
|
+
end
|
63
81
|
end
|
@@ -129,6 +129,19 @@ listen web_proxy 127.0.0.1:3000
|
|
129
129
|
it "should return File['/etc/apache2/conf.d/base.conf'] as a string" do
|
130
130
|
'File["/etc/apache2/conf.d/base.conf"]'.to_option_string.should == "File[\"/etc/apache2/conf.d/base.conf\"]"
|
131
131
|
end
|
132
|
+
it "should turn a resource into a requires file" do
|
133
|
+
@cloud = cloud :app do
|
134
|
+
file(:name => "franke")
|
135
|
+
end
|
136
|
+
@file = @cloud.resource(:file).first
|
137
|
+
@file.to_option_string.should == "File['franke']"
|
138
|
+
end
|
139
|
+
it "should turn a function into a string without quotes" do
|
140
|
+
"active_nodes()".to_option_string.should == "active_nodes()"
|
141
|
+
end
|
142
|
+
it "should turna function into a string outsid ethe quotes with a parameter" do
|
143
|
+
"active_nodes(10)".to_option_string.should == "active_nodes(10)"
|
144
|
+
end
|
132
145
|
end
|
133
146
|
describe "sanitize" do
|
134
147
|
it "should remove the periods from the string" do
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe "Resolution spec" do
|
4
|
+
before(:each) do
|
5
|
+
@base = Class.new
|
6
|
+
@base.extend(DependencyResolutions::Base)
|
7
|
+
end
|
8
|
+
%w(to_s to_string).each do |meth|
|
9
|
+
eval "it 'should have the method #{meth} defined' do; @base.respond_to?(:#{meth}).should == true; end"
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
setup_cl
|
4
|
+
|
5
|
+
include PoolParty::Messenger
|
6
|
+
|
7
|
+
describe "Messenger" do
|
8
|
+
it "should have the method messenger_send!" do
|
9
|
+
Messenger.respond_to?(:messenger_send!).should == true
|
10
|
+
end
|
11
|
+
it "should call send_cmd on the client" do
|
12
|
+
Messenger.messenger_send!('send_cmd ["echo hi"]', true).should =~ /-run pm_client send_cmd/
|
13
|
+
end
|
14
|
+
end
|
@@ -31,8 +31,9 @@ describe "Option Parser" do
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
it "should be able to take a block and set some options on the block" do
|
34
|
-
o = PoolParty::Optioner.new(["-w"]
|
34
|
+
o = PoolParty::Optioner.new(["-w"]) do |opts, optioner|
|
35
35
|
opts.on('-w', '--wee') { optioner.wee "wee" }
|
36
|
+
opts.on('-t t', '--teatime tea') { optioner.tea "time" }
|
36
37
|
end
|
37
38
|
o.wee.should == "wee"
|
38
39
|
end
|
@@ -52,7 +52,7 @@ describe "ProvisionerBase" do
|
|
52
52
|
ProvisionerBase.installers[:ubuntu].should_not be_nil
|
53
53
|
end
|
54
54
|
it "should be able to fetch the ubuntu installer with the helper method installer" do
|
55
|
-
ProvisionerBase.new(@remote_instance,@cloud, "ubuntu").installer_for.should == "
|
55
|
+
ProvisionerBase.new(@remote_instance,@cloud, "ubuntu").installer_for.should == "aptitude install -y "
|
56
56
|
end
|
57
57
|
it "should be able to fetch the fedora installer with the helper method installer" do
|
58
58
|
ProvisionerBase.new(@remote_instance,@cloud, "fedora").installer_for.should == "yum install "
|
@@ -18,7 +18,7 @@ describe "Master provisioner" do
|
|
18
18
|
@master.stub!(:cloud).and_return @cloud
|
19
19
|
end
|
20
20
|
it "should call install_puppet_master" do
|
21
|
-
@master.should_receive(:
|
21
|
+
@master.should_receive(:install_puppet)
|
22
22
|
end
|
23
23
|
it "should call create_local_hosts_entry" do
|
24
24
|
@master.should_receive(:create_local_hosts_entry)
|
@@ -37,7 +37,7 @@ describe "Master provisioner" do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
it "should return install_puppet_master as apt-get install puppet factor" do
|
40
|
-
@master.
|
40
|
+
@master.install_puppet.should =~ /install -y puppet puppetmaster/
|
41
41
|
end
|
42
42
|
it "should return setup basic structure" do
|
43
43
|
@master.setup_basic_structure.should =~ /puppetmasterd --mkusers/
|
@@ -16,13 +16,13 @@ describe "Slave provisioner" do
|
|
16
16
|
end
|
17
17
|
describe "install_tasks" do
|
18
18
|
it "should call install_puppet_slave" do
|
19
|
-
@slave.should_receive(:
|
19
|
+
@slave.should_receive(:install_puppet)
|
20
20
|
end
|
21
21
|
after do
|
22
22
|
@slave.install
|
23
23
|
end
|
24
24
|
end
|
25
|
-
it "should return
|
26
|
-
@slave.setup_puppet.should =~ /
|
25
|
+
it "should return setup_puppet with the master" do
|
26
|
+
@slave.setup_puppet.should =~ /master/
|
27
27
|
end
|
28
28
|
end
|
@@ -43,6 +43,15 @@ describe "FileWriter" do
|
|
43
43
|
@test.write_to_file_in_storage_directory(@filepath, "STRING TO WRITE")
|
44
44
|
end
|
45
45
|
end
|
46
|
+
describe "trying to copy the same file" do
|
47
|
+
before(:each) do
|
48
|
+
@filepath = @path
|
49
|
+
end
|
50
|
+
it "should not try to copy a file if they are the same file" do
|
51
|
+
FileUtils.should_not_receive(:cp)
|
52
|
+
@test.copy_file_to_storage_directory(@filepath)
|
53
|
+
end
|
54
|
+
end
|
46
55
|
after(:all) do
|
47
56
|
::File.unlink @path if ::File.file? @path
|
48
57
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
include PoolParty::Monitors
|
4
|
+
|
5
|
+
describe "Monitors" do
|
6
|
+
it "should have a list of available monitors" do
|
7
|
+
PoolParty::Monitors.available_monitors.empty?.should == false
|
8
|
+
end
|
9
|
+
it "should register a module and append it to the available monitors" do
|
10
|
+
size = PoolParty::Monitors.available_monitors.size
|
11
|
+
PoolParty::Monitors.register_monitor :fake
|
12
|
+
size.should == PoolParty::Monitors.available_monitors.size - 1
|
13
|
+
end
|
14
|
+
end
|
15
|
+
describe "BaseMonitor" do
|
16
|
+
it "should have the singleton method run defined" do
|
17
|
+
BaseMonitor.respond_to?(:run).should == true
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
include PoolParty::Monitors
|
4
|
+
|
5
|
+
describe "CpuMonitor" do
|
6
|
+
before(:each) do
|
7
|
+
@mon = CpuMonitor.new
|
8
|
+
CpuMonitor.stub!(:new).and_return @mon
|
9
|
+
end
|
10
|
+
it "should have the singleton method run defined" do
|
11
|
+
CpuMonitor.respond_to?(:run).should == true
|
12
|
+
end
|
13
|
+
it "should call the method new" do
|
14
|
+
CpuMonitor.should_receive(:new).and_return @mon
|
15
|
+
CpuMonitor.run
|
16
|
+
end
|
17
|
+
end
|
@@ -65,6 +65,11 @@ describe "Remote Instance" do
|
|
65
65
|
@ri.responding.should_not be_nil
|
66
66
|
@ri.responding?.should == true
|
67
67
|
end
|
68
|
-
|
68
|
+
it "should have the puppet_runner_command" do
|
69
|
+
@ri.respond_to?(:puppet_runner_command).should == true
|
70
|
+
end
|
71
|
+
it "should return the puppet_runner_command with puppetd" do
|
72
|
+
@ri.puppet_runner_command.should =~ /puppetd/
|
73
|
+
end
|
69
74
|
end
|
70
75
|
end
|
@@ -190,51 +190,60 @@ describe "Remote" do
|
|
190
190
|
end
|
191
191
|
describe "should_contract_cloud?" do
|
192
192
|
end
|
193
|
-
describe "
|
193
|
+
describe "expansions" do
|
194
194
|
before(:each) do
|
195
|
-
|
196
|
-
@tc.stub!(:
|
197
|
-
|
198
|
-
@tc.stub!(:
|
199
|
-
@tc.stub!(:prepare_to_configuration).and_return true
|
200
|
-
@tc.stub!(:build_and_store_new_config_file).and_return true
|
195
|
+
@tc.stub!(:copy_ssh_app).and_return true
|
196
|
+
@tc.stub!(:prepare_reconfiguration).and_return "full"
|
197
|
+
PoolParty::Provisioner.stub!(:configure_master).and_return true
|
198
|
+
@tc.stub!(:wait).and_return true
|
201
199
|
end
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
it "should see if we should contract the cloud" do
|
230
|
-
@tc.should_receive(:should_contract_cloud?).once.and_return false
|
231
|
-
end
|
232
|
-
it "should call request_termination_of_non_master_instance if we should_contract_cloud?" do
|
233
|
-
@tc.should_receive(:should_contract_cloud?).once.and_return true
|
234
|
-
@tc.should_receive(:request_termination_of_non_master_instance).once.and_return true
|
200
|
+
describe "expand_cloud_if_necessary" do
|
201
|
+
before(:each) do
|
202
|
+
stub_list_from_remote_for(@tc)
|
203
|
+
@tc.stub!(:request_launch_new_instances).and_return true
|
204
|
+
@tc.stub!(:can_start_a_new_instance).and_return true
|
205
|
+
@tc.stub!(:list_of_pending_instances).and_return []
|
206
|
+
@tc.stub!(:prepare_to_configuration).and_return true
|
207
|
+
@tc.stub!(:build_and_store_new_config_file).and_return true
|
208
|
+
PoolParty::Provisioner.stub!(:provision_slaves).and_return true
|
209
|
+
end
|
210
|
+
it "should receive can_start_a_new_instance?" do
|
211
|
+
@tc.should_receive(:can_start_a_new_instance?).once
|
212
|
+
end
|
213
|
+
it "should see if we should expand the cloud" do
|
214
|
+
@tc.should_receive(:should_expand_cloud?).once.and_return false
|
215
|
+
end
|
216
|
+
it "should call request_launch_new_instances if we should_expand_cloud?" do
|
217
|
+
@tc.should_receive(:should_expand_cloud?).once.and_return true
|
218
|
+
@tc.should_receive(:request_launch_new_instances).once.and_return [{:ip => "127.0.0.5", :name => "node2"}]
|
219
|
+
end
|
220
|
+
it "should call a new slave provisioner" do
|
221
|
+
@tc.stub!(:should_expand_cloud?).once.and_return true
|
222
|
+
PoolParty::Provisioner.should_receive(:provision_slaves).and_return true
|
223
|
+
end
|
224
|
+
after(:each) do
|
225
|
+
@tc.expand_cloud_if_necessary
|
226
|
+
end
|
235
227
|
end
|
236
|
-
|
237
|
-
|
228
|
+
describe "contract_cloud_if_necessary" do
|
229
|
+
before(:each) do
|
230
|
+
@tc.stub!(:request_termination_of_non_master_instance).and_return true
|
231
|
+
@tc.stub!(:can_shutdown_an_instance?).and_return true
|
232
|
+
@tc.stub!(:wait).and_return true
|
233
|
+
end
|
234
|
+
it "should receive can_shutdown_an_instance?" do
|
235
|
+
@tc.should_receive(:can_shutdown_an_instance?).once
|
236
|
+
end
|
237
|
+
it "should see if we should contract the cloud" do
|
238
|
+
@tc.should_receive(:should_contract_cloud?).once.and_return false
|
239
|
+
end
|
240
|
+
it "should call request_termination_of_non_master_instance if we should_contract_cloud?" do
|
241
|
+
@tc.should_receive(:should_contract_cloud?).once.and_return true
|
242
|
+
@tc.should_receive(:request_termination_of_non_master_instance).once.and_return true
|
243
|
+
end
|
244
|
+
after(:each) do
|
245
|
+
@tc.contract_cloud_if_necessary
|
246
|
+
end
|
238
247
|
end
|
239
248
|
end
|
240
249
|
describe "rsync_storage_files_to" do
|
@@ -48,7 +48,7 @@ describe "Remoter" do
|
|
48
48
|
@tc.rsync_command.should == "rsync --delete -azP --exclude cache -e '#{@tc.ssh_string}'"
|
49
49
|
end
|
50
50
|
it "should be able to rsync storage commands" do
|
51
|
-
@tc.rsync_storage_files_to_command(@ri).should == "#{@tc.rsync_command} #{
|
51
|
+
@tc.rsync_storage_files_to_command(@ri).should == "#{@tc.rsync_command} #{Base.storage_directory}/ 192.168.0.22:/var/poolparty"
|
52
52
|
end
|
53
53
|
end
|
54
54
|
describe "launch_and_configure_master!" do
|
@@ -188,4 +188,5 @@ describe "Remoter" do
|
|
188
188
|
end
|
189
189
|
end
|
190
190
|
end
|
191
|
+
|
191
192
|
end
|
@@ -8,7 +8,7 @@ describe "Remote Instance" do
|
|
8
8
|
@tc = TestClass.new
|
9
9
|
end
|
10
10
|
it "should be a string" do
|
11
|
-
@tc.has_git(:name => "gitrepos.git", :source => "git://source.git").to_string.should =~ /
|
11
|
+
@tc.has_git(:name => "gitrepos.git", :source => "git://source.git").to_string.should =~ /exec \{/
|
12
12
|
end
|
13
13
|
it "should included the flushed out options" do
|
14
14
|
@tc.has_git({:name => "git.git", :source => "git://source.git", :user => "finger"}).to_string.should =~ /finger@git:/
|
@@ -27,7 +27,7 @@ describe "Remote Instance" do
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
it "should have the path set within the resource" do
|
30
|
-
@tc.resource(:git).first.to_string.should =~ /
|
30
|
+
@tc.resource(:git).first.to_string.should =~ /exec \{/
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|