auser-poolparty 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +8 -0
- data/README.txt +10 -10
- data/Rakefile +30 -21
- data/{web/static/site/images → assets}/clouds.png +0 -0
- data/bin/instance +39 -34
- data/bin/pool +44 -29
- data/bin/poolnotify +34 -0
- data/config/haproxy.conf +1 -1
- data/config/heartbeat_authkeys.conf +1 -1
- data/config/monit/haproxy.monit.conf +2 -1
- data/config/nginx.conf +1 -1
- data/config/reconfigure_instances_script.sh +28 -9
- data/config/sample-config.yml +1 -1
- data/lib/core/string.rb +3 -0
- data/lib/modules/ec2_wrapper.rb +47 -22
- data/lib/modules/file_writer.rb +38 -0
- data/lib/modules/sprinkle_overrides.rb +32 -0
- data/lib/modules/vlad_override.rb +5 -4
- data/lib/poolparty.rb +14 -10
- data/lib/poolparty/application.rb +33 -19
- data/lib/poolparty/master.rb +227 -105
- data/lib/poolparty/optioner.rb +8 -4
- data/lib/poolparty/plugin.rb +34 -4
- data/lib/poolparty/provider/packages/haproxy.rb +0 -15
- data/lib/poolparty/provider/packages/heartbeat.rb +1 -1
- data/lib/poolparty/provider/packages/ruby.rb +6 -6
- data/lib/poolparty/provider/packages/s3fuse.rb +9 -2
- data/lib/poolparty/provider/provider.rb +65 -25
- data/lib/poolparty/remote_instance.rb +95 -74
- data/lib/poolparty/remoter.rb +48 -37
- data/lib/poolparty/remoting.rb +41 -17
- data/lib/poolparty/scheduler.rb +4 -4
- data/lib/poolparty/tasks.rb +1 -1
- data/lib/poolparty/tasks/package.rake +53 -0
- data/lib/poolparty/tasks/plugins.rake +1 -1
- data/poolparty.gemspec +50 -58
- data/spec/application_spec.rb +28 -0
- data/spec/core_spec.rb +9 -0
- data/spec/ec2_wrapper_spec.rb +87 -0
- data/spec/file_writer_spec.rb +73 -0
- data/spec/files/describe_response +37 -0
- data/spec/files/multi_describe_response +69 -0
- data/spec/files/remote_desc_response +37 -0
- data/spec/helpers/ec2_mock.rb +3 -0
- data/spec/master_spec.rb +302 -78
- data/spec/monitors/cpu_monitor_spec.rb +2 -1
- data/spec/monitors/memory_spec.rb +1 -0
- data/spec/monitors/misc_monitor_spec.rb +1 -0
- data/spec/monitors/web_spec.rb +1 -0
- data/spec/optioner_spec.rb +12 -0
- data/spec/plugin_manager_spec.rb +10 -10
- data/spec/plugin_spec.rb +6 -3
- data/spec/pool_binary_spec.rb +3 -0
- data/spec/poolparty_spec.rb +12 -7
- data/spec/provider_spec.rb +1 -0
- data/spec/remote_instance_spec.rb +18 -18
- data/spec/remoter_spec.rb +4 -2
- data/spec/remoting_spec.rb +10 -2
- data/spec/scheduler_spec.rb +0 -6
- data/spec/spec_helper.rb +13 -0
- metadata +83 -52
- data/Manifest +0 -115
- data/lib/poolparty/tmp.rb +0 -46
- data/misc/basics_tutorial.txt +0 -142
- data/web/static/conf/nginx.conf +0 -22
- data/web/static/site/images/balloon.png +0 -0
- data/web/static/site/images/cb.png +0 -0
- data/web/static/site/images/railsconf_preso_img.png +0 -0
- data/web/static/site/index.html +0 -71
- data/web/static/site/javascripts/application.js +0 -3
- data/web/static/site/javascripts/corner.js +0 -178
- data/web/static/site/javascripts/jquery-1.2.6.pack.js +0 -11
- data/web/static/site/misc.html +0 -42
- data/web/static/site/storage/pool_party_presentation.pdf +0 -0
- data/web/static/site/stylesheets/application.css +0 -100
- data/web/static/site/stylesheets/reset.css +0 -17
- data/web/static/src/layouts/application.haml +0 -25
- data/web/static/src/pages/index.haml +0 -25
- data/web/static/src/pages/misc.haml +0 -5
- data/web/static/src/stylesheets/application.sass +0 -100
data/spec/monitors/web_spec.rb
CHANGED
data/spec/optioner_spec.rb
CHANGED
@@ -13,10 +13,22 @@ describe "Optioner with options" do
|
|
13
13
|
it "should be able to pull out the lonely arguments with optional argument switches" do
|
14
14
|
Optioner.parse("-s 30 -q -n start".split(" "), %w(-q -n)).should == ["start"]
|
15
15
|
end
|
16
|
+
it "should be able to pull out the lonely arguments with optional argument switches in any order" do
|
17
|
+
Optioner.parse("start -s 30 -q -n".split(" "), %w(-q -n)).should == ["start"]
|
18
|
+
end
|
19
|
+
it "should be able to pull out the lonely, default arguments with optional argument switches" do
|
20
|
+
Optioner.parse("-s 30 -q -n start -i -v".split(" "), %w(-q -n)).should == ["start"]
|
21
|
+
end
|
16
22
|
it "should pull out the lonely arguments if none are there" do
|
17
23
|
Optioner.parse("-s 30 -q".split(" ")).should == []
|
18
24
|
end
|
19
25
|
it "should pull out empty array if there are no lonely arguments" do
|
20
26
|
Optioner.parse("-s 30".split(" ")).should == []
|
21
27
|
end
|
28
|
+
it "should pull out quoted arguments" do
|
29
|
+
Optioner.parse("-s 30 'ls'".split(" ")).should == ["'ls'"]
|
30
|
+
end
|
31
|
+
it "should be able to pull out a quoted argument in a sea of nonquotes" do
|
32
|
+
Optioner.parse("-v -k auser scp 'pkg/poolparty-0.0.9.gem'".split(" ")).should == ["scp", "'pkg/poolparty-0.0.9.gem'"]
|
33
|
+
end
|
22
34
|
end
|
data/spec/plugin_manager_spec.rb
CHANGED
@@ -7,25 +7,25 @@ describe "Plugin manager" do
|
|
7
7
|
end
|
8
8
|
it "should git clone the directory when it is installing a plugin" do
|
9
9
|
File.stub!(:directory?).and_return false
|
10
|
-
Git.should_receive(:clone).with("git@github.com:auser/
|
11
|
-
PluginManager.install_plugin "git@github.com:auser/
|
10
|
+
Git.should_receive(:clone).with("git@github.com:auser/PoolParty.git", "/Users/auser/Sites/work/citrusbyte/internal/gems/poolparty/pool/vendor/poolparty").and_return true
|
11
|
+
PluginManager.install_plugin "git@github.com:auser/PoolParty.git"
|
12
12
|
end
|
13
13
|
it "should keep a list of the installed plugin locations" do
|
14
|
-
PluginManager.install_plugin "git@github.com:auser/
|
15
|
-
PoolParty.installed_plugins.should == ["git@github.com:auser/
|
14
|
+
PluginManager.install_plugin "git@github.com:auser/poolparty-plugins.git"
|
15
|
+
PoolParty.installed_plugins.should == ["git@github.com:auser/poolparty-plugins.git"]
|
16
16
|
end
|
17
17
|
it "should be able to rescan the plugin directory and tell which plugins are installed" do
|
18
|
-
PluginManager.install_plugin "git@github.com:auser/
|
19
|
-
PluginManager.scan.should == %w(
|
18
|
+
PluginManager.install_plugin "git@github.com:auser/poolparty-plugins.git"
|
19
|
+
PluginManager.scan.should == %w(poolparty-plugins)
|
20
20
|
end
|
21
21
|
it "should be able to remove a plugin based on the name" do
|
22
|
-
PluginManager.install_plugin "git@github.com:auser/
|
23
|
-
PluginManager.remove_plugin "
|
22
|
+
PluginManager.install_plugin "git@github.com:auser/poolparty-plugins.git"
|
23
|
+
PluginManager.remove_plugin "poolparty-plugins"
|
24
24
|
PluginManager.scan.should == %w()
|
25
25
|
end
|
26
26
|
it "should be able to extract the git repos from the .git/config file" do
|
27
|
-
PluginManager.install_plugin "git@github.com:auser/
|
27
|
+
PluginManager.install_plugin "git@github.com:auser/poolparty-plugins.git"
|
28
28
|
PoolParty.reset!
|
29
|
-
PoolParty.installed_plugins.should == ["git@github.com:auser/
|
29
|
+
PoolParty.installed_plugins.should == ["git@github.com:auser/poolparty-plugins.git"]
|
30
30
|
end
|
31
31
|
end
|
data/spec/plugin_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
3
3
|
class TestPlugin < PoolParty::Plugin
|
4
4
|
after_define_tasks :takss
|
5
5
|
after_install :echo_hosts, :email_updates
|
6
|
-
|
6
|
+
before_configure_cloud :echo_hosts
|
7
7
|
after_start :echo_start
|
8
8
|
|
9
9
|
def echo_start(master)
|
@@ -32,6 +32,7 @@ describe "Plugin" do
|
|
32
32
|
end
|
33
33
|
describe "usage" do
|
34
34
|
before(:each) do
|
35
|
+
stub_option_load
|
35
36
|
@instance = RemoteInstance.new
|
36
37
|
@master = Master.new
|
37
38
|
|
@@ -52,6 +53,7 @@ describe "Plugin" do
|
|
52
53
|
end
|
53
54
|
it "should should call echo_hosts after calling configure" do
|
54
55
|
@test.should_receive(:echo_hosts).at_least(1)
|
56
|
+
# @instance.stub!(:)
|
55
57
|
@instance.install
|
56
58
|
end
|
57
59
|
it "should call email_updates after calling install" do
|
@@ -60,14 +62,15 @@ describe "Plugin" do
|
|
60
62
|
end
|
61
63
|
it "should call echo_hosts before it calls configure" do
|
62
64
|
@test.should_receive(:echo_hosts).at_least(1).and_return "hi"
|
63
|
-
@
|
65
|
+
@master.configure_cloud
|
64
66
|
end
|
65
67
|
it "should not call echo_hosts after if configures" do
|
66
68
|
@test.should_not_receive(:email_updates)
|
67
|
-
@
|
69
|
+
@master.configure_cloud
|
68
70
|
end
|
69
71
|
it "should say that it started on the master" do
|
70
72
|
@test.should_receive(:echo_start).at_least(1).and_return "hi"
|
73
|
+
@master.stub!(:install_cloud)
|
71
74
|
@master.start
|
72
75
|
end
|
73
76
|
describe "instance methods" do
|
data/spec/pool_binary_spec.rb
CHANGED
@@ -2,6 +2,9 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
2
2
|
|
3
3
|
describe "Pool binary" do
|
4
4
|
describe "running" do
|
5
|
+
before(:each) do
|
6
|
+
stub_option_load
|
7
|
+
end
|
5
8
|
it "should call PoolParty.options" do
|
6
9
|
options = PoolParty.options(:optsparse => {:banner => "Usage: pool [OPTIONS] {start | stop | list | maintain | restart}" })
|
7
10
|
end
|
data/spec/poolparty_spec.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
2
|
|
3
3
|
describe "Application options" do
|
4
|
-
|
5
|
-
|
6
|
-
Application.make_options(:config_file => "config/sample-config.yml")
|
7
|
-
end
|
8
|
-
it "should require all the plugin's init files in the plugin directory" do
|
9
|
-
PoolParty.should_receive(:load_plugins).once
|
10
|
-
Application.options
|
4
|
+
before(:each) do
|
5
|
+
# stub_option_load
|
11
6
|
end
|
12
7
|
it "should be able to say that the plugin directory is the current directory" do
|
13
8
|
File.basename(PoolParty.plugin_dir).should == "vendor"
|
14
9
|
end
|
10
|
+
it "should not load plugins if the directory doesn't exist" do
|
11
|
+
File.stub!(:directory?).with(plugin_dir).and_return false
|
12
|
+
Dir.should_not_receive(:[])
|
13
|
+
PoolParty.load_plugins
|
14
|
+
end
|
15
|
+
it "should load the plugins if the directory exists" do
|
16
|
+
File.stub!(:directory?).with(plugin_dir).and_return true
|
17
|
+
Dir.should_receive(:[]).and_return %w()
|
18
|
+
PoolParty.load_plugins
|
19
|
+
end
|
15
20
|
end
|
data/spec/provider_spec.rb
CHANGED
@@ -11,6 +11,7 @@ class RemoteInstance
|
|
11
11
|
end
|
12
12
|
describe "remote instance" do
|
13
13
|
before(:each) do
|
14
|
+
stub_option_load
|
14
15
|
@instance = RemoteInstance.new({:ip => "127.0.0.1", :instance_id => "i-abcdef1"})
|
15
16
|
@instance.stub!(:ssh).and_return true
|
16
17
|
@instance.stub!(:scp).and_return true
|
@@ -53,14 +54,12 @@ describe "remote instance" do
|
|
53
54
|
it "should be able to build a haproxy_entry" do
|
54
55
|
@instance.haproxy_entry.should =~ /server/
|
55
56
|
end
|
56
|
-
describe "callbacks" do
|
57
|
-
it "should call configure after it calls install"
|
58
|
-
end
|
59
57
|
end
|
60
58
|
describe "new configuration style (build scripts)" do
|
61
59
|
before(:each) do
|
62
60
|
@tempfile = Tempfile.new("/tmp")
|
63
61
|
Kernel.stub!(:system).and_return true
|
62
|
+
stub_option_load
|
64
63
|
end
|
65
64
|
# it "should try to run the scp build file" do
|
66
65
|
# Master.should_receive(:build_scp_instances_script_for).with(@instance).and_return @tempfile
|
@@ -81,27 +80,37 @@ describe "remote instance" do
|
|
81
80
|
describe "with a public ip" do
|
82
81
|
before(:each) do
|
83
82
|
Application.stub!(:public_ip).and_return "127.0.0.1"
|
83
|
+
Master.stub!(:new).and_return @master
|
84
|
+
@master.stub!(:nodes).and_return [@instance]
|
85
|
+
end
|
86
|
+
it "should call configure on the instances after configure_cloud" do
|
87
|
+
@instance.should_receive(:configure).and_return true
|
88
|
+
@master.configure_cloud
|
84
89
|
end
|
85
90
|
it "should run associate_address if there is a public_ip set in the Application.options" do
|
86
91
|
@instance.should_receive(:associate_address_with).with(Application.public_ip, @instance.instance_id).and_return true
|
87
|
-
@
|
92
|
+
@master.configure_cloud
|
88
93
|
end
|
89
94
|
it "should not run associate_address_with if the public_ip is empty" do
|
90
95
|
Application.stub!(:public_ip).and_return ""
|
91
96
|
@instance.should_not_receive(:associate_address_with)
|
92
|
-
@
|
97
|
+
@master.configure_cloud
|
93
98
|
end
|
94
99
|
|
95
100
|
end
|
96
101
|
end
|
97
102
|
describe "in failover" do
|
103
|
+
before(:each) do
|
104
|
+
Master.stub!(:new).and_return @master
|
105
|
+
end
|
98
106
|
it "should be able to become master " do
|
99
107
|
@instance.stub!(:configure).and_return true
|
100
108
|
@instance.number = 1
|
101
109
|
@instance.become_master
|
102
110
|
@instance.number.should == 0
|
103
111
|
end
|
104
|
-
it "should reconfigure after becoming master" do
|
112
|
+
it "should reconfigure after becoming master" do
|
113
|
+
@master.should_receive(:configure_cloud).and_return true
|
105
114
|
@instance.should_receive(:configure).and_return true
|
106
115
|
@instance.become_master
|
107
116
|
end
|
@@ -124,6 +133,9 @@ describe "remote instance" do
|
|
124
133
|
end
|
125
134
|
|
126
135
|
describe "when installing the poolparty software" do
|
136
|
+
before(:each) do
|
137
|
+
@instance.stub!(:run_now).and_return ""
|
138
|
+
end
|
127
139
|
it "should be able to detect if the stack_installed? == false" do
|
128
140
|
@instance.stack_installed?.should == false
|
129
141
|
end
|
@@ -133,17 +145,5 @@ describe "remote instance" do
|
|
133
145
|
end
|
134
146
|
end
|
135
147
|
|
136
|
-
describe "when installing plugins" do
|
137
|
-
it "should call update_plugins after become master" do
|
138
|
-
@instance.should_receive(:update_plugins).at_least(1)
|
139
|
-
@instance.configure
|
140
|
-
end
|
141
|
-
it "should try to install the plugins from the git repos of the installed plugins" do
|
142
|
-
PluginManager.remove_plugin "pool-party-plugins"
|
143
|
-
PluginManager.install_plugin "git@github.com:auser/pool-party-plugins.git"
|
144
|
-
@instance.update_plugin_string.should == ["git@github.com:auser/pool-party-plugins.git"]
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
148
|
end
|
149
149
|
end
|
data/spec/remoter_spec.rb
CHANGED
@@ -7,8 +7,10 @@ class TestRemote
|
|
7
7
|
end
|
8
8
|
describe "Remoter" do
|
9
9
|
before(:each) do
|
10
|
+
stub_option_load
|
11
|
+
|
10
12
|
@instance = RemoteInstance.new
|
11
|
-
@master = Master.new
|
13
|
+
@master = Master.new
|
12
14
|
|
13
15
|
@remoter = TestRemote.new
|
14
16
|
@remoter.stub!(:put).and_return "true"
|
@@ -20,7 +22,7 @@ describe "Remoter" do
|
|
20
22
|
Application.stub!(:username).and_return "root"
|
21
23
|
end
|
22
24
|
it "should have an ssh method that corresponds to ssm with the keypair" do
|
23
|
-
|
25
|
+
RemoteInstance.ssh_string.should == "ssh -i /Users/id_rsa-app -o StrictHostKeyChecking=no -l root"
|
24
26
|
end
|
25
27
|
it "should have a list of ssh_tasks" do
|
26
28
|
@remoter.ssh_tasks.should == []
|
data/spec/remoting_spec.rb
CHANGED
@@ -3,6 +3,7 @@ require File.dirname(__FILE__) + "/helpers/ec2_mock"
|
|
3
3
|
|
4
4
|
describe "Master remoting: " do
|
5
5
|
before(:each) do
|
6
|
+
stub_option_load
|
6
7
|
Kernel.stub!(:system).and_return true
|
7
8
|
Application.stub!(:environment).and_return("test") # So it doesn't daemonize
|
8
9
|
Application.stub!(:minimum_instances).and_return(2)
|
@@ -11,7 +12,7 @@ describe "Master remoting: " do
|
|
11
12
|
Application.stub!(:verbose).and_return(false) # Turn off messaging
|
12
13
|
|
13
14
|
@master = Master.new
|
14
|
-
@master.launch_new_instance!
|
15
|
+
@master.launch_new_instance!
|
15
16
|
end
|
16
17
|
describe "starting" do
|
17
18
|
before(:each) do
|
@@ -61,12 +62,19 @@ describe "Master remoting: " do
|
|
61
62
|
end
|
62
63
|
end
|
63
64
|
describe "configuring" do
|
65
|
+
before(:each) do
|
66
|
+
@instance = RemoteInstance.new
|
67
|
+
@instance.stub!(:ip).and_return "127.0.0.1"
|
68
|
+
@instance.stub!(:name).and_return "node0"
|
69
|
+
Master.stub!(:new).and_return @master
|
70
|
+
@master.stub!(:nodes).and_return [@instance]
|
71
|
+
end
|
64
72
|
it "should call configure on all of the nodes when calling reconfigure_running_instances" do
|
65
73
|
@master.nodes.each {|a|
|
66
74
|
a.stub!(:status).and_return("running")
|
67
75
|
a.should_receive(:configure).and_return true
|
68
76
|
}
|
69
|
-
@master.
|
77
|
+
@master.configure_cloud
|
70
78
|
end
|
71
79
|
it "should call restart_with_monit on all of the nodes when calling restart_running_instances_services" do
|
72
80
|
@master.nodes.each {|a| a.should_receive(:restart_with_monit).and_return true }
|
data/spec/scheduler_spec.rb
CHANGED
@@ -64,12 +64,6 @@ describe "Scheduler" do
|
|
64
64
|
@test.run_thread_list
|
65
65
|
@test._tasker.tasks.size.should == 0
|
66
66
|
end
|
67
|
-
describe "daemonizing" do
|
68
|
-
it "should detached the process" do
|
69
|
-
Process.should_receive(:detach).once
|
70
|
-
@test.daemonize
|
71
|
-
end
|
72
|
-
end
|
73
67
|
end
|
74
68
|
end
|
75
69
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -16,6 +16,19 @@ extend PoolParty
|
|
16
16
|
Application.environment = "test"
|
17
17
|
Application.verbose = false
|
18
18
|
|
19
|
+
def stub_option_load
|
20
|
+
@str=<<-EOS
|
21
|
+
:access_key:
|
22
|
+
3.14159
|
23
|
+
EOS
|
24
|
+
@sio = StringIO.new
|
25
|
+
StringIO.stub!(:new).and_return @sio
|
26
|
+
Application.stub!(:open).with("http://169.254.169.254/latest/user-data").and_return @sio
|
27
|
+
@sio.stub!(:read).and_return @str
|
28
|
+
PoolParty.stub!(:timer).and_return Timeout
|
29
|
+
PoolParty.timer.stub!(:timeout).and_return lambda {YAML.load(open("http://169.254.169.254/latest/user-data").read)}
|
30
|
+
end
|
31
|
+
|
19
32
|
def wait_launch(time=5)
|
20
33
|
pid = fork {yield}
|
21
34
|
wait time
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auser-poolparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Lerner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
12
|
-
date: 2008-06-20 00:00:00 -07:00
|
10
|
+
cert_chain:
|
11
|
+
date: 2008-06-28 00:00:00 -07:00
|
13
12
|
default_executable:
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
@@ -31,7 +30,7 @@ dependencies:
|
|
31
30
|
version: "0"
|
32
31
|
version:
|
33
32
|
- !ruby/object:Gem::Dependency
|
34
|
-
name: aska
|
33
|
+
name: auser-aska
|
35
34
|
version_requirement:
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
@@ -48,17 +47,41 @@ dependencies:
|
|
48
47
|
- !ruby/object:Gem::Version
|
49
48
|
version: "0"
|
50
49
|
version:
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: crafterm-sprinkle
|
52
|
+
version_requirement:
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
58
|
+
version:
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: SystemTimer
|
61
|
+
version_requirement:
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: "0"
|
67
|
+
version:
|
51
68
|
description: Run your entire application off EC2, managed and auto-scaling
|
52
69
|
email: ari.lerner@citrusbyte.com
|
53
70
|
executables:
|
54
71
|
- instance
|
55
72
|
- pool
|
73
|
+
- poolnotify
|
56
74
|
extensions: []
|
57
75
|
|
58
76
|
extra_rdoc_files:
|
77
|
+
- CHANGELOG
|
78
|
+
- README.txt
|
79
|
+
- bin
|
59
80
|
- bin/instance
|
60
81
|
- bin/pool
|
61
|
-
-
|
82
|
+
- bin/poolnotify
|
83
|
+
- lib
|
84
|
+
- lib/core
|
62
85
|
- lib/core/array.rb
|
63
86
|
- lib/core/exception.rb
|
64
87
|
- lib/core/float.rb
|
@@ -69,20 +92,29 @@ extra_rdoc_files:
|
|
69
92
|
- lib/core/proc.rb
|
70
93
|
- lib/core/string.rb
|
71
94
|
- lib/core/time.rb
|
95
|
+
- lib/modules
|
72
96
|
- lib/modules/callback.rb
|
73
97
|
- lib/modules/ec2_wrapper.rb
|
98
|
+
- lib/modules/file_writer.rb
|
74
99
|
- lib/modules/safe_instance.rb
|
100
|
+
- lib/modules/sprinkle_overrides.rb
|
75
101
|
- lib/modules/vlad_override.rb
|
102
|
+
- lib/poolparty
|
103
|
+
- lib/poolparty.rb
|
76
104
|
- lib/poolparty/application.rb
|
77
105
|
- lib/poolparty/init.rb
|
78
106
|
- lib/poolparty/master.rb
|
107
|
+
- lib/poolparty/monitors
|
108
|
+
- lib/poolparty/monitors.rb
|
79
109
|
- lib/poolparty/monitors/cpu.rb
|
80
110
|
- lib/poolparty/monitors/memory.rb
|
81
111
|
- lib/poolparty/monitors/web.rb
|
82
|
-
- lib/poolparty/monitors.rb
|
83
112
|
- lib/poolparty/optioner.rb
|
84
113
|
- lib/poolparty/plugin.rb
|
85
114
|
- lib/poolparty/plugin_manager.rb
|
115
|
+
- lib/poolparty/provider
|
116
|
+
- lib/poolparty/provider.rb
|
117
|
+
- lib/poolparty/provider/packages
|
86
118
|
- lib/poolparty/provider/packages/essential.rb
|
87
119
|
- lib/poolparty/provider/packages/git.rb
|
88
120
|
- lib/poolparty/provider/packages/haproxy.rb
|
@@ -92,40 +124,49 @@ extra_rdoc_files:
|
|
92
124
|
- lib/poolparty/provider/packages/ruby.rb
|
93
125
|
- lib/poolparty/provider/packages/s3fuse.rb
|
94
126
|
- lib/poolparty/provider/provider.rb
|
95
|
-
- lib/poolparty/provider.rb
|
96
127
|
- lib/poolparty/remote_instance.rb
|
97
128
|
- lib/poolparty/remoter.rb
|
98
129
|
- lib/poolparty/remoting.rb
|
99
130
|
- lib/poolparty/scheduler.rb
|
131
|
+
- lib/poolparty/tasks
|
132
|
+
- lib/poolparty/tasks.rb
|
100
133
|
- lib/poolparty/tasks/cloud.rake
|
101
134
|
- lib/poolparty/tasks/development.rake
|
102
135
|
- lib/poolparty/tasks/ec2.rake
|
103
136
|
- lib/poolparty/tasks/instance.rake
|
137
|
+
- lib/poolparty/tasks/package.rake
|
104
138
|
- lib/poolparty/tasks/plugins.rake
|
105
139
|
- lib/poolparty/tasks/server.rake
|
106
|
-
- lib/
|
107
|
-
- lib/poolparty/tmp.rb
|
108
|
-
- lib/poolparty.rb
|
140
|
+
- lib/s3
|
109
141
|
- lib/s3/s3_object_store_folders.rb
|
110
|
-
- README.txt
|
111
142
|
files:
|
112
|
-
-
|
143
|
+
- CHANGELOG
|
144
|
+
- README.txt
|
145
|
+
- Rakefile
|
146
|
+
- assets
|
147
|
+
- assets/clouds.png
|
148
|
+
- bin
|
113
149
|
- bin/instance
|
114
150
|
- bin/pool
|
115
|
-
-
|
151
|
+
- bin/poolnotify
|
152
|
+
- config
|
116
153
|
- config/cloud_master_takeover
|
117
154
|
- config/create_proxy_ami.sh
|
118
155
|
- config/haproxy.conf
|
119
156
|
- config/heartbeat.conf
|
120
157
|
- config/heartbeat_authkeys.conf
|
158
|
+
- config/installers
|
121
159
|
- config/installers/ubuntu_install.sh
|
160
|
+
- config/monit
|
161
|
+
- config/monit.conf
|
122
162
|
- config/monit/haproxy.monit.conf
|
123
163
|
- config/monit/nginx.monit.conf
|
124
|
-
- config/monit.conf
|
125
164
|
- config/nginx.conf
|
126
165
|
- config/reconfigure_instances_script.sh
|
127
166
|
- config/sample-config.yml
|
128
167
|
- config/scp_instances_script.sh
|
168
|
+
- lib
|
169
|
+
- lib/core
|
129
170
|
- lib/core/array.rb
|
130
171
|
- lib/core/exception.rb
|
131
172
|
- lib/core/float.rb
|
@@ -136,20 +177,29 @@ files:
|
|
136
177
|
- lib/core/proc.rb
|
137
178
|
- lib/core/string.rb
|
138
179
|
- lib/core/time.rb
|
180
|
+
- lib/modules
|
139
181
|
- lib/modules/callback.rb
|
140
182
|
- lib/modules/ec2_wrapper.rb
|
183
|
+
- lib/modules/file_writer.rb
|
141
184
|
- lib/modules/safe_instance.rb
|
185
|
+
- lib/modules/sprinkle_overrides.rb
|
142
186
|
- lib/modules/vlad_override.rb
|
187
|
+
- lib/poolparty
|
188
|
+
- lib/poolparty.rb
|
143
189
|
- lib/poolparty/application.rb
|
144
190
|
- lib/poolparty/init.rb
|
145
191
|
- lib/poolparty/master.rb
|
192
|
+
- lib/poolparty/monitors
|
193
|
+
- lib/poolparty/monitors.rb
|
146
194
|
- lib/poolparty/monitors/cpu.rb
|
147
195
|
- lib/poolparty/monitors/memory.rb
|
148
196
|
- lib/poolparty/monitors/web.rb
|
149
|
-
- lib/poolparty/monitors.rb
|
150
197
|
- lib/poolparty/optioner.rb
|
151
198
|
- lib/poolparty/plugin.rb
|
152
199
|
- lib/poolparty/plugin_manager.rb
|
200
|
+
- lib/poolparty/provider
|
201
|
+
- lib/poolparty/provider.rb
|
202
|
+
- lib/poolparty/provider/packages
|
153
203
|
- lib/poolparty/provider/packages/essential.rb
|
154
204
|
- lib/poolparty/provider/packages/git.rb
|
155
205
|
- lib/poolparty/provider/packages/haproxy.rb
|
@@ -159,31 +209,36 @@ files:
|
|
159
209
|
- lib/poolparty/provider/packages/ruby.rb
|
160
210
|
- lib/poolparty/provider/packages/s3fuse.rb
|
161
211
|
- lib/poolparty/provider/provider.rb
|
162
|
-
- lib/poolparty/provider.rb
|
163
212
|
- lib/poolparty/remote_instance.rb
|
164
213
|
- lib/poolparty/remoter.rb
|
165
214
|
- lib/poolparty/remoting.rb
|
166
215
|
- lib/poolparty/scheduler.rb
|
216
|
+
- lib/poolparty/tasks
|
217
|
+
- lib/poolparty/tasks.rb
|
167
218
|
- lib/poolparty/tasks/cloud.rake
|
168
219
|
- lib/poolparty/tasks/development.rake
|
169
220
|
- lib/poolparty/tasks/ec2.rake
|
170
221
|
- lib/poolparty/tasks/instance.rake
|
222
|
+
- lib/poolparty/tasks/package.rake
|
171
223
|
- lib/poolparty/tasks/plugins.rake
|
172
224
|
- lib/poolparty/tasks/server.rake
|
173
|
-
- lib/
|
174
|
-
- lib/poolparty/tmp.rb
|
175
|
-
- lib/poolparty.rb
|
225
|
+
- lib/s3
|
176
226
|
- lib/s3/s3_object_store_folders.rb
|
177
|
-
-
|
178
|
-
- misc/basics_tutorial.txt
|
179
|
-
- Rakefile
|
180
|
-
- README.txt
|
227
|
+
- spec
|
181
228
|
- spec/application_spec.rb
|
182
229
|
- spec/callback_spec.rb
|
183
230
|
- spec/core_spec.rb
|
231
|
+
- spec/ec2_wrapper_spec.rb
|
232
|
+
- spec/file_writer_spec.rb
|
233
|
+
- spec/files
|
234
|
+
- spec/files/describe_response
|
235
|
+
- spec/files/multi_describe_response
|
236
|
+
- spec/files/remote_desc_response
|
237
|
+
- spec/helpers
|
184
238
|
- spec/helpers/ec2_mock.rb
|
185
239
|
- spec/kernel_spec.rb
|
186
240
|
- spec/master_spec.rb
|
241
|
+
- spec/monitors
|
187
242
|
- spec/monitors/cpu_monitor_spec.rb
|
188
243
|
- spec/monitors/memory_spec.rb
|
189
244
|
- spec/monitors/misc_monitor_spec.rb
|
@@ -200,34 +255,10 @@ files:
|
|
200
255
|
- spec/scheduler_spec.rb
|
201
256
|
- spec/spec_helper.rb
|
202
257
|
- spec/string_spec.rb
|
203
|
-
- tmp/node0-pool-party-ha.cf
|
204
|
-
- tmp/node0-pool-party-haresources
|
205
|
-
- tmp/node0-pool-party-hosts
|
206
|
-
- tmp/node1-pool-party-ha.cf
|
207
|
-
- tmp/node1-pool-party-haresources
|
208
|
-
- tmp/node1-pool-party-hosts
|
209
|
-
- tmp/pool-party-haproxy.cfg
|
210
|
-
- web/static/conf/nginx.conf
|
211
|
-
- web/static/site/images/balloon.png
|
212
|
-
- web/static/site/images/cb.png
|
213
|
-
- web/static/site/images/clouds.png
|
214
|
-
- web/static/site/images/railsconf_preso_img.png
|
215
|
-
- web/static/site/index.html
|
216
|
-
- web/static/site/javascripts/application.js
|
217
|
-
- web/static/site/javascripts/corner.js
|
218
|
-
- web/static/site/javascripts/jquery-1.2.6.pack.js
|
219
|
-
- web/static/site/misc.html
|
220
|
-
- web/static/site/storage/pool_party_presentation.pdf
|
221
|
-
- web/static/site/stylesheets/application.css
|
222
|
-
- web/static/site/stylesheets/reset.css
|
223
|
-
- web/static/src/layouts/application.haml
|
224
|
-
- web/static/src/pages/index.haml
|
225
|
-
- web/static/src/pages/misc.haml
|
226
|
-
- web/static/src/stylesheets/application.sass
|
227
258
|
- poolparty.gemspec
|
228
259
|
has_rdoc: true
|
229
260
|
homepage: http://blog.citrusbyte.com
|
230
|
-
post_install_message: "
|
261
|
+
post_install_message: "\n \n Get ready to jump in the pool, you just installed PoolParty! (Updated at 05:15PM, 06/28/08)\n\n Please check out the documentation for any questions or check out the google groups at\n http://groups.google.com/group/poolpartyrb\n\n Don't forget to check out the plugin tutorial @ http://poolpartyrb.com for extending PoolParty! \n\n For more information, check http://poolpartyrb.com\n On IRC: \n irc.freenode.net\n #poolpartyrb\n *** Ari Lerner @ <ari.lerner@citrusbyte.com> ***\n "
|
231
262
|
rdoc_options:
|
232
263
|
- --line-numbers
|
233
264
|
- --inline-source
|
@@ -245,14 +276,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
245
276
|
version:
|
246
277
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
247
278
|
requirements:
|
248
|
-
- - "
|
279
|
+
- - "="
|
249
280
|
- !ruby/object:Gem::Version
|
250
|
-
version: "
|
281
|
+
version: "1.2"
|
251
282
|
version:
|
252
283
|
requirements: []
|
253
284
|
|
254
285
|
rubyforge_project: poolparty
|
255
|
-
rubygems_version: 1.0
|
286
|
+
rubygems_version: 1.2.0
|
256
287
|
signing_key:
|
257
288
|
specification_version: 2
|
258
289
|
summary: Run your entire application off EC2, managed and auto-scaling
|