auser-poolparty 0.1.1 → 0.1.2
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 +1 -0
- data/LICENSE +22 -0
- data/{README.txt → README} +1 -0
- data/Rakefile +3 -2
- data/lib/helpers/plugin_spec_helper.rb +1 -1
- data/lib/modules/ec2_wrapper.rb +5 -6
- data/lib/poolparty.rb +2 -2
- data/lib/poolparty/application.rb +9 -11
- data/lib/poolparty/init.rb +1 -1
- data/lib/poolparty/master.rb +8 -1
- data/lib/poolparty/provider.rb +27 -9
- data/lib/poolparty/provider/git.rb +4 -0
- data/lib/poolparty/provider/haproxy.rb +4 -0
- data/lib/poolparty/provider/heartbeat.rb +3 -1
- data/lib/poolparty/provider/rsync.rb +4 -0
- data/lib/poolparty/provider/ruby.rb +46 -9
- data/lib/poolparty/provider/s3fuse.rb +4 -0
- data/lib/poolparty/remote_instance.rb +14 -2
- data/lib/poolparty/tasks/development.rake +17 -12
- data/poolparty.gemspec +11 -10
- data/spec/helpers/ec2_mock.rb +7 -0
- data/spec/lib/{core_spec.rb → core/core_spec.rb} +1 -1
- data/spec/lib/{kernel_spec.rb → core/kernel_spec.rb} +1 -1
- data/spec/lib/{string_spec.rb → core/string_spec.rb} +1 -1
- data/spec/lib/{callback_spec.rb → modules/callback_spec.rb} +1 -1
- data/spec/lib/{file_writer_spec.rb → modules/file_writer_spec.rb} +1 -1
- data/spec/lib/{application_spec.rb → poolparty/application_spec.rb} +21 -5
- data/spec/lib/{ec2_wrapper_spec.rb → poolparty/ec2_wrapper_spec.rb} +26 -3
- data/spec/lib/{master_spec.rb → poolparty/master_spec.rb} +55 -55
- data/spec/lib/{optioner_spec.rb → poolparty/optioner_spec.rb} +1 -1
- data/spec/lib/{plugin_spec.rb → poolparty/plugin_spec.rb} +2 -2
- data/spec/lib/{poolparty_spec.rb → poolparty/poolparty_spec.rb} +1 -1
- data/spec/lib/poolparty/provider_spec.rb +74 -0
- data/spec/lib/{remote_instance_spec.rb → poolparty/remote_instance_spec.rb} +2 -2
- data/spec/lib/{remoter_spec.rb → poolparty/remoter_spec.rb} +2 -2
- data/spec/lib/{remoting_spec.rb → poolparty/remoting_spec.rb} +2 -2
- data/spec/lib/{scheduler_spec.rb → poolparty/scheduler_spec.rb} +1 -1
- data/spec/spec_helper.rb +11 -0
- metadata +30 -27
- data/lib/poolparty/plugin_manager.rb +0 -67
- data/spec/lib/plugin_manager_spec.rb +0 -23
- data/spec/lib/pool_binary_spec.rb +0 -13
- data/spec/lib/provider_spec.rb +0 -72
@@ -1,5 +1,5 @@
|
|
1
|
-
require File.dirname(__FILE__) + '
|
2
|
-
require File.dirname(__FILE__) +
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
require File.dirname(__FILE__) + '/../../helpers/ec2_mock'
|
3
3
|
|
4
4
|
class RemoteInstance
|
5
5
|
def scp(src="", dest="", opts={})
|
@@ -1,5 +1,5 @@
|
|
1
|
-
require File.dirname(__FILE__) + '
|
2
|
-
require File.dirname(__FILE__) +
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
require File.dirname(__FILE__) + '/../../helpers/ec2_mock'
|
3
3
|
|
4
4
|
describe "Master remoting: " do
|
5
5
|
before(:each) do
|
data/spec/spec_helper.rb
CHANGED
@@ -34,6 +34,17 @@ def stub_option_load
|
|
34
34
|
Application.reset!
|
35
35
|
end
|
36
36
|
|
37
|
+
def hide_output
|
38
|
+
begin
|
39
|
+
stdout_sv = STDOUT.dup
|
40
|
+
STDOUT.reopen(File.open((PLATFORM =~ /mswin/ ? "NUL" : "/dev/null"), 'w'))
|
41
|
+
yield if block_given?
|
42
|
+
ensure
|
43
|
+
STDOUT.flush
|
44
|
+
STDOUT.reopen(stdout_sv)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
37
48
|
def wait_launch(time=5)
|
38
49
|
pid = fork {yield}
|
39
50
|
wait time
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auser-poolparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Lerner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
|
-
date: 2008-07-
|
11
|
+
date: 2008-07-30 00:00:00 -07:00
|
12
12
|
default_executable:
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
@@ -48,7 +48,7 @@ dependencies:
|
|
48
48
|
version: "0"
|
49
49
|
version:
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
|
-
name:
|
51
|
+
name: sprinkle
|
52
52
|
version_requirement:
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
@@ -93,7 +93,8 @@ extensions: []
|
|
93
93
|
|
94
94
|
extra_rdoc_files:
|
95
95
|
- CHANGELOG
|
96
|
-
-
|
96
|
+
- LICENSE
|
97
|
+
- README
|
97
98
|
- bin
|
98
99
|
- bin/instance
|
99
100
|
- bin/pool
|
@@ -131,7 +132,6 @@ extra_rdoc_files:
|
|
131
132
|
- lib/poolparty/monitors/web.rb
|
132
133
|
- lib/poolparty/optioner.rb
|
133
134
|
- lib/poolparty/plugin.rb
|
134
|
-
- lib/poolparty/plugin_manager.rb
|
135
135
|
- lib/poolparty/provider
|
136
136
|
- lib/poolparty/provider.rb
|
137
137
|
- lib/poolparty/provider/essential.rb
|
@@ -158,7 +158,8 @@ extra_rdoc_files:
|
|
158
158
|
- lib/s3/s3_object_store_folders.rb
|
159
159
|
files:
|
160
160
|
- CHANGELOG
|
161
|
-
-
|
161
|
+
- LICENSE
|
162
|
+
- README
|
162
163
|
- Rakefile
|
163
164
|
- assets
|
164
165
|
- assets/clouds.png
|
@@ -215,7 +216,6 @@ files:
|
|
215
216
|
- lib/poolparty/monitors/web.rb
|
216
217
|
- lib/poolparty/optioner.rb
|
217
218
|
- lib/poolparty/plugin.rb
|
218
|
-
- lib/poolparty/plugin_manager.rb
|
219
219
|
- lib/poolparty/provider
|
220
220
|
- lib/poolparty/provider.rb
|
221
221
|
- lib/poolparty/provider/essential.rb
|
@@ -241,6 +241,7 @@ files:
|
|
241
241
|
- lib/s3
|
242
242
|
- lib/s3/s3_object_store_folders.rb
|
243
243
|
- plugins
|
244
|
+
- poolparty-0.1.2.gem
|
244
245
|
- spec
|
245
246
|
- spec/files
|
246
247
|
- spec/files/describe_response
|
@@ -249,24 +250,26 @@ files:
|
|
249
250
|
- spec/helpers
|
250
251
|
- spec/helpers/ec2_mock.rb
|
251
252
|
- spec/lib
|
252
|
-
- spec/lib/
|
253
|
-
- spec/lib/
|
254
|
-
- spec/lib/
|
255
|
-
- spec/lib/
|
256
|
-
- spec/lib/
|
257
|
-
- spec/lib/
|
258
|
-
- spec/lib/
|
259
|
-
- spec/lib/
|
260
|
-
- spec/lib/
|
261
|
-
- spec/lib/
|
262
|
-
- spec/lib/
|
263
|
-
- spec/lib/
|
264
|
-
- spec/lib/
|
265
|
-
- spec/lib/
|
266
|
-
- spec/lib/
|
267
|
-
- spec/lib/
|
268
|
-
- spec/lib/
|
269
|
-
- spec/lib/
|
253
|
+
- spec/lib/core
|
254
|
+
- spec/lib/core/core_spec.rb
|
255
|
+
- spec/lib/core/kernel_spec.rb
|
256
|
+
- spec/lib/core/string_spec.rb
|
257
|
+
- spec/lib/modules
|
258
|
+
- spec/lib/modules/callback_spec.rb
|
259
|
+
- spec/lib/modules/file_writer_spec.rb
|
260
|
+
- spec/lib/poolparty
|
261
|
+
- spec/lib/poolparty/application_spec.rb
|
262
|
+
- spec/lib/poolparty/ec2_wrapper_spec.rb
|
263
|
+
- spec/lib/poolparty/master_spec.rb
|
264
|
+
- spec/lib/poolparty/optioner_spec.rb
|
265
|
+
- spec/lib/poolparty/plugin_spec.rb
|
266
|
+
- spec/lib/poolparty/poolparty_spec.rb
|
267
|
+
- spec/lib/poolparty/provider_spec.rb
|
268
|
+
- spec/lib/poolparty/remote_instance_spec.rb
|
269
|
+
- spec/lib/poolparty/remoter_spec.rb
|
270
|
+
- spec/lib/poolparty/remoting_spec.rb
|
271
|
+
- spec/lib/poolparty/scheduler_spec.rb
|
272
|
+
- spec/lib/s3
|
270
273
|
- spec/monitors
|
271
274
|
- spec/monitors/cpu_monitor_spec.rb
|
272
275
|
- spec/monitors/memory_spec.rb
|
@@ -276,14 +279,14 @@ files:
|
|
276
279
|
- poolparty.gemspec
|
277
280
|
has_rdoc: true
|
278
281
|
homepage: http://poolpartyrb.com
|
279
|
-
post_install_message: "\n \n Get ready to jump in the pool, you just installed PoolParty! (Updated at
|
282
|
+
post_install_message: "\n \n Get ready to jump in the pool, you just installed PoolParty! (Updated at 12:37PM, 07/30/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 \n *** Ari Lerner @ <ari.lerner@citrusbyte.com> ***\n "
|
280
283
|
rdoc_options:
|
281
284
|
- --line-numbers
|
282
285
|
- --inline-source
|
283
286
|
- --title
|
284
287
|
- Poolparty
|
285
288
|
- --main
|
286
|
-
- README
|
289
|
+
- README
|
287
290
|
require_paths:
|
288
291
|
- lib
|
289
292
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -1,67 +0,0 @@
|
|
1
|
-
=begin rdoc
|
2
|
-
A convenience method for working with plugins.
|
3
|
-
|
4
|
-
Sits on top of github.
|
5
|
-
=end
|
6
|
-
require "git"
|
7
|
-
module PoolParty
|
8
|
-
def installed_plugins
|
9
|
-
@@installed_plugins ||= PluginManager.extract_git_repos_from_plugin_dirs.uniq
|
10
|
-
end
|
11
|
-
class PluginManager
|
12
|
-
include Callbacks
|
13
|
-
|
14
|
-
def self.install_plugin(location)
|
15
|
-
unless File.directory?(plugin_directory(location))
|
16
|
-
begin
|
17
|
-
Git.clone(location, plugin_directory(location))
|
18
|
-
reset!
|
19
|
-
rescue Exception => e
|
20
|
-
puts "There was an error"
|
21
|
-
puts e
|
22
|
-
end
|
23
|
-
else
|
24
|
-
puts "Plugin already installed"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.remove_plugin(name)
|
29
|
-
Dir["#{PoolParty.root_dir}/#{PoolParty.plugin_dir}/*"].select {|a| a =~ /#{name}/}.each do |dir|
|
30
|
-
FileUtils.rm_rf dir
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.scan
|
35
|
-
returning Array.new do |a|
|
36
|
-
plugin_dirs.each do |plugin|
|
37
|
-
a << File.basename(plugin)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.extract_git_repos_from_plugin_dirs
|
43
|
-
returning [] do |arr|
|
44
|
-
plugin_dirs.each do |dir|
|
45
|
-
begin
|
46
|
-
arr << open(File.join(dir, ".git", "config")).read[/url[\s]*=[\s](.*)/,1]
|
47
|
-
rescue Exception => e
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.plugin_dirs
|
54
|
-
Dir["#{PoolParty.user_dir}/plugin/*"]
|
55
|
-
end
|
56
|
-
|
57
|
-
def self.plugin_directory(path)
|
58
|
-
File.join(base_plugin_dir, File.basename(path, File.extname(path)))
|
59
|
-
end
|
60
|
-
def self.create_plugin_directory
|
61
|
-
FileUtils.mkdir_p base_plugin_dir rescue ""
|
62
|
-
end
|
63
|
-
def self.base_plugin_dir
|
64
|
-
File.join(PoolParty.root_dir, "plugin")
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
-
|
3
|
-
describe "Plugin manager" do
|
4
|
-
before(:each) do
|
5
|
-
FileUtils.stub!(:mkdir_p).and_return true
|
6
|
-
Dir["./spec/../lib/../plugin/*"].each {|a| FileUtils.rm_rf a}
|
7
|
-
Git.stub!(:clone).and_return true
|
8
|
-
PluginManager.stub!(:extract_git_repos_from_plugin_dirs).and_return %w(git@github.com:auser/poolparty-plugins.git)
|
9
|
-
end
|
10
|
-
it "should git clone the directory when it is installing a plugin" do
|
11
|
-
File.stub!(:directory?).and_return false
|
12
|
-
Git.should_receive(:clone).with("git@github.com:auser/poolparty.git", "/Users/auser/Sites/work/citrusbyte/internal/gems/pool-party/pool/plugin/poolparty").and_return true
|
13
|
-
PluginManager.install_plugin "git@github.com:auser/poolparty.git"
|
14
|
-
end
|
15
|
-
it "should keep a list of the installed plugin locations" do
|
16
|
-
PluginManager.should_receive(:install_plugin).and_return true
|
17
|
-
PluginManager.install_plugin "git@github.com:auser/poolparty-plugins.git"
|
18
|
-
PoolParty.installed_plugins.should == ["git@github.com:auser/poolparty-plugins.git"]
|
19
|
-
end
|
20
|
-
it "should be able to rescan the plugin directory and tell which plugins are installed"
|
21
|
-
it "should be able to remove a plugin based on the name"
|
22
|
-
it "should be able to extract the git repos from the .git/config file"
|
23
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
-
|
3
|
-
describe "Pool binary" do
|
4
|
-
describe "running" do
|
5
|
-
before(:each) do
|
6
|
-
stub_option_load
|
7
|
-
end
|
8
|
-
it "should call PoolParty.options" do
|
9
|
-
options = PoolParty.options(:optsparse => {:banner => "Usage: pool [OPTIONS] {start | stop | list | maintain | restart}" })
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
data/spec/lib/provider_spec.rb
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
-
require File.dirname(__FILE__) + "/../helpers/ec2_mock"
|
3
|
-
|
4
|
-
describe "Provider" do
|
5
|
-
before(:each) do
|
6
|
-
stub_option_load
|
7
|
-
Sprinkle::Script.stub!(:sprinkle).and_return true
|
8
|
-
@ips = ["127.0.0.1"]
|
9
|
-
Master.stub!(:cloud_ips).and_return @ips
|
10
|
-
end
|
11
|
-
it "should load the packages in the package directory" do
|
12
|
-
Dir.should_receive(:[]).and_return []
|
13
|
-
Provider.new.load_packages
|
14
|
-
end
|
15
|
-
it "should load the packages defined in the user directory"
|
16
|
-
describe "running" do
|
17
|
-
describe "server packages" do
|
18
|
-
before(:each) do
|
19
|
-
@provider = Provider.new
|
20
|
-
@str = "new"
|
21
|
-
@str.stub!(:process).and_return true
|
22
|
-
@provider.stub!(:set_start_with_sprinkle).and_return @str
|
23
|
-
Provider.stub!(:new).and_return @provider
|
24
|
-
Master.stub!(:cloud_ips).and_return ["127.0.0.1"]
|
25
|
-
end
|
26
|
-
it "should use the loaded packages to install" do
|
27
|
-
@provider.should_receive(:load_packages).and_return []
|
28
|
-
@provider.install_poolparty
|
29
|
-
end
|
30
|
-
it "should load the install script when installing" do
|
31
|
-
@provider.should_receive(:set_start_with_sprinkle).and_return true
|
32
|
-
@provider.install_poolparty
|
33
|
-
end
|
34
|
-
end
|
35
|
-
describe "user packages" do
|
36
|
-
describe "defining" do
|
37
|
-
before(:each) do
|
38
|
-
Provider.define_custom_package(:sprinkle) do
|
39
|
-
package :sprinkle, :provides => :package do
|
40
|
-
description 'Sprinkle'
|
41
|
-
apt %w( sprinkle )
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
it "should be able to define user packages with blocks and pass those into the user_packages" do
|
46
|
-
Provider.user_packages.size.should == 1
|
47
|
-
end
|
48
|
-
it "should define the user packages as strings" do
|
49
|
-
Provider.user_packages.first.class.should == Proc
|
50
|
-
end
|
51
|
-
end
|
52
|
-
describe "defining custom packages" do
|
53
|
-
before(:each) do
|
54
|
-
Provider.reset!
|
55
|
-
Provider.define_custom_package(:custom) do
|
56
|
-
<<-EOE
|
57
|
-
package :custom do
|
58
|
-
description 'custom packages'
|
59
|
-
end
|
60
|
-
EOE
|
61
|
-
end
|
62
|
-
end
|
63
|
-
it "should be able to define a custom package with a name" do
|
64
|
-
Provider.user_packages.size.should > 1
|
65
|
-
end
|
66
|
-
it "should have the name of the custom package built in" do
|
67
|
-
Provider.user_install_packages.sort {|a,b| a.to_s <=> b.to_s }.should == [:custom, :sprinkle]
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|