auser-poolparty 0.2.89 → 0.2.90
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +3 -0
- data/PostInstall.txt +1 -1
- data/bin/cloud-add-access +1 -1
- data/bin/server-build-messenger +2 -1
- data/examples/deploy.rb +5 -0
- data/generators/poolspec/poolspec_generator.rb +1 -1
- data/lib/poolparty.rb +9 -5
- data/lib/poolparty/base_packages/haproxy.rb +3 -3
- data/lib/poolparty/base_packages/poolparty.rb +2 -1
- data/lib/poolparty/capistrano.rb +46 -3
- data/lib/poolparty/capistrano/cloud_tasks.rb +10 -0
- data/lib/poolparty/core/kernel.rb +18 -0
- data/lib/poolparty/core/object.rb +1 -1
- data/lib/poolparty/core/string.rb +3 -0
- data/lib/poolparty/helpers/binary.rb +11 -10
- data/lib/poolparty/helpers/loading.rb +4 -0
- data/lib/poolparty/helpers/optioner.rb +1 -1
- data/lib/poolparty/modules/cloud_resourcer.rb +10 -13
- data/lib/poolparty/net/remote_instance.rb +2 -2
- data/lib/poolparty/net/remoter_base.rb +4 -0
- data/lib/poolparty/poolparty/base.rb +1 -2
- data/lib/poolparty/poolparty/pool.rb +6 -1
- data/lib/poolparty/provisioners/capistrano/capistrano.rb +1 -1
- data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +8 -3
- data/lib/poolparty/provisioners/capistrano/recipies/base.rb +1 -1
- data/lib/poolparty/version.rb +1 -1
- data/poolparty.gemspec +6 -3
- data/spec/poolparty/bin/console_spec.rb +7 -3
- data/spec/poolparty/helpers/binary_spec.rb +14 -1
- data/spec/poolparty/net/remoter_base_spec.rb +3 -0
- data/spec/poolparty/poolparty/script_spec.rb +1 -1
- data/website/index.html +1 -1
- metadata +6 -3
data/Manifest.txt
CHANGED
@@ -54,6 +54,7 @@ bin/server-write-new-nodes
|
|
54
54
|
config/hoe.rb
|
55
55
|
config/requirements.rb
|
56
56
|
examples/basic.rb
|
57
|
+
examples/deploy.rb
|
57
58
|
examples/plugin_without_plugin_directory.rb
|
58
59
|
examples/poolparty.rb
|
59
60
|
generators/poolspec/USAGE
|
@@ -178,6 +179,7 @@ lib/poolparty/base_packages/poolparty.rb
|
|
178
179
|
lib/poolparty/base_packages/ruby.rb
|
179
180
|
lib/poolparty/base_packages/runit.rb
|
180
181
|
lib/poolparty/capistrano.rb
|
182
|
+
lib/poolparty/capistrano/cloud_tasks.rb
|
181
183
|
lib/poolparty/config/postlaunchmessage.txt
|
182
184
|
lib/poolparty/core/array.rb
|
183
185
|
lib/poolparty/core/class.rb
|
@@ -209,6 +211,7 @@ lib/poolparty/extra/deployments.rb
|
|
209
211
|
lib/poolparty/helpers/binary.rb
|
210
212
|
lib/poolparty/helpers/console.rb
|
211
213
|
lib/poolparty/helpers/display.rb
|
214
|
+
lib/poolparty/helpers/loading.rb
|
212
215
|
lib/poolparty/helpers/nice_printer.rb
|
213
216
|
lib/poolparty/helpers/optioner.rb
|
214
217
|
lib/poolparty/helpers/ruberl.rb
|
data/PostInstall.txt
CHANGED
data/bin/cloud-add-access
CHANGED
data/bin/server-build-messenger
CHANGED
data/examples/deploy.rb
ADDED
@@ -21,7 +21,7 @@ class PoolspecGenerator < RubiGen::Base
|
|
21
21
|
m.directory ''
|
22
22
|
BASEDIRS.each { |path| m.directory path }
|
23
23
|
|
24
|
-
m.template "pool_spec_template.erb", "
|
24
|
+
m.template "pool_spec_template.erb", "clouds.pool"
|
25
25
|
# Create stubs
|
26
26
|
# m.template "template.rb", "some_file_after_erb.rb"
|
27
27
|
# m.template_copy_each ["template.rb", "template2.rb"]
|
data/lib/poolparty.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
|
3
1
|
# Load required gems
|
2
|
+
$:.unshift("/Users/auser/Development/open-source/ruby/net-ssh/lib")
|
4
3
|
@required_software = Array.new
|
5
|
-
%w(activesupport ftools logging resolv ruby2ruby digest/sha2
|
4
|
+
%w(rubygems activesupport ftools logging resolv ruby2ruby digest/sha2).each do |lib|
|
6
5
|
begin
|
7
6
|
require lib
|
8
7
|
rescue Exception => e
|
@@ -55,9 +54,12 @@ module PoolParty
|
|
55
54
|
def log
|
56
55
|
@logger ||= make_new_logger
|
57
56
|
end
|
58
|
-
|
57
|
+
def reset!
|
58
|
+
$pools = $clouds = $plugins = @describe_instances = nil
|
59
|
+
end
|
59
60
|
class PoolParty
|
60
61
|
def initialize(spec)
|
62
|
+
reset!
|
61
63
|
Script.inflate(spec) if spec
|
62
64
|
end
|
63
65
|
end
|
@@ -89,4 +91,6 @@ module PoolParty
|
|
89
91
|
require file
|
90
92
|
end
|
91
93
|
end
|
92
|
-
end
|
94
|
+
end
|
95
|
+
|
96
|
+
PoolParty.reset!
|
@@ -6,8 +6,6 @@ module PoolParty
|
|
6
6
|
execute_on_master do
|
7
7
|
has_package({:name => "haproxy"})
|
8
8
|
|
9
|
-
# Service is required
|
10
|
-
has_service(:name => "haproxy", :ensures => "running", :hasrestart => true)
|
11
9
|
# Restart sysklogd after we update the haproxy.log
|
12
10
|
has_service(:name => "sysklogd")
|
13
11
|
|
@@ -25,7 +23,9 @@ module PoolParty
|
|
25
23
|
has_line_in_file("SYSLOGD=\"-r\"", "/etc/default/syslogd")
|
26
24
|
has_line_in_file("local0.* /var/log/haproxy.log", "/etc/syslog.conf", {:notify => get_service("sysklogd")})
|
27
25
|
|
28
|
-
|
26
|
+
has_exec(:name => "reloadhaproxy", :command => "/etc/init.d/haproxy reload", :requires => get_package("haproxy"))
|
27
|
+
# Service is required
|
28
|
+
has_service(:name => "haproxy", :ensures => "running", :hasrestart => true, :notify => get_exec("reloadhaproxy"))
|
29
29
|
|
30
30
|
# These can also be passed in via hash
|
31
31
|
has_remotefile(:name => "/etc/haproxy.cfg") do
|
@@ -59,10 +59,11 @@ module PoolParty
|
|
59
59
|
end
|
60
60
|
|
61
61
|
# execute_on_node do
|
62
|
-
has_cron(:name => "node puppetd runner", :user => Base.user, :minute => "*/
|
62
|
+
has_cron(:name => "node puppetd runner", :user => Base.user, :minute => "*/10") do
|
63
63
|
requires get_gempackage("poolparty")
|
64
64
|
command "/usr/bin/puppetrunner"
|
65
65
|
end
|
66
|
+
has_user(:name => user)
|
66
67
|
# end
|
67
68
|
|
68
69
|
# end
|
data/lib/poolparty/capistrano.rb
CHANGED
@@ -1,10 +1,53 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__)))
|
2
|
+
require "poolparty"
|
3
|
+
require "poolpartycl"
|
4
|
+
|
1
5
|
module PoolParty
|
2
6
|
module Capistrano
|
3
7
|
|
4
|
-
|
5
|
-
|
6
|
-
|
8
|
+
$cap_clouds = {}
|
9
|
+
|
10
|
+
def set_poolparty_file(file)
|
11
|
+
load_pool file
|
12
|
+
end
|
13
|
+
|
14
|
+
def set_cloud(name)
|
15
|
+
cld = PoolParty::Cloud.cloud(name)
|
16
|
+
if cld && !cloud_retrieved_already?
|
17
|
+
$cap_clouds[name] = cld
|
18
|
+
@cloud = cld
|
19
|
+
instance_eval <<-EOE
|
20
|
+
ssh_options[:keys] = [ '#{cld.full_keypair_basename_path}' ]
|
21
|
+
set :user, '#{cld.user}'
|
22
|
+
set :username, "#{cld.user}"
|
23
|
+
ssh_options[:forward_agent] = true
|
24
|
+
EOE
|
25
|
+
end
|
26
|
+
cld
|
27
|
+
end
|
28
|
+
|
29
|
+
def cloud_retrieved_already?
|
30
|
+
$cap_clouds.key?(name)
|
31
|
+
end
|
32
|
+
def get_cloud(name)
|
33
|
+
set_cloud(name)
|
7
34
|
end
|
35
|
+
|
36
|
+
def cloud_master(name)
|
37
|
+
get_cloud(name).ip
|
38
|
+
end
|
39
|
+
|
40
|
+
def set_role_for_all_instances(role, name)
|
41
|
+
ips = get_cloud(name).list_of_running_instances.map {|ri| ri.ip }
|
42
|
+
ips.each {|ip| send :role, role.to_sym, "#{ip}"}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
module Capistrano
|
48
|
+
class Configuration
|
49
|
+
include ::PoolParty::Capistrano
|
8
50
|
|
51
|
+
# Dir["#{::File.dirname(__FILE__)}/capistrano/*.rb"].each {|f| pload f }
|
9
52
|
end
|
10
53
|
end
|
@@ -1,7 +1,25 @@
|
|
1
1
|
=begin rdoc
|
2
2
|
Kernel overloads
|
3
3
|
=end
|
4
|
+
|
4
5
|
module Kernel
|
6
|
+
def get_latest_caller
|
7
|
+
returning Array.new do |arr|
|
8
|
+
callstack.size.times {|i| arr << callstack[i][0] unless callstack[i][0] =~ /lib\/poolparty/ }
|
9
|
+
end.first
|
10
|
+
end
|
11
|
+
def callstack( level = 1 )
|
12
|
+
call_str_array = caller(level)
|
13
|
+
stack = []
|
14
|
+
call_str_array.each{ |call_str|
|
15
|
+
file, lineno, method = call_str.split(':')
|
16
|
+
if method =~ /in `(.*)'/ then
|
17
|
+
method = $1.intern()
|
18
|
+
end
|
19
|
+
stack << [file, lineno.to_i, method]
|
20
|
+
}
|
21
|
+
stack
|
22
|
+
end
|
5
23
|
# Nice wait instead of sleep
|
6
24
|
def wait(time=5)
|
7
25
|
sleep time.is_a?(String) ? eval(time) : time
|
@@ -27,7 +27,7 @@ class Object
|
|
27
27
|
self
|
28
28
|
end
|
29
29
|
def send_if_method(v, *args)
|
30
|
-
if (v.nil? || v.to_s.empty? || v.is_a?(Array) || v.is_a?(Integer))
|
30
|
+
if (v.nil? || v.to_s.empty? || v.is_a?(Array) || v.is_a?(Integer))# && !v.is_a?(Symbol))#)v.is_a?(String)
|
31
31
|
v
|
32
32
|
else
|
33
33
|
vs = v.to_s.to_sym
|
@@ -2,10 +2,11 @@ require "ftools"
|
|
2
2
|
module PoolParty
|
3
3
|
|
4
4
|
# Load a file that contains a pool into memory
|
5
|
-
def load_pool(filename)
|
6
|
-
|
5
|
+
def load_pool(filename=nil)
|
6
|
+
filename = Dir["#{Dir.pwd}/**/*.rb"].select {|f| ::File.basename(f) == "clouds.rb" }.first unless filename
|
7
|
+
|
7
8
|
unless filename && ::File.readable?(filename)
|
8
|
-
puts "Please specify your cloud with -s, move it to ./clouds.
|
9
|
+
puts "Please specify your cloud with -s, move it to ./clouds.rb or in your POOL_SPEC environment variable"
|
9
10
|
exit(1)
|
10
11
|
else
|
11
12
|
$pool_specfile = filename
|
@@ -42,14 +43,14 @@ module PoolParty
|
|
42
43
|
# These are the locations the spec file can be before the cloud
|
43
44
|
# aborts because it cannot load the cloud
|
44
45
|
def get_existing_spec_location
|
45
|
-
[
|
46
|
+
[
|
46
47
|
"#{Base.remote_storage_path}/#{Base.default_specfile_name}",
|
47
|
-
"#{Base.default_specfile_name}",
|
48
|
-
|
49
|
-
"#{
|
50
|
-
"
|
51
|
-
"#{Base.
|
52
|
-
].reject {|a| a.nil?}.reject do |f|
|
48
|
+
"#{Base.default_specfile_name}",
|
49
|
+
"#{Base.base_config_directory}/#{Base.default_specfile_name}",
|
50
|
+
Dir["#{Dir.pwd}/*/clouds.rb"],
|
51
|
+
ENV["POOL_SPEC"],
|
52
|
+
"#{Base.storage_directory}/#{Base.default_specfile_name}"
|
53
|
+
].flatten.reject {|a| a.nil?}.reject do |f|
|
53
54
|
f unless ::File.readable?(f)
|
54
55
|
end.first
|
55
56
|
end
|
@@ -109,7 +109,7 @@ module PoolParty
|
|
109
109
|
self.loaded_pools extract_pool_from_options(self)
|
110
110
|
|
111
111
|
reject_junk_options!
|
112
|
-
raise CloudNotFoundException.new("Please specify your cloud with -s, move it to ./clouds.
|
112
|
+
raise CloudNotFoundException.new("Please specify your cloud with -s, move it to ./clouds.rb or in your POOL_SPEC environment variable") unless loaded_clouds && !loaded_clouds.empty?
|
113
113
|
loaded_pools.each do |pl|
|
114
114
|
pl.configure(self.options)
|
115
115
|
end
|
@@ -5,7 +5,7 @@ module PoolParty
|
|
5
5
|
|
6
6
|
def plugin_directory(*args)
|
7
7
|
args = ["#{::File.expand_path(Dir.pwd)}/plugins"] if args.empty?
|
8
|
-
args.each {|arg| Dir["#{arg}/*/*.rb"].each {|f| require f
|
8
|
+
args.each {|arg| Dir["#{arg}/*/*.rb"].each {|f| require f }}
|
9
9
|
end
|
10
10
|
|
11
11
|
# Store block
|
@@ -39,15 +39,15 @@ module PoolParty
|
|
39
39
|
|
40
40
|
def setup_dev
|
41
41
|
return true if ::File.exists?("#{remote_keypair_path}") || master.nil?
|
42
|
-
unless ::File.exists?("#{full_keypair_basename_path}.pub")
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
42
|
+
# unless ::File.exists?("#{full_keypair_basename_path}.pub")
|
43
|
+
# cmd = "scp #{scp_array.join(" ")} #{Base.user}@#{master.ip}:.ssh/authorized_keys #{full_keypair_basename_path}.pub"
|
44
|
+
# vputs "Running #{cmd}"
|
45
|
+
# if %x[hostname].chomp == "master"
|
46
|
+
# Kernel.system("cat ~/.ssh/authorized_keys > #{full_keypair_basename_path}.pub")
|
47
|
+
# else
|
48
|
+
# Kernel.system(cmd)
|
49
|
+
# end
|
50
|
+
# end
|
51
51
|
end
|
52
52
|
|
53
53
|
def full_keypair_path
|
@@ -57,9 +57,6 @@ module PoolParty
|
|
57
57
|
::File.expand_path(keypair_path)
|
58
58
|
end
|
59
59
|
end
|
60
|
-
def full_pub_keypair_path
|
61
|
-
@full_pub_keypair_path ||= ::File.expand_path("#{full_keypair_basename_path}.pub")
|
62
|
-
end
|
63
60
|
def full_keypair_basename_path
|
64
61
|
dir = ::File.dirname(full_keypair_path)
|
65
62
|
basename = ::File.basename(full_keypair_path, ::File.extname(full_keypair_path))
|
@@ -83,7 +83,7 @@ module PoolParty
|
|
83
83
|
def self.puppet_rerun_commad
|
84
84
|
puppet_runner_command
|
85
85
|
end
|
86
|
-
def
|
86
|
+
def my_cloud
|
87
87
|
@pa = parent
|
88
88
|
while !(@pa.is_a?(PoolParty::Cloud::Cloud) || @pa.nil? || @pa == self)
|
89
89
|
@pa = @pa.parent
|
@@ -91,7 +91,7 @@ module PoolParty
|
|
91
91
|
@pa
|
92
92
|
end
|
93
93
|
def hosts_file_listing_for(cl)
|
94
|
-
string = (cl.name == cloud.name) ? "#{name}.#{
|
94
|
+
string = (cl.name == cloud.name) ? "#{name}.#{my_cloud.name}\t#{name}" : "#{name}.#{my_cloud.name}"
|
95
95
|
"#{internal_ip}\t#{string}"
|
96
96
|
end
|
97
97
|
end
|
@@ -80,6 +80,10 @@ module PoolParty
|
|
80
80
|
def list_of_nonterminated_instances(list = remote_instances_list)
|
81
81
|
list.reject {|i| i.terminating? || i.terminated? }
|
82
82
|
end
|
83
|
+
# We'll stub the ip to be the master ip for ease and accessibility
|
84
|
+
def ip
|
85
|
+
master.ip
|
86
|
+
end
|
83
87
|
# get the master instance
|
84
88
|
def master
|
85
89
|
get_instance_by_number(0)
|
@@ -20,8 +20,7 @@ module PoolParty
|
|
20
20
|
:template_directory => "templates",
|
21
21
|
:template_path => "/var/lib/puppet/templates",
|
22
22
|
:module_path => "/etc/puppet/modules/poolparty",
|
23
|
-
:default_specfile_name => "clouds.
|
24
|
-
:default_project_specfile_name => "spec/clouds.pool",
|
23
|
+
:default_specfile_name => "clouds.rb",
|
25
24
|
:port => "80",
|
26
25
|
:forwarding_port => "8080",
|
27
26
|
:proxy_mode => "http",
|
@@ -14,6 +14,10 @@ module PoolParty
|
|
14
14
|
pl.options.merge!(opts) if pl.options
|
15
15
|
pl.run_in_context &block if block
|
16
16
|
end
|
17
|
+
|
18
|
+
def set_pool_specfile(filename)
|
19
|
+
$pool_specfile = filename unless $pool_specfile
|
20
|
+
end
|
17
21
|
|
18
22
|
def reset!
|
19
23
|
$pools = $clouds = $plugins = @describe_instances = nil
|
@@ -34,6 +38,7 @@ module PoolParty
|
|
34
38
|
})
|
35
39
|
|
36
40
|
def initialize(name,&block)
|
41
|
+
set_pool_specfile get_latest_caller
|
37
42
|
setup_defaults
|
38
43
|
@pool_name = name
|
39
44
|
@pool_name.freeze
|
@@ -46,7 +51,7 @@ module PoolParty
|
|
46
51
|
end
|
47
52
|
|
48
53
|
def setup_defaults
|
49
|
-
plugin_directory "#{::File.dirname(pool_specfile
|
54
|
+
plugin_directory "#{pool_specfile ? ::File.dirname(pool_specfile) : Dir.pwd}/plugins"
|
50
55
|
PoolParty::Extra::Deployments.include_deployments "#{Dir.pwd}/deployments"
|
51
56
|
end
|
52
57
|
|
@@ -33,9 +33,14 @@ module Capistrano
|
|
33
33
|
parent.provisioner
|
34
34
|
end
|
35
35
|
|
36
|
-
def cloud
|
37
|
-
|
38
|
-
|
36
|
+
def cloud(name=nil)
|
37
|
+
puts "name: #{name}"
|
38
|
+
name ? get_cloud(name) : parent.cloud
|
39
|
+
end
|
40
|
+
|
41
|
+
def get_cloud(name)
|
42
|
+
PoolParty::Cloud.cloud(name)
|
43
|
+
end
|
39
44
|
|
40
45
|
def method_missing(sym, *args, &block)
|
41
46
|
if parent.respond_to?(sym)
|
@@ -136,7 +136,7 @@ aptitude update -y
|
|
136
136
|
def setup_poolparty_base_structure
|
137
137
|
run <<-EOR
|
138
138
|
cp #{remote_storage_path}/#{key_file_locations.first} "#{base_config_directory}/.ppkeys" &&
|
139
|
-
mv #{remote_storage_path}/#{default_specfile_name} #{base_config_directory}
|
139
|
+
mv #{remote_storage_path}/#{default_specfile_name} #{base_config_directory}/#{default_specfile_name}
|
140
140
|
EOR
|
141
141
|
end
|
142
142
|
|
data/lib/poolparty/version.rb
CHANGED
data/poolparty.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: poolparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.90
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Lerner
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-12-
|
12
|
+
date: 2008-12-18 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -170,6 +170,7 @@ files:
|
|
170
170
|
- config/hoe.rb
|
171
171
|
- config/requirements.rb
|
172
172
|
- examples/basic.rb
|
173
|
+
- examples/deploy.rb
|
173
174
|
- examples/plugin_without_plugin_directory.rb
|
174
175
|
- examples/poolparty.rb
|
175
176
|
- generators/poolspec/USAGE
|
@@ -294,6 +295,7 @@ files:
|
|
294
295
|
- lib/poolparty/base_packages/ruby.rb
|
295
296
|
- lib/poolparty/base_packages/runit.rb
|
296
297
|
- lib/poolparty/capistrano.rb
|
298
|
+
- lib/poolparty/capistrano/cloud_tasks.rb
|
297
299
|
- lib/poolparty/config/postlaunchmessage.txt
|
298
300
|
- lib/poolparty/core/array.rb
|
299
301
|
- lib/poolparty/core/class.rb
|
@@ -325,6 +327,7 @@ files:
|
|
325
327
|
- lib/poolparty/helpers/binary.rb
|
326
328
|
- lib/poolparty/helpers/console.rb
|
327
329
|
- lib/poolparty/helpers/display.rb
|
330
|
+
- lib/poolparty/helpers/loading.rb
|
328
331
|
- lib/poolparty/helpers/nice_printer.rb
|
329
332
|
- lib/poolparty/helpers/optioner.rb
|
330
333
|
- lib/poolparty/helpers/ruberl.rb
|
@@ -532,7 +535,7 @@ files:
|
|
532
535
|
has_rdoc: true
|
533
536
|
homepage: http://poolparty.rubyforge.org
|
534
537
|
post_install_message: |-
|
535
|
-
Get ready to jump in the pool, you just installed PoolParty! (Updated at
|
538
|
+
Get ready to jump in the pool, you just installed PoolParty! (Updated at 13:28 12/18/08)
|
536
539
|
|
537
540
|
To get started, run the generator:
|
538
541
|
|
@@ -6,7 +6,10 @@ reset!
|
|
6
6
|
|
7
7
|
describe "Console" do
|
8
8
|
before(:each) do
|
9
|
-
::File.stub!(:readable?).
|
9
|
+
::File.stub!(:readable?).and_return true
|
10
|
+
Dir.stub!(:pwd).and_return "/flop"
|
11
|
+
Dir.stub!(:[]).and_return []
|
12
|
+
Dir.stub!(:[]).with("/flop/**/*.rb").and_return ["clouds.rb"]
|
10
13
|
end
|
11
14
|
describe "load_pool" do
|
12
15
|
before(:each) do
|
@@ -14,7 +17,8 @@ describe "Console" do
|
|
14
17
|
@string =<<-EOS
|
15
18
|
pool :app do
|
16
19
|
maximum_instances 2
|
17
|
-
cloud :rawr do
|
20
|
+
cloud :rawr do
|
21
|
+
maximum_instances 2
|
18
22
|
end
|
19
23
|
end
|
20
24
|
EOS
|
@@ -73,7 +77,7 @@ describe "Console" do
|
|
73
77
|
}
|
74
78
|
end
|
75
79
|
it "should call inflate from Script with the poolspec" do
|
76
|
-
PoolParty::Script.should_receive(:inflate).with("spec contents", "myspec.spec")
|
80
|
+
PoolParty::Script.should_receive(:inflate).with("spec contents", "myspec.spec").and_return true
|
77
81
|
load_pool(@filename)
|
78
82
|
end
|
79
83
|
end
|
@@ -17,10 +17,23 @@ describe "Binary" do
|
|
17
17
|
describe "get_existing_spec_location" do
|
18
18
|
before(:each) do
|
19
19
|
::File.stub!(:readable?).and_return false
|
20
|
-
::File.stub!(:readable?).with("#{Base.storage_directory}/clouds.
|
20
|
+
::File.stub!(:readable?).with("#{Base.storage_directory}/clouds.rb").and_return true
|
21
21
|
end
|
22
22
|
it "should be a String" do
|
23
23
|
Binary.get_existing_spec_location.class.should == String
|
24
24
|
end
|
25
25
|
end
|
26
|
+
describe "load_pool" do
|
27
|
+
before(:each) do
|
28
|
+
::File.stub!(:readable?).and_return true
|
29
|
+
Binary.stub!(:open).and_return @obj
|
30
|
+
@obj.stub!(:read).and_return "crazy"
|
31
|
+
Script.stub!(:inflate).and_return true
|
32
|
+
Dir.stub!(:pwd).and_return "/flop"
|
33
|
+
end
|
34
|
+
it "should call Dir[Dir.pwd] if there is no filename given" do
|
35
|
+
Dir.should_receive(:[]).with("#{Dir.pwd}/**/*.rb").and_return ["clouds.rb"]
|
36
|
+
Binary.load_pool
|
37
|
+
end
|
38
|
+
end
|
26
39
|
end
|
@@ -83,6 +83,9 @@ describe "RemoterBase" do
|
|
83
83
|
end
|
84
84
|
it "should have the method custom_install_tasks" do;@tr.respond_to?(:custom_install_tasks_for).should == true;end
|
85
85
|
it "should have the method custom_configure_tasks" do;@tr.respond_to?(:custom_configure_tasks_for).should == true;end
|
86
|
+
it "should set the ip to the master ip" do
|
87
|
+
@tr.ip.should == "192.68.0.1"
|
88
|
+
end
|
86
89
|
end
|
87
90
|
end
|
88
91
|
end
|
data/website/index.html
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
<h1>PoolParty</h1>
|
35
35
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/poolparty"; return false'>
|
36
36
|
<p>Get Version</p>
|
37
|
-
<a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.
|
37
|
+
<a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.90</a>
|
38
38
|
</div>
|
39
39
|
<h1>‘Easy cloud computing’</h1>
|
40
40
|
<h2>What</h2>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auser-poolparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.90
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Lerner
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-12-
|
12
|
+
date: 2008-12-18 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -170,6 +170,7 @@ files:
|
|
170
170
|
- config/hoe.rb
|
171
171
|
- config/requirements.rb
|
172
172
|
- examples/basic.rb
|
173
|
+
- examples/deploy.rb
|
173
174
|
- examples/plugin_without_plugin_directory.rb
|
174
175
|
- examples/poolparty.rb
|
175
176
|
- generators/poolspec/USAGE
|
@@ -294,6 +295,7 @@ files:
|
|
294
295
|
- lib/poolparty/base_packages/ruby.rb
|
295
296
|
- lib/poolparty/base_packages/runit.rb
|
296
297
|
- lib/poolparty/capistrano.rb
|
298
|
+
- lib/poolparty/capistrano/cloud_tasks.rb
|
297
299
|
- lib/poolparty/config/postlaunchmessage.txt
|
298
300
|
- lib/poolparty/core/array.rb
|
299
301
|
- lib/poolparty/core/class.rb
|
@@ -325,6 +327,7 @@ files:
|
|
325
327
|
- lib/poolparty/helpers/binary.rb
|
326
328
|
- lib/poolparty/helpers/console.rb
|
327
329
|
- lib/poolparty/helpers/display.rb
|
330
|
+
- lib/poolparty/helpers/loading.rb
|
328
331
|
- lib/poolparty/helpers/nice_printer.rb
|
329
332
|
- lib/poolparty/helpers/optioner.rb
|
330
333
|
- lib/poolparty/helpers/ruberl.rb
|
@@ -532,7 +535,7 @@ files:
|
|
532
535
|
has_rdoc: true
|
533
536
|
homepage: http://poolparty.rubyforge.org
|
534
537
|
post_install_message: |-
|
535
|
-
Get ready to jump in the pool, you just installed PoolParty! (Updated at
|
538
|
+
Get ready to jump in the pool, you just installed PoolParty! (Updated at 13:28 12/18/08)
|
536
539
|
|
537
540
|
To get started, run the generator:
|
538
541
|
|