auser-poolparty 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/CHANGELOG +8 -0
  2. data/README.txt +10 -10
  3. data/Rakefile +30 -21
  4. data/{web/static/site/images → assets}/clouds.png +0 -0
  5. data/bin/instance +39 -34
  6. data/bin/pool +44 -29
  7. data/bin/poolnotify +34 -0
  8. data/config/haproxy.conf +1 -1
  9. data/config/heartbeat_authkeys.conf +1 -1
  10. data/config/monit/haproxy.monit.conf +2 -1
  11. data/config/nginx.conf +1 -1
  12. data/config/reconfigure_instances_script.sh +28 -9
  13. data/config/sample-config.yml +1 -1
  14. data/lib/core/string.rb +3 -0
  15. data/lib/modules/ec2_wrapper.rb +47 -22
  16. data/lib/modules/file_writer.rb +38 -0
  17. data/lib/modules/sprinkle_overrides.rb +32 -0
  18. data/lib/modules/vlad_override.rb +5 -4
  19. data/lib/poolparty.rb +14 -10
  20. data/lib/poolparty/application.rb +33 -19
  21. data/lib/poolparty/master.rb +227 -105
  22. data/lib/poolparty/optioner.rb +8 -4
  23. data/lib/poolparty/plugin.rb +34 -4
  24. data/lib/poolparty/provider/packages/haproxy.rb +0 -15
  25. data/lib/poolparty/provider/packages/heartbeat.rb +1 -1
  26. data/lib/poolparty/provider/packages/ruby.rb +6 -6
  27. data/lib/poolparty/provider/packages/s3fuse.rb +9 -2
  28. data/lib/poolparty/provider/provider.rb +65 -25
  29. data/lib/poolparty/remote_instance.rb +95 -74
  30. data/lib/poolparty/remoter.rb +48 -37
  31. data/lib/poolparty/remoting.rb +41 -17
  32. data/lib/poolparty/scheduler.rb +4 -4
  33. data/lib/poolparty/tasks.rb +1 -1
  34. data/lib/poolparty/tasks/package.rake +53 -0
  35. data/lib/poolparty/tasks/plugins.rake +1 -1
  36. data/poolparty.gemspec +50 -58
  37. data/spec/application_spec.rb +28 -0
  38. data/spec/core_spec.rb +9 -0
  39. data/spec/ec2_wrapper_spec.rb +87 -0
  40. data/spec/file_writer_spec.rb +73 -0
  41. data/spec/files/describe_response +37 -0
  42. data/spec/files/multi_describe_response +69 -0
  43. data/spec/files/remote_desc_response +37 -0
  44. data/spec/helpers/ec2_mock.rb +3 -0
  45. data/spec/master_spec.rb +302 -78
  46. data/spec/monitors/cpu_monitor_spec.rb +2 -1
  47. data/spec/monitors/memory_spec.rb +1 -0
  48. data/spec/monitors/misc_monitor_spec.rb +1 -0
  49. data/spec/monitors/web_spec.rb +1 -0
  50. data/spec/optioner_spec.rb +12 -0
  51. data/spec/plugin_manager_spec.rb +10 -10
  52. data/spec/plugin_spec.rb +6 -3
  53. data/spec/pool_binary_spec.rb +3 -0
  54. data/spec/poolparty_spec.rb +12 -7
  55. data/spec/provider_spec.rb +1 -0
  56. data/spec/remote_instance_spec.rb +18 -18
  57. data/spec/remoter_spec.rb +4 -2
  58. data/spec/remoting_spec.rb +10 -2
  59. data/spec/scheduler_spec.rb +0 -6
  60. data/spec/spec_helper.rb +13 -0
  61. metadata +83 -52
  62. data/Manifest +0 -115
  63. data/lib/poolparty/tmp.rb +0 -46
  64. data/misc/basics_tutorial.txt +0 -142
  65. data/web/static/conf/nginx.conf +0 -22
  66. data/web/static/site/images/balloon.png +0 -0
  67. data/web/static/site/images/cb.png +0 -0
  68. data/web/static/site/images/railsconf_preso_img.png +0 -0
  69. data/web/static/site/index.html +0 -71
  70. data/web/static/site/javascripts/application.js +0 -3
  71. data/web/static/site/javascripts/corner.js +0 -178
  72. data/web/static/site/javascripts/jquery-1.2.6.pack.js +0 -11
  73. data/web/static/site/misc.html +0 -42
  74. data/web/static/site/storage/pool_party_presentation.pdf +0 -0
  75. data/web/static/site/stylesheets/application.css +0 -100
  76. data/web/static/site/stylesheets/reset.css +0 -17
  77. data/web/static/src/layouts/application.haml +0 -25
  78. data/web/static/src/pages/index.haml +0 -25
  79. data/web/static/src/pages/misc.haml +0 -5
  80. data/web/static/src/stylesheets/application.sass +0 -100
@@ -3,7 +3,8 @@ require "lib/poolparty/monitors/cpu"
3
3
 
4
4
  describe "monitors" do
5
5
  describe "when included" do
6
- before(:each) do
6
+ before(:each) do
7
+ stub_option_load
7
8
  @master = Master.new
8
9
  @instance = RemoteInstance.new
9
10
  end
@@ -4,6 +4,7 @@ require "lib/poolparty/monitors/memory"
4
4
  describe "monitors" do
5
5
  describe "when included" do
6
6
  before(:each) do
7
+ stub_option_load
7
8
  @master = Master.new
8
9
  @instance = RemoteInstance.new
9
10
  end
@@ -18,6 +18,7 @@ PoolParty.register_monitor Database
18
18
  describe "monitors (random, to spec the inclusion)" do
19
19
  describe "when included" do
20
20
  before(:each) do
21
+ stub_option_load
21
22
  @master = Master.new
22
23
  @instance = RemoteInstance.new
23
24
  end
@@ -4,6 +4,7 @@ require "lib/poolparty/monitors/web"
4
4
  describe "monitors" do
5
5
  describe "when included" do
6
6
  before(:each) do
7
+ stub_option_load
7
8
  Application.stub!(:client_port).and_return 8001
8
9
  @master = Master.new
9
10
  @instance = RemoteInstance.new
@@ -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
@@ -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/pool-party.git", "/Users/auser/Sites/work/citrusbyte/internal/gems/pool-party/pool/vendor/pool-party").and_return true
11
- PluginManager.install_plugin "git@github.com:auser/pool-party.git"
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/pool-party-plugins.git"
15
- PoolParty.installed_plugins.should == ["git@github.com:auser/pool-party-plugins.git"]
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/pool-party-plugins.git"
19
- PluginManager.scan.should == %w(pool-party-plugins)
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/pool-party-plugins.git"
23
- PluginManager.remove_plugin "pool-party-plugins"
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/pool-party-plugins.git"
27
+ PluginManager.install_plugin "git@github.com:auser/poolparty-plugins.git"
28
28
  PoolParty.reset!
29
- PoolParty.installed_plugins.should == ["git@github.com:auser/pool-party-plugins.git"]
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
- before_configure :echo_hosts
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
- @instance.configure
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
- @instance.configure
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
@@ -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
@@ -1,15 +1,20 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
3
  describe "Application options" do
4
- it "should parse and use a config file if it is given for the options" do
5
- YAML.should_receive(:load).and_return({:config_file => "config/sample-config.yml"})
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
@@ -2,6 +2,7 @@ require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
3
  describe "Provider" do
4
4
  before(:each) do
5
+ stub_option_load
5
6
  @ips = ["127.0.0.1"]
6
7
  end
7
8
  it "should be able to make a roles from the ips" do
@@ -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
- @instance.configure
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
- @instance.configure
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
- @remoter.ssh_string.should == "ssh -i /Users/id_rsa-app -o StrictHostKeyChecking=no"
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 == []
@@ -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.reconfigure_running_instances
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 }
@@ -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.8
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
- - CHANGELOG
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/poolparty/tasks.rb
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
- - archives/ruby-1.8.6-p111.tar.gz
143
+ - CHANGELOG
144
+ - README.txt
145
+ - Rakefile
146
+ - assets
147
+ - assets/clouds.png
148
+ - bin
113
149
  - bin/instance
114
150
  - bin/pool
115
- - CHANGELOG
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/poolparty/tasks.rb
174
- - lib/poolparty/tmp.rb
175
- - lib/poolparty.rb
225
+ - lib/s3
176
226
  - lib/s3/s3_object_store_folders.rb
177
- - Manifest
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: " Thanks for installing PoolParty!\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 plugins for extending PoolParty!\n \n For more information, check http://poolpartyrb.com\n *** Ari Lerner @ <ari.lerner@citrusbyte.com> ***\n"
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: "0"
281
+ version: "1.2"
251
282
  version:
252
283
  requirements: []
253
284
 
254
285
  rubyforge_project: poolparty
255
- rubygems_version: 1.0.1
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