auser-poolparty 0.2.21 → 0.2.22
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/Manifest.txt +3 -0
- data/PostInstall.txt +1 -2
- data/Rakefile +1 -1
- data/bin/cloud-start +1 -1
- data/config/hoe.rb +0 -1
- data/lib/poolparty.rb +1 -1
- data/lib/poolparty/base_packages/poolparty.rb +10 -12
- data/lib/poolparty/core/class.rb +2 -0
- data/lib/poolparty/core/exception.rb +2 -1
- data/lib/poolparty/core/kernel.rb +1 -1
- data/lib/poolparty/core/metaid.rb +15 -0
- data/lib/poolparty/core/object.rb +11 -1
- data/lib/poolparty/exceptions/MasterException.rb +10 -0
- data/lib/poolparty/helpers/provisioner_base.rb +13 -3
- data/lib/poolparty/helpers/provisioners/master.rb +1 -0
- data/lib/poolparty/helpers/provisioners/slave.rb +3 -3
- data/lib/poolparty/net/remote_bases/ec2.rb +2 -1
- data/lib/poolparty/net/remoter.rb +3 -2
- data/lib/poolparty/plugins/git.rb +2 -0
- data/lib/poolparty/pool/cloud.rb +19 -15
- data/lib/poolparty/pool/resource.rb +1 -1
- data/lib/poolparty/pool/resources/gem_package.rb +10 -1
- data/lib/poolparty/version.rb +1 -1
- data/poolparty.gemspec +6 -14
- data/spec/poolparty/core/object_spec.rb +9 -0
- data/spec/poolparty/net/remote_spec.rb +13 -2
- data/website/index.html +1 -1
- metadata +6 -14
data/Manifest.txt
CHANGED
@@ -140,10 +140,12 @@ lib/poolparty/base_packages/poolparty.rb
|
|
140
140
|
lib/poolparty/base_packages/ruby.rb
|
141
141
|
lib/poolparty/config/allowed_commands.yml
|
142
142
|
lib/poolparty/core/array.rb
|
143
|
+
lib/poolparty/core/class.rb
|
143
144
|
lib/poolparty/core/exception.rb
|
144
145
|
lib/poolparty/core/float.rb
|
145
146
|
lib/poolparty/core/hash.rb
|
146
147
|
lib/poolparty/core/kernel.rb
|
148
|
+
lib/poolparty/core/metaid.rb
|
147
149
|
lib/poolparty/core/module.rb
|
148
150
|
lib/poolparty/core/my_open_struct.rb
|
149
151
|
lib/poolparty/core/object.rb
|
@@ -153,6 +155,7 @@ lib/poolparty/core/symbol.rb
|
|
153
155
|
lib/poolparty/core/time.rb
|
154
156
|
lib/poolparty/dependency_resolutions/base.rb
|
155
157
|
lib/poolparty/dependency_resolutions/puppet.rb
|
158
|
+
lib/poolparty/exceptions/MasterException.rb
|
156
159
|
lib/poolparty/exceptions/RemoteException.rb
|
157
160
|
lib/poolparty/exceptions/ResourceException.rb
|
158
161
|
lib/poolparty/exceptions/RuntimeException.rb
|
data/PostInstall.txt
CHANGED
@@ -11,8 +11,7 @@ Tutorials are at http://poolpartyrb.com
|
|
11
11
|
|
12
12
|
Don't forget to check out the plugin tutorial @ http://poolpartyrb.com to extend PoolParty for your needs!
|
13
13
|
|
14
|
-
For more information, check http://PoolPartyrb.com
|
15
|
-
On IRC:
|
14
|
+
For more information, check http://PoolPartyrb.com or visit us on IRC at:
|
16
15
|
irc.freenode.net
|
17
16
|
#poolpartyrb
|
18
17
|
|
data/Rakefile
CHANGED
@@ -25,7 +25,7 @@ task :gemspec => [:spec, :clean_tmp, :"manifest:refresh", :local_deploy, :clean
|
|
25
25
|
end
|
26
26
|
|
27
27
|
desc "Generate gemspec for github"
|
28
|
-
task :
|
28
|
+
task :gh => [:gemspec] do
|
29
29
|
filepath = ::File.join(::File.dirname(__FILE__), "poolparty.gemspec")
|
30
30
|
data = open(filepath).read
|
31
31
|
spec = eval("$SAFE = 3\n#{data}")
|
data/bin/cloud-start
CHANGED
@@ -17,7 +17,7 @@ load_pool(o.spec || Binary.get_existing_spec_location)
|
|
17
17
|
with_cloud(cloud, {:testing => @testing}) do
|
18
18
|
puts header("Starting cloud")
|
19
19
|
puts "#{list_of_running_instances.size} running instances (#{minimum_instances} - #{maximum_instances})"
|
20
|
-
if
|
20
|
+
if list_of_running_instances.size != 1
|
21
21
|
puts "Starting the master instance"
|
22
22
|
if testing
|
23
23
|
puts("\tNot launching while in testing mode")
|
data/config/hoe.rb
CHANGED
@@ -12,7 +12,6 @@ HOMEPATH = "http://#{GEM_NAME}.rubyforge.org"
|
|
12
12
|
DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
|
13
13
|
EXTRA_DEPENDENCIES = [
|
14
14
|
['activesupport'],
|
15
|
-
['open4'],
|
16
15
|
['logging'],
|
17
16
|
["ruby2ruby"]
|
18
17
|
] # An array of rubygem dependencies [name, version]
|
data/lib/poolparty.rb
CHANGED
@@ -7,22 +7,20 @@ module PoolParty
|
|
7
7
|
has_package(:name => "erlang-dev")
|
8
8
|
has_package(:name => "erlang-src")
|
9
9
|
|
10
|
-
has_package(:name => "rubygems") do
|
10
|
+
has_package(:name => "rubygems") do |g|
|
11
11
|
# These should be installed automagically by poolparty, but just in case
|
12
12
|
# TODO: Fix the requires method with a helper
|
13
|
-
has_gempackage(:name => "logging")
|
14
|
-
has_gempackage(:name => "xml-simple"
|
15
|
-
has_gempackage(:name => "grempe-amazon-ec2", :source => "http://gems.github.com")
|
13
|
+
g.has_gempackage(:name => "logging")
|
14
|
+
g.has_gempackage(:name => "xml-simple") do |x|
|
15
|
+
x.has_gempackage(:name => "grempe-amazon-ec2", :source => "http://gems.github.com")
|
16
16
|
end
|
17
17
|
|
18
|
-
has_gempackage(:name => "
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
has_exec(:name => "build_messenger", :command => ". /etc/profile && server-build-messenger") do
|
25
|
-
has_exec(:name => "start_node", :command => ". /etc/profile && server-start-node")
|
18
|
+
has_gempackage(:name => "ParseTree", :version => "3.0.1") do |pt|
|
19
|
+
pt.has_gempackage(:name => "ruby2ruby")
|
20
|
+
pt.has_gempackage(:name => "activesupport") do |a|
|
21
|
+
a.has_gempackage(:name => "auser-poolparty", :source => "http://gems.github.com") do |pool|
|
22
|
+
pool.has_exec(:name => "build_messenger", :command => ". /etc/profile && server-build-messenger") do |mess|
|
23
|
+
mess.has_exec(:name => "start_node", :command => ". /etc/profile && server-start-node")
|
26
24
|
end
|
27
25
|
end
|
28
26
|
end
|
@@ -2,8 +2,9 @@
|
|
2
2
|
Exception overloads
|
3
3
|
=end
|
4
4
|
class Exception
|
5
|
+
alias nice_message to_str
|
5
6
|
# Gives us a nice_message for exceptions
|
6
7
|
def nice_message(padding="")
|
7
|
-
"#{padding}#{message}\n#{padding}" + backtrace.join("\n#{padding}")
|
8
|
+
"#{padding}#{message}\n#{padding}"# + backtrace.join("\n#{padding}")
|
8
9
|
end
|
9
10
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Object
|
2
|
+
# The hidden singleton lurks behind everyone
|
3
|
+
def metaclass; class << self; self; end; end
|
4
|
+
def meta_eval &blk; metaclass.instance_eval &blk; end
|
5
|
+
|
6
|
+
# Adds methods to a metaclass
|
7
|
+
def meta_def name, &blk
|
8
|
+
meta_eval { define_method name, &blk }
|
9
|
+
end
|
10
|
+
|
11
|
+
# Defines an instance method within a class
|
12
|
+
def class_def name, &blk
|
13
|
+
class_eval { define_method name, &blk }
|
14
|
+
end
|
15
|
+
end
|
@@ -57,6 +57,16 @@ class Object
|
|
57
57
|
block_method.bind(self).call(*args)
|
58
58
|
end
|
59
59
|
def meta_def name, &blk
|
60
|
-
|
60
|
+
meta_eval { define_method name, &blk }
|
61
|
+
end
|
62
|
+
def meta_undef name
|
63
|
+
meta_eval { remove_method name }
|
64
|
+
end
|
65
|
+
def run_in_context(&block)
|
66
|
+
name="temp_#{self.class}_#{parent.to_s}".to_sym
|
67
|
+
meta_def name, &block
|
68
|
+
self.send name, self
|
69
|
+
# self.instance_eval &block if block
|
70
|
+
meta_undef name
|
61
71
|
end
|
62
72
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class MasterException < Exception
|
2
|
+
EXCEPTION_MESSAGES = {
|
3
|
+
:no_ip => "Master does not have an ip or has not been launched"
|
4
|
+
}
|
5
|
+
attr_reader :message
|
6
|
+
|
7
|
+
def initialize(type=:no_ip, note="")
|
8
|
+
@message = "Master Exception: #{EXCEPTION_MESSAGES[type]} #{note}"
|
9
|
+
end
|
10
|
+
end
|
@@ -15,6 +15,10 @@ module PoolParty
|
|
15
15
|
def self.configure_master(cloud, testing=false)
|
16
16
|
Provisioner::Master.new(cloud).process_configure!(testing)
|
17
17
|
end
|
18
|
+
|
19
|
+
def self.reconfigure_master(cloud, testing=false)
|
20
|
+
Provisioner::Master.new(cloud).process_reconfigure!(testing)
|
21
|
+
end
|
18
22
|
|
19
23
|
def self.provision_slaves(cloud, testing=false)
|
20
24
|
cloud.nonmaster_nonterminated_instances.each do |sl|
|
@@ -46,7 +50,7 @@ module PoolParty
|
|
46
50
|
@cloud = cloud
|
47
51
|
|
48
52
|
options(cloud.options) if cloud && cloud.respond_to?(:options)
|
49
|
-
set_vars_from_options(instance.options) unless instance.nil? || instance.options.empty?
|
53
|
+
set_vars_from_options(instance.options) unless instance.nil? || !instance.options.empty?
|
50
54
|
options(instance.options) if instance.respond_to?(:options)
|
51
55
|
|
52
56
|
@os = os.to_s.downcase.to_sym
|
@@ -65,6 +69,9 @@ module PoolParty
|
|
65
69
|
provisioner_file = ::File.join(Base.storage_directory, "install_#{name}.sh")
|
66
70
|
::File.open(provisioner_file, "w+") {|f| f << install }
|
67
71
|
end
|
72
|
+
def name
|
73
|
+
@instance.name
|
74
|
+
end
|
68
75
|
def process_install!(testing=false)
|
69
76
|
error unless valid?
|
70
77
|
write_install_file
|
@@ -102,6 +109,9 @@ module PoolParty
|
|
102
109
|
@cloud.run_command_on(cmd, @instance)
|
103
110
|
end
|
104
111
|
end
|
112
|
+
def process_reconfigure!(testing=false)
|
113
|
+
@cloud.run_command_on("puppetd --test 2>&1 &", @instance) unless testing
|
114
|
+
end
|
105
115
|
def setup_runner(cloud)
|
106
116
|
cloud.prepare_to_configuration
|
107
117
|
cloud.build_and_store_new_config_file
|
@@ -231,8 +241,8 @@ module PoolParty
|
|
231
241
|
"
|
232
242
|
touch /etc/apt/sources.list
|
233
243
|
echo 'deb http://mirrors.kernel.org/ubuntu hardy main universe' >> /etc/apt/sources.list
|
234
|
-
|
235
|
-
|
244
|
+
aptitude update -y 2>&1
|
245
|
+
aptitude autoclean 2>&1
|
236
246
|
"
|
237
247
|
else
|
238
248
|
"# No system upgrade needed"
|
@@ -20,8 +20,9 @@ module PoolParty
|
|
20
20
|
begin
|
21
21
|
item = instance#.instancesSet.item
|
22
22
|
EC2ResponseObject.get_hash_from_response(item)
|
23
|
-
rescue Exception => e
|
23
|
+
rescue Exception => e
|
24
24
|
end
|
25
|
+
instance
|
25
26
|
end
|
26
27
|
# Terminate an instance by id
|
27
28
|
def terminate_instance!(instance_id=nil)
|
@@ -181,8 +181,9 @@ module PoolParty
|
|
181
181
|
reset!
|
182
182
|
when_no_pending_instances do
|
183
183
|
wait "20.seconds" # Give some time for ssh to startup
|
184
|
-
|
185
|
-
PoolParty::Provisioner.
|
184
|
+
last_instance = nonmaster_nonterminated_instances.last
|
185
|
+
PoolParty::Provisioner.provision_slave(last_instance, self)
|
186
|
+
PoolParty::Provisioner.reconfigure_master(self, force)
|
186
187
|
# prepare_reconfiguration
|
187
188
|
end
|
188
189
|
end
|
@@ -9,6 +9,8 @@ module PoolParty
|
|
9
9
|
|
10
10
|
def has_git_repos
|
11
11
|
has_package(:name => "git-core")
|
12
|
+
has_directory(:name => "#{cwd}")
|
13
|
+
|
12
14
|
exec({:name => "git-#{name}", :requires => package(:name => "git-core")}) do
|
13
15
|
command parent.user ? "git clone #{parent.user}@#{parent.source} #{parent.path}" : "git clone #{parent.source} #{parent.to ? parent.to : ""}"
|
14
16
|
cwd "#{parent.cwd if parent.cwd}"
|
data/lib/poolparty/pool/cloud.rb
CHANGED
@@ -115,25 +115,29 @@ module PoolParty
|
|
115
115
|
reset_resources!
|
116
116
|
add_poolparty_base_requirements
|
117
117
|
|
118
|
-
@build_manifest =
|
119
|
-
|
120
|
-
# Refactor this into the resources method
|
121
|
-
# TODO
|
122
|
-
services.each do |service|
|
123
|
-
@cp = classpackage_with_self(service)
|
124
|
-
str << @cp.to_string
|
125
|
-
str << @cp.include_string
|
126
|
-
end
|
127
|
-
|
128
|
-
str << resources_string_from_resources(resources)
|
129
|
-
|
130
|
-
str << "# Custom functions"
|
131
|
-
str << Resources::CustomResource.custom_functions_to_string
|
132
|
-
end.join("\n")
|
118
|
+
@build_manifest = build_short_manifest
|
133
119
|
end
|
134
120
|
@build_manifest
|
135
121
|
end
|
136
122
|
|
123
|
+
def build_short_manifest
|
124
|
+
returning Array.new do |str|
|
125
|
+
|
126
|
+
# Refactor this into the resources method
|
127
|
+
# TODO
|
128
|
+
services.each do |service|
|
129
|
+
@cp = classpackage_with_self(service)
|
130
|
+
str << @cp.to_string
|
131
|
+
str << @cp.include_string
|
132
|
+
end
|
133
|
+
|
134
|
+
str << resources_string_from_resources(resources)
|
135
|
+
|
136
|
+
str << "# Custom functions"
|
137
|
+
str << Resources::CustomResource.custom_functions_to_string
|
138
|
+
end.join("\n")
|
139
|
+
end
|
140
|
+
|
137
141
|
def build_from_existing_file
|
138
142
|
if ::FileTest.file?("/etc/puppet/manifests/classes/poolparty.pp")
|
139
143
|
open("/etc/puppet/manifests/classes/poolparty.pp").read
|
@@ -108,7 +108,7 @@ module PoolParty
|
|
108
108
|
# Take the options of the parents
|
109
109
|
set_resource_parent(parent)
|
110
110
|
set_vars_from_options(opts) unless opts.empty?
|
111
|
-
self.
|
111
|
+
self.run_in_context &block if block
|
112
112
|
loaded(opts, @parent)
|
113
113
|
end
|
114
114
|
|
@@ -6,10 +6,19 @@ module PoolParty
|
|
6
6
|
# When we call gempackage, we want the exec to run on the directory we suggest
|
7
7
|
# we also only want it to run if there is NOT a local gem already installed with
|
8
8
|
# the package details (version and name)
|
9
|
+
#
|
10
|
+
# TODO: Add it so that it tries to pull the gem off the master fileserver first...
|
9
11
|
def loaded(opts={}, parent=self)
|
12
|
+
# has_exec(:name => "unpack-#{name}-into-fileserver", :command => "gem unpack #{name} && mv #{name}* #{name}.gem", :cwd => Base.remote_storage_path) do
|
13
|
+
# ifnot "test -d #{Base.remote_storage_path}/#{name}.gem"
|
14
|
+
# end
|
15
|
+
|
10
16
|
has_exec(opts.merge({:name => name, :cwd => "/tmp", :path => "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin"}), parent) do
|
11
|
-
command "gem install -y --no-ri --no-rdoc #{"--version #{version}" if version} #{"--source #{source}" if source} #{name}
|
17
|
+
command "gem install -y --no-ri --no-rdoc #{"--version #{version}" if version} #{"--source #{source}" if source} #{name} <<heredoc
|
18
|
+
1
|
19
|
+
heredoc"
|
12
20
|
ifnot "gem list --local #{name} | grep #{name} #{"| grep #{version}" if version}"
|
21
|
+
# notify get_exec("unpack-#{name}-into-fileserver")
|
13
22
|
end
|
14
23
|
end
|
15
24
|
def virtual_resource?
|
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.22
|
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-10-
|
12
|
+
date: 2008-10-27 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,16 +22,6 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: "0"
|
24
24
|
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: open4
|
27
|
-
type: :runtime
|
28
|
-
version_requirement:
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: "0"
|
34
|
-
version:
|
35
25
|
- !ruby/object:Gem::Dependency
|
36
26
|
name: logging
|
37
27
|
type: :runtime
|
@@ -248,10 +238,12 @@ files:
|
|
248
238
|
- lib/poolparty/base_packages/ruby.rb
|
249
239
|
- lib/poolparty/config/allowed_commands.yml
|
250
240
|
- lib/poolparty/core/array.rb
|
241
|
+
- lib/poolparty/core/class.rb
|
251
242
|
- lib/poolparty/core/exception.rb
|
252
243
|
- lib/poolparty/core/float.rb
|
253
244
|
- lib/poolparty/core/hash.rb
|
254
245
|
- lib/poolparty/core/kernel.rb
|
246
|
+
- lib/poolparty/core/metaid.rb
|
255
247
|
- lib/poolparty/core/module.rb
|
256
248
|
- lib/poolparty/core/my_open_struct.rb
|
257
249
|
- lib/poolparty/core/object.rb
|
@@ -261,6 +253,7 @@ files:
|
|
261
253
|
- lib/poolparty/core/time.rb
|
262
254
|
- lib/poolparty/dependency_resolutions/base.rb
|
263
255
|
- lib/poolparty/dependency_resolutions/puppet.rb
|
256
|
+
- lib/poolparty/exceptions/MasterException.rb
|
264
257
|
- lib/poolparty/exceptions/RemoteException.rb
|
265
258
|
- lib/poolparty/exceptions/ResourceException.rb
|
266
259
|
- lib/poolparty/exceptions/RuntimeException.rb
|
@@ -443,8 +436,7 @@ post_install_message: |-
|
|
443
436
|
|
444
437
|
Don't forget to check out the plugin tutorial @ http://poolpartyrb.com to extend PoolParty for your needs!
|
445
438
|
|
446
|
-
For more information, check http://PoolPartyrb.com
|
447
|
-
On IRC:
|
439
|
+
For more information, check http://PoolPartyrb.com or visit us on IRC at:
|
448
440
|
irc.freenode.net
|
449
441
|
#poolpartyrb
|
450
442
|
|
@@ -56,5 +56,14 @@ describe "Object" do
|
|
56
56
|
@b.dude.should == "totally"
|
57
57
|
end
|
58
58
|
end
|
59
|
+
describe "contextual running" do
|
60
|
+
before(:each) do
|
61
|
+
@obj.stub!(:default_options).and_return {}
|
62
|
+
@a = @obj.run_in_context { @a = "hello world" }
|
63
|
+
end
|
64
|
+
it "should have the method meta_eval" do
|
65
|
+
@obj.respond_to?(:meta_eval).should == true
|
66
|
+
end
|
67
|
+
end
|
59
68
|
end
|
60
69
|
end
|
@@ -194,8 +194,15 @@ describe "Remote" do
|
|
194
194
|
before(:each) do
|
195
195
|
@tc.stub!(:copy_ssh_app).and_return true
|
196
196
|
@tc.stub!(:prepare_reconfiguration).and_return "full"
|
197
|
-
PoolParty::Provisioner.stub!(:
|
197
|
+
PoolParty::Provisioner.stub!(:reconfigure_master).and_return true
|
198
198
|
@tc.stub!(:wait).and_return true
|
199
|
+
@tc.stub!(:nonmaster_nonterminated_instances).and_return true
|
200
|
+
@inst = stub_instance(9, "running")
|
201
|
+
@tc.nonmaster_nonterminated_instances.stub!(:last).and_return @inst
|
202
|
+
@inst.stub!(:options).and_return({:name => "red"})
|
203
|
+
@tc.stub!(:rsync_storage_files_to).and_return true
|
204
|
+
@tc.stub!(:run_command_on).and_return true
|
205
|
+
@tc.stub!(:full_keypair_path).and_return "true"
|
199
206
|
end
|
200
207
|
describe "expand_cloud_if_necessary" do
|
201
208
|
before(:each) do
|
@@ -219,7 +226,11 @@ describe "Remote" do
|
|
219
226
|
end
|
220
227
|
it "should call a new slave provisioner" do
|
221
228
|
@tc.stub!(:should_expand_cloud?).once.and_return true
|
222
|
-
PoolParty::Provisioner.should_receive(:
|
229
|
+
PoolParty::Provisioner.should_receive(:provision_slave).and_return true
|
230
|
+
end
|
231
|
+
it "should call reconfigure on the master to pick up the new slave" do
|
232
|
+
@tc.stub!(:should_expand_cloud?).once.and_return true
|
233
|
+
PoolParty::Provisioner.should_receive(:reconfigure_master).once
|
223
234
|
end
|
224
235
|
after(:each) do
|
225
236
|
@tc.expand_cloud_if_necessary
|
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.22</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.22
|
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-10-
|
12
|
+
date: 2008-10-27 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,16 +22,6 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: "0"
|
24
24
|
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: open4
|
27
|
-
type: :runtime
|
28
|
-
version_requirement:
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: "0"
|
34
|
-
version:
|
35
25
|
- !ruby/object:Gem::Dependency
|
36
26
|
name: logging
|
37
27
|
type: :runtime
|
@@ -248,10 +238,12 @@ files:
|
|
248
238
|
- lib/poolparty/base_packages/ruby.rb
|
249
239
|
- lib/poolparty/config/allowed_commands.yml
|
250
240
|
- lib/poolparty/core/array.rb
|
241
|
+
- lib/poolparty/core/class.rb
|
251
242
|
- lib/poolparty/core/exception.rb
|
252
243
|
- lib/poolparty/core/float.rb
|
253
244
|
- lib/poolparty/core/hash.rb
|
254
245
|
- lib/poolparty/core/kernel.rb
|
246
|
+
- lib/poolparty/core/metaid.rb
|
255
247
|
- lib/poolparty/core/module.rb
|
256
248
|
- lib/poolparty/core/my_open_struct.rb
|
257
249
|
- lib/poolparty/core/object.rb
|
@@ -261,6 +253,7 @@ files:
|
|
261
253
|
- lib/poolparty/core/time.rb
|
262
254
|
- lib/poolparty/dependency_resolutions/base.rb
|
263
255
|
- lib/poolparty/dependency_resolutions/puppet.rb
|
256
|
+
- lib/poolparty/exceptions/MasterException.rb
|
264
257
|
- lib/poolparty/exceptions/RemoteException.rb
|
265
258
|
- lib/poolparty/exceptions/ResourceException.rb
|
266
259
|
- lib/poolparty/exceptions/RuntimeException.rb
|
@@ -443,8 +436,7 @@ post_install_message: |-
|
|
443
436
|
|
444
437
|
Don't forget to check out the plugin tutorial @ http://poolpartyrb.com to extend PoolParty for your needs!
|
445
438
|
|
446
|
-
For more information, check http://PoolPartyrb.com
|
447
|
-
On IRC:
|
439
|
+
For more information, check http://PoolPartyrb.com or visit us on IRC at:
|
448
440
|
irc.freenode.net
|
449
441
|
#poolpartyrb
|
450
442
|
|