auser-poolparty 0.2.26 → 0.2.35
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 +13 -2
- data/PostInstall.txt +2 -1
- data/Rakefile +8 -2
- data/bin/cloud-contract +1 -6
- data/bin/cloud-ensure-provisioning +33 -0
- data/bin/cloud-expand +1 -6
- data/bin/cloud-provision +22 -14
- data/bin/cloud-start +1 -0
- data/bin/messenger-get-load +26 -0
- data/bin/server-build-messenger +9 -2
- data/bin/server-fire-cmd +1 -1
- data/bin/server-get-load +4 -4
- data/bin/server-list-active +2 -2
- data/bin/server-rerun +4 -4
- data/bin/server-start-master +4 -4
- data/bin/server-start-node +4 -4
- data/lib/erlang/messenger/Rakefile +6 -0
- data/lib/erlang/messenger/ebin/master.app +1 -1
- data/lib/erlang/messenger/ebin/master_app.beam +0 -0
- data/lib/erlang/messenger/ebin/node.app +1 -1
- data/lib/erlang/messenger/ebin/node_app.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
- data/lib/erlang/messenger/include/defines.hrl +16 -0
- data/lib/erlang/messenger/pm_master.beam +0 -0
- data/lib/erlang/messenger/pm_node.beam +0 -0
- data/lib/erlang/messenger/src/pm_client.erl +35 -7
- data/lib/erlang/messenger/src/pm_cluster.erl +15 -12
- data/lib/erlang/messenger/src/pm_event_manager.erl +27 -0
- data/lib/erlang/messenger/src/pm_master.erl +44 -32
- data/lib/erlang/messenger/src/pm_master_event_handler.erl +72 -0
- data/lib/erlang/messenger/src/pm_master_supervisor.erl +9 -10
- data/lib/erlang/messenger/src/pm_node.erl +47 -27
- data/lib/erlang/messenger/src/pm_node_supervisor.erl +7 -9
- data/lib/erlang/messenger/src/utils.erl +20 -1
- data/lib/erlang/messenger/useful_snippets +6 -0
- data/lib/erlang/messenger/utils.beam +0 -0
- data/lib/poolparty/base_packages/haproxy.rb +6 -6
- data/lib/poolparty/base_packages/poolparty.rb +22 -43
- data/lib/poolparty/core/object.rb +3 -0
- data/lib/poolparty/helpers/console.rb +4 -0
- data/lib/poolparty/helpers/messenger.rb +14 -5
- data/lib/poolparty/helpers/optioner.rb +1 -1
- data/lib/poolparty/helpers/provisioner_base.rb +54 -15
- data/lib/poolparty/helpers/provisioners/master.rb +36 -8
- data/lib/poolparty/helpers/provisioners/slave.rb +5 -6
- data/lib/poolparty/net/remote_bases/ec2.rb +16 -18
- data/lib/poolparty/net/remote_instance.rb +4 -1
- data/lib/poolparty/net/remoter.rb +29 -10
- data/lib/poolparty/net/remoter_base.rb +2 -1
- data/lib/poolparty/plugins/git.rb +5 -6
- data/lib/poolparty/pool/base.rb +3 -2
- data/lib/poolparty/pool/cloud.rb +22 -14
- data/lib/poolparty/pool/plugin.rb +9 -0
- data/lib/poolparty/pool/pool.rb +2 -2
- data/lib/poolparty/pool/resources/class_package.rb +1 -1
- data/lib/poolparty/pool/resources/gem_package.rb +6 -4
- data/lib/poolparty/templates/puppetcleaner +6 -0
- data/lib/poolparty/version.rb +1 -1
- data/poolparty.gemspec +20 -6
- data/spec/poolparty/helpers/messenger_spec.rb +1 -1
- data/spec/poolparty/helpers/provisioner_base_spec.rb +3 -0
- data/spec/poolparty/net/remote_spec.rb +1 -0
- data/spec/poolparty/net/remoter_spec.rb +4 -1
- data/spec/poolparty/pool/cloud_spec.rb +2 -2
- data/spec/poolparty/pool/plugin_spec.rb +8 -1
- data/spec/poolparty/pool/resources/class_package_spec.rb +4 -4
- data/spec/poolparty/pool/resources/remote_file_spec.rb +1 -1
- data/website/index.html +1 -1
- metadata +20 -6
- data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
- data/lib/erlang/messenger/ebin/utils.beam +0 -0
- data/lib/erlang/messenger/src/pm_event_handler.erl +0 -21
@@ -19,13 +19,13 @@ module PoolParty
|
|
19
19
|
<<-EOE
|
20
20
|
if [ -z "$(grep -v '#' /etc/hosts | grep 'master')" ]; then echo "#{master_ip} puppet master" >> /etc/hosts; else echo "host already set"; fi
|
21
21
|
cp #{Base.remote_storage_path}/namespaceauth.conf /etc/puppet/namespaceauth.conf
|
22
|
-
echo 'DAEMON_OPTS="-w 120
|
22
|
+
echo 'DAEMON_OPTS="-w 120 --fqdn #{@instance.name} --server master"' > /etc/default/puppet
|
23
23
|
EOE
|
24
24
|
end
|
25
25
|
|
26
26
|
def setup_configs
|
27
27
|
<<-EOS
|
28
|
-
echo "#{open(File.join(template_directory, "puppet.conf")).read}" > /etc/puppet/puppet.conf
|
28
|
+
echo "#{open(File.join(template_directory, "puppet.conf")).read}" > /etc/puppet/puppet.conf
|
29
29
|
EOS
|
30
30
|
end
|
31
31
|
|
@@ -33,10 +33,9 @@ module PoolParty
|
|
33
33
|
# puppetd --listen --fqdn #{@instance.name}
|
34
34
|
def start_puppet
|
35
35
|
<<-EOS
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
rm -rf /etc/puppet/ssl*
|
36
|
+
/etc/init.d/puppetmaster start
|
37
|
+
/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master 2>&1
|
38
|
+
# rm -rf /etc/puppet/ssl/*
|
40
39
|
EOS
|
41
40
|
end
|
42
41
|
|
@@ -33,27 +33,24 @@ module PoolParty
|
|
33
33
|
describe_instances.select {|a| a[:name] == id}[0] rescue nil
|
34
34
|
end
|
35
35
|
def describe_instances
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
@name = "#{h[:status]}_node#{i}"
|
44
|
-
end
|
45
|
-
h.merge!({
|
46
|
-
:name => @name,
|
47
|
-
:hostname => h[:ip],
|
48
|
-
:ip => h[:ip].convert_from_ec2_to_ip
|
49
|
-
})
|
36
|
+
@id = 0
|
37
|
+
get_instances_description.each_with_index do |h,i|
|
38
|
+
if h[:status] == "running"
|
39
|
+
@name = @id == 0 ? "master" : "node#{@id}"
|
40
|
+
@id += 1
|
41
|
+
else
|
42
|
+
@name = "#{h[:status]}_node#{i}"
|
50
43
|
end
|
51
|
-
|
52
|
-
|
44
|
+
h.merge!({
|
45
|
+
:name => @name,
|
46
|
+
:hostname => h[:ip],
|
47
|
+
:ip => h[:ip].convert_from_ec2_to_ip
|
48
|
+
})
|
49
|
+
end
|
53
50
|
end
|
54
51
|
# Get the s3 description for the response in a hash format
|
55
52
|
def get_instances_description
|
56
|
-
|
53
|
+
EC2ResponseObject.get_descriptions(ec2.describe_instances).sort_by {|a| a[:launching_time]}
|
57
54
|
end
|
58
55
|
|
59
56
|
# Help create a keypair for the cloud
|
@@ -80,7 +77,8 @@ module PoolParty
|
|
80
77
|
# "if [ -z $(grep -v '#' /etc/hosts | grep '#{o.name}') ]; then echo \"$(curl http://169.254.169.254/latest/meta-data/public-ipv4) #{o.name}\" >> /etc/hosts; fi",
|
81
78
|
"if [ -z \"$(grep -v '#' /etc/hosts | grep '#{o.name}')\" ]; then echo '127.0.0.1 #{o.name}' >> /etc/hosts; fi",
|
82
79
|
"hostname #{o.name}",
|
83
|
-
"echo #{o.name} > /etc/hostname"
|
80
|
+
"echo #{o.name} > /etc/hostname",
|
81
|
+
"cd /var/poolparty && wget http://rubyforge.org/frs/download.php/43666/amazon-ec2-0.3.1.gem -O amazon-ec2.gem 2>&1 && gem install -y --no-ri --no-rdoc amazon-ec2.gem 2>&1"
|
84
82
|
]
|
85
83
|
end
|
86
84
|
|
@@ -64,8 +64,11 @@ module PoolParty
|
|
64
64
|
"#{name}\t#{ip}"
|
65
65
|
end
|
66
66
|
|
67
|
-
# Commands for the servers
|
68
67
|
def puppet_runner_command
|
68
|
+
self.class.send :puppet_runner_command
|
69
|
+
end
|
70
|
+
# Commands for the servers
|
71
|
+
def self.puppet_runner_command
|
69
72
|
". /etc/profile && /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master 2>&1"
|
70
73
|
end
|
71
74
|
end
|
@@ -13,7 +13,8 @@ module PoolParty
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
def run_command_on_command(cmd="ls -l", remote_instance=nil)
|
16
|
-
"#{
|
16
|
+
vputs "Running #{cmd} on #{remote_instance.name == %x[hostname].chomp ? "self (master)" : "#{remote_instance.name}"}"
|
17
|
+
remote_instance.name == %x[hostname].chomp ? %x[#{cmd}] : "#{ssh_command(remote_instance)} '#{cmd}'"
|
17
18
|
end
|
18
19
|
def ssh_command(remote_instance)
|
19
20
|
"#{ssh_string} #{remote_instance.ip}"
|
@@ -30,7 +31,7 @@ module PoolParty
|
|
30
31
|
["-o StrictHostKeyChecking=no", "-l '#{Base.user}'", '-i "'+full_keypair_path+'"']
|
31
32
|
end
|
32
33
|
def rsync_command
|
33
|
-
"rsync
|
34
|
+
"rsync -azP --exclude cache -e '#{ssh_string}'"
|
34
35
|
end
|
35
36
|
# Open the cached local copy of the instances list and
|
36
37
|
# create a new RemoteInstance from each line
|
@@ -129,6 +130,7 @@ module PoolParty
|
|
129
130
|
if list_of_pending_instances.size == 0
|
130
131
|
block.call if block
|
131
132
|
else
|
133
|
+
vputs "Waiting for there to be no pending instances..."
|
132
134
|
wait "5.seconds"
|
133
135
|
when_no_pending_instances(&block)
|
134
136
|
end
|
@@ -149,13 +151,16 @@ module PoolParty
|
|
149
151
|
# and if the master is not running AND we can start a new instance
|
150
152
|
# Then wait for the master to launch
|
151
153
|
def launch_and_configure_master!(testing=false)
|
154
|
+
vputs "Requesting to launch new instance"
|
152
155
|
request_launch_new_instances(1) if list_of_pending_instances.size.zero? && can_start_a_new_instance? && !is_master_running?
|
153
156
|
|
154
157
|
when_no_pending_instances do
|
155
158
|
wait "20.seconds"
|
159
|
+
vputs "Provisioning master..."
|
156
160
|
hide_output { Provisioner.provision_master(self, testing) }
|
157
|
-
|
158
|
-
|
161
|
+
PoolParty::Provisioner.reconfigure_master(self, !testing)
|
162
|
+
after_launched
|
163
|
+
end
|
159
164
|
end
|
160
165
|
def is_master_running?
|
161
166
|
!list_of_running_instances.select {|a| a.name == "master"}.first.nil?
|
@@ -185,10 +190,11 @@ module PoolParty
|
|
185
190
|
@num_instances = nonmaster_nonterminated_instances.size
|
186
191
|
last_instances = nonmaster_nonterminated_instances[(@num_instances - @num)..(@num_instances)]
|
187
192
|
last_instances.each do |inst|
|
188
|
-
|
193
|
+
vputs "Provisioning #{inst.name} slave"
|
194
|
+
PoolParty::Provisioner.provision_slave(inst, self)
|
189
195
|
end
|
190
196
|
PoolParty::Provisioner.reconfigure_master(self, force)
|
191
|
-
|
197
|
+
after_launched
|
192
198
|
end
|
193
199
|
end
|
194
200
|
end
|
@@ -196,11 +202,24 @@ module PoolParty
|
|
196
202
|
# If we can shutdown an instnace and the load allows us to contract
|
197
203
|
# the cloud, then we should request_termination_of_non_master_instance
|
198
204
|
def contract_cloud_if_necessary(force=false)
|
199
|
-
if can_shutdown_an_instance?
|
205
|
+
if can_shutdown_an_instance?
|
206
|
+
before_shutdown
|
200
207
|
request_termination_of_non_master_instance if should_contract_cloud?(force)
|
201
208
|
end
|
202
209
|
end
|
203
210
|
|
211
|
+
# Callbacks
|
212
|
+
|
213
|
+
# After launch callback
|
214
|
+
# This is called after a new instance is launched
|
215
|
+
def after_launched(force=false)
|
216
|
+
end
|
217
|
+
|
218
|
+
# Before shutdown callback
|
219
|
+
# This is called before the cloud is contracted
|
220
|
+
def before_shutdown
|
221
|
+
end
|
222
|
+
|
204
223
|
# Rsync command to the instance
|
205
224
|
def rsync_storage_files_to(instance=nil)
|
206
225
|
hide_output do
|
@@ -229,13 +248,13 @@ module PoolParty
|
|
229
248
|
end
|
230
249
|
|
231
250
|
# Prepare reconfiguration on the master
|
232
|
-
# TODO: Fix the killall
|
233
251
|
# TODO: Curious about the puppet/ssl problems...
|
234
252
|
# puppetd --test --no-daemonize 2>&1 &
|
253
|
+
# rm -rf /etc/puppet/ssl/*;
|
235
254
|
def prepare_reconfiguration
|
236
255
|
unless @prepared
|
237
|
-
cmd = "
|
238
|
-
run_command_on(cmd, master)
|
256
|
+
# cmd = "/etc/init.d/puppetmaster restart"
|
257
|
+
# run_command_on(cmd, master)
|
239
258
|
@prepared = true
|
240
259
|
end
|
241
260
|
end
|
@@ -77,7 +77,7 @@ module PoolParty
|
|
77
77
|
# If no keypair is passed, select them all
|
78
78
|
def list_of_instances(keyp=nil)
|
79
79
|
key = keyp ? keyp : keypair
|
80
|
-
describe_instances.select {|a| key ? a[:keypair] == key : true } if describe_instances
|
80
|
+
@describe_instances ||= describe_instances.select {|a| key ? a[:keypair] == key : true } if describe_instances
|
81
81
|
end
|
82
82
|
# Instances
|
83
83
|
# Get the master from the cloud
|
@@ -91,6 +91,7 @@ module PoolParty
|
|
91
91
|
end
|
92
92
|
# Reset the cache of descriptions
|
93
93
|
def reset!
|
94
|
+
@describe_instances = nil
|
94
95
|
end
|
95
96
|
def self.included(other)
|
96
97
|
PoolParty.register_remote_base(self.class.to_s.downcase.to_sym)
|
@@ -11,15 +11,14 @@ module PoolParty
|
|
11
11
|
has_package(:name => "git-core")
|
12
12
|
has_directory(:name => "#{cwd}")
|
13
13
|
|
14
|
-
exec({:name => "git-#{name}", :requires =>
|
14
|
+
exec({:name => "git-#{name}", :requires => get_package(:name => "git-core"), :requires => get_directory("#{cwd}")}) do
|
15
15
|
command parent.user ? "git clone #{parent.user}@#{parent.source} #{parent.path}" : "git clone #{parent.source} #{parent.to ? parent.to : ""}"
|
16
16
|
cwd "#{parent.cwd if parent.cwd}"
|
17
17
|
creates "#{::File.join( (parent.cwd ? parent.cwd : cwd), ::File.basename(parent.source, ::File.extname(parent.source)) )}/.git"
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
18
|
+
end
|
19
|
+
exec(:name => "update-#{name}", :requires => get_exec("git-#{name}")) do
|
20
|
+
cwd get_exec("git-#{parent.name}").cwd
|
21
|
+
command "git pull"
|
23
22
|
end
|
24
23
|
end
|
25
24
|
|
data/lib/poolparty/pool/base.rb
CHANGED
@@ -14,8 +14,9 @@ module PoolParty
|
|
14
14
|
:user => "root", # This should change here
|
15
15
|
:base_keypair_path => "~/.ec2",
|
16
16
|
:tmp_path => "/tmp/poolparty",
|
17
|
-
:remote_storage_path => "/var/poolparty",
|
18
|
-
:
|
17
|
+
:remote_storage_path => "/var/poolparty",
|
18
|
+
:remote_gem_path => "/var/poolparty/gems",
|
19
|
+
:fileserver_base => "puppet://master/files",
|
19
20
|
:base_config_directory => "/etc/poolparty",
|
20
21
|
:template_directory => "templates",
|
21
22
|
:template_path => "/var/lib/puppet/templates",
|
data/lib/poolparty/pool/cloud.rb
CHANGED
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + "/resource"
|
|
3
3
|
|
4
4
|
module PoolParty
|
5
5
|
module Cloud
|
6
|
-
def cloud(name=:
|
6
|
+
def cloud(name=:app, &block)
|
7
7
|
clouds.has_key?(name) ? clouds[name] : (clouds[name] = Cloud.new(name, self, &block))
|
8
8
|
end
|
9
9
|
|
@@ -92,13 +92,14 @@ module PoolParty
|
|
92
92
|
# TODO: Consider the benefits of moving all the manifest
|
93
93
|
# classes to separate files and keeping the containing
|
94
94
|
# references in the include
|
95
|
-
def build_and_store_new_config_file
|
96
|
-
|
95
|
+
def build_and_store_new_config_file(force=false)
|
96
|
+
vputs "Building new manifest configuration file (forced: #{force})"
|
97
|
+
manifest = force ? rebuild_manifest : build_manifest
|
97
98
|
config_file = ::File.join(Base.storage_directory, "poolparty.pp")
|
98
|
-
::File.open(config_file, "w
|
99
|
-
file << "class poolparty {"
|
100
|
-
file <<
|
101
|
-
file << "}"
|
99
|
+
::File.open(config_file, "w") do |file|
|
100
|
+
# file << "class poolparty {"
|
101
|
+
file << manifest
|
102
|
+
# file << "}"
|
102
103
|
end
|
103
104
|
end
|
104
105
|
|
@@ -110,16 +111,23 @@ module PoolParty
|
|
110
111
|
|
111
112
|
# Configuration files
|
112
113
|
def build_manifest
|
114
|
+
vputs "Building manifest"
|
113
115
|
@build_manifest ||= build_from_existing_file
|
114
116
|
unless @build_manifest
|
115
|
-
|
117
|
+
|
118
|
+
# reset_resources!
|
116
119
|
add_poolparty_base_requirements
|
117
120
|
|
118
|
-
@build_manifest = build_short_manifest
|
121
|
+
@build_manifest = "class poolparty {\n #{build_short_manifest}\n}"
|
119
122
|
end
|
120
123
|
@build_manifest
|
121
124
|
end
|
122
125
|
|
126
|
+
def rebuild_manifest
|
127
|
+
@build_manifest = nil
|
128
|
+
build_manifest
|
129
|
+
end
|
130
|
+
|
123
131
|
def build_short_manifest
|
124
132
|
returning Array.new do |str|
|
125
133
|
|
@@ -139,11 +147,7 @@ module PoolParty
|
|
139
147
|
end
|
140
148
|
|
141
149
|
def build_from_existing_file
|
142
|
-
|
143
|
-
open("/etc/puppet/manifests/classes/poolparty.pp").read
|
144
|
-
else
|
145
|
-
nil
|
146
|
-
end
|
150
|
+
::FileTest.file?("/etc/puppet/manifests/classes/poolparty.pp") ? open("/etc/puppet/manifests/classes/poolparty.pp").read : nil
|
147
151
|
end
|
148
152
|
|
149
153
|
# To allow the remote instances to do their job,
|
@@ -177,6 +181,10 @@ module PoolParty
|
|
177
181
|
def provisioning_complete
|
178
182
|
@provisioning_in_progress = false
|
179
183
|
end
|
184
|
+
|
185
|
+
def reset!
|
186
|
+
@build_manifest = @describe_instances = nil
|
187
|
+
end
|
180
188
|
|
181
189
|
# Add to the services pool for the manifest listing
|
182
190
|
def add_service(serv)
|
@@ -20,6 +20,15 @@ module PoolParty
|
|
20
20
|
# Overwrite this method
|
21
21
|
def enable
|
22
22
|
end
|
23
|
+
|
24
|
+
# Call the cloud from within the plugin
|
25
|
+
def cloud
|
26
|
+
@p = parent
|
27
|
+
while !@p.is_a?(PoolParty::Cloud)
|
28
|
+
@p = @p.parent
|
29
|
+
end
|
30
|
+
@p
|
31
|
+
end
|
23
32
|
|
24
33
|
# def method_missing(m, *args, &block)
|
25
34
|
# if block_given?
|
data/lib/poolparty/pool/pool.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module PoolParty
|
2
2
|
module Pool
|
3
3
|
|
4
|
-
def pool(name=:
|
4
|
+
def pool(name=:app, &block)
|
5
5
|
pools.has_key?(name) ? pools[name] : (pools[name] = Pool.new(name, &block))
|
6
6
|
end
|
7
7
|
|
@@ -15,7 +15,7 @@ module PoolParty
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def reset!
|
18
|
-
$pools = $clouds = $plugins = nil
|
18
|
+
$pools = $clouds = $plugins = @describe_instances = nil
|
19
19
|
end
|
20
20
|
|
21
21
|
class Pool
|
@@ -5,7 +5,7 @@ module PoolParty
|
|
5
5
|
def classpackage_with_self(parent=self, &block)
|
6
6
|
@cp = PoolParty::Resources::Classpackage.new(parent.options, parent, &block)
|
7
7
|
@cp.instance_eval {@resources = parent.resources}
|
8
|
-
parent.instance_eval {@resources = nil}
|
8
|
+
# parent.instance_eval {@resources = nil}
|
9
9
|
@cp
|
10
10
|
end
|
11
11
|
|
@@ -10,13 +10,15 @@ module PoolParty
|
|
10
10
|
# TODO: Add it so that it tries to pull the gem off the master fileserver first...
|
11
11
|
def loaded(opts={}, parent=self)
|
12
12
|
if download_url
|
13
|
-
|
14
|
-
has_exec(:name => "download-#{name}", :cwd => Base.remote_storage_path, :command => "wget #{download_url} -O #{name}.gem", :ifnot => "test -f #{Base.remote_storage_path}/#{name}.gem")
|
15
|
-
end
|
13
|
+
|
16
14
|
has_file(:name => "#{Base.remote_storage_path}/#{name}.gem", :source => "#{Base.fileserver_base}/#{name}.gem")
|
17
15
|
|
16
|
+
execute_if("$hostname", "master") do
|
17
|
+
has_exec(:name => "download-#{name}", :cwd => Base.remote_storage_path, :command => "wget #{download_url} -O #{name}.gem", :ifnot => "test -f #{Base.remote_storage_path}/#{name}.gem", :notify => get_file("#{Base.remote_storage_path}/#{name}.gem"))
|
18
|
+
end
|
19
|
+
|
18
20
|
has_exec(opts.merge({:name => "#{name}", :cwd =>"#{Base.remote_storage_path}", :path => "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin"})) do
|
19
|
-
command "gem install -y --no-ri --no-rdoc #{name}.gem"
|
21
|
+
command "gem install -y --no-ri --no-rdoc #{Base.remote_storage_path}/#{name}.gem"
|
20
22
|
ifnot "gem list --local #{name} | grep #{name} #{"| grep #{version}" if version}"
|
21
23
|
requires get_file("#{Base.remote_storage_path}/#{name}.gem")
|
22
24
|
end
|
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.35
|
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-30 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 1.
|
53
|
+
version: 1.8.2
|
54
54
|
version:
|
55
55
|
description: Self-healing, auto-scaling cloud computing tool
|
56
56
|
email:
|
@@ -60,6 +60,7 @@ executables:
|
|
60
60
|
- cloud-add-keypair
|
61
61
|
- cloud-configure
|
62
62
|
- cloud-contract
|
63
|
+
- cloud-ensure-provisioning
|
63
64
|
- cloud-expand
|
64
65
|
- cloud-list
|
65
66
|
- cloud-maintain
|
@@ -70,6 +71,7 @@ executables:
|
|
70
71
|
- cloud-ssh
|
71
72
|
- cloud-start
|
72
73
|
- cloud-terminate
|
74
|
+
- messenger-get-load
|
73
75
|
- pool
|
74
76
|
- pool-console
|
75
77
|
- pool-describe
|
@@ -106,6 +108,7 @@ files:
|
|
106
108
|
- bin/cloud-add-keypair
|
107
109
|
- bin/cloud-configure
|
108
110
|
- bin/cloud-contract
|
111
|
+
- bin/cloud-ensure-provisioning
|
109
112
|
- bin/cloud-expand
|
110
113
|
- bin/cloud-list
|
111
114
|
- bin/cloud-maintain
|
@@ -116,6 +119,7 @@ files:
|
|
116
119
|
- bin/cloud-ssh
|
117
120
|
- bin/cloud-start
|
118
121
|
- bin/cloud-terminate
|
122
|
+
- bin/messenger-get-load
|
119
123
|
- bin/pool
|
120
124
|
- bin/pool-console
|
121
125
|
- bin/pool-describe
|
@@ -145,6 +149,7 @@ files:
|
|
145
149
|
- lib/erlang/messenger/README
|
146
150
|
- lib/erlang/messenger/Rakefile
|
147
151
|
- lib/erlang/messenger/control
|
152
|
+
- lib/erlang/messenger/ebin/erl_crash.dump
|
148
153
|
- lib/erlang/messenger/ebin/master.app
|
149
154
|
- lib/erlang/messenger/ebin/master_app.beam
|
150
155
|
- lib/erlang/messenger/ebin/node.app
|
@@ -152,8 +157,9 @@ files:
|
|
152
157
|
- lib/erlang/messenger/ebin/packager.app
|
153
158
|
- lib/erlang/messenger/ebin/pm_client.beam
|
154
159
|
- lib/erlang/messenger/ebin/pm_cluster.beam
|
155
|
-
- lib/erlang/messenger/ebin/
|
160
|
+
- lib/erlang/messenger/ebin/pm_event_manager.beam
|
156
161
|
- lib/erlang/messenger/ebin/pm_master.beam
|
162
|
+
- lib/erlang/messenger/ebin/pm_master_event_handler.beam
|
157
163
|
- lib/erlang/messenger/ebin/pm_master_rel-0.1.rel
|
158
164
|
- lib/erlang/messenger/ebin/pm_master_supervisor.beam
|
159
165
|
- lib/erlang/messenger/ebin/pm_node.beam
|
@@ -162,6 +168,7 @@ files:
|
|
162
168
|
- lib/erlang/messenger/ebin/pm_packager.beam
|
163
169
|
- lib/erlang/messenger/ebin/utils.beam
|
164
170
|
- lib/erlang/messenger/erl_crash.dump
|
171
|
+
- lib/erlang/messenger/include/defines.hrl
|
165
172
|
- lib/erlang/messenger/lib/eunit/AUTHORS
|
166
173
|
- lib/erlang/messenger/lib/eunit/CHANGELOG
|
167
174
|
- lib/erlang/messenger/lib/eunit/COPYING
|
@@ -217,21 +224,26 @@ files:
|
|
217
224
|
- lib/erlang/messenger/lib/eunit/src/file_monitor.erl
|
218
225
|
- lib/erlang/messenger/lib/eunit/sys.config
|
219
226
|
- lib/erlang/messenger/lib/eunit/vsn.mk
|
227
|
+
- lib/erlang/messenger/pm_master.beam
|
220
228
|
- lib/erlang/messenger/pm_master_rel-0.1.boot
|
221
229
|
- lib/erlang/messenger/pm_master_rel-0.1.script
|
230
|
+
- lib/erlang/messenger/pm_node.beam
|
222
231
|
- lib/erlang/messenger/pm_node_rel-0.1.boot
|
223
232
|
- lib/erlang/messenger/pm_node_rel-0.1.script
|
224
233
|
- lib/erlang/messenger/src/master_app.erl
|
225
234
|
- lib/erlang/messenger/src/node_app.erl
|
226
235
|
- lib/erlang/messenger/src/pm_client.erl
|
227
236
|
- lib/erlang/messenger/src/pm_cluster.erl
|
228
|
-
- lib/erlang/messenger/src/
|
237
|
+
- lib/erlang/messenger/src/pm_event_manager.erl
|
229
238
|
- lib/erlang/messenger/src/pm_master.erl
|
239
|
+
- lib/erlang/messenger/src/pm_master_event_handler.erl
|
230
240
|
- lib/erlang/messenger/src/pm_master_supervisor.erl
|
231
241
|
- lib/erlang/messenger/src/pm_node.erl
|
232
242
|
- lib/erlang/messenger/src/pm_node_supervisor.erl
|
233
243
|
- lib/erlang/messenger/src/pm_packager.erl
|
234
244
|
- lib/erlang/messenger/src/utils.erl
|
245
|
+
- lib/erlang/messenger/useful_snippets
|
246
|
+
- lib/erlang/messenger/utils.beam
|
235
247
|
- lib/poolparty.rb
|
236
248
|
- lib/poolparty/base_packages/haproxy.rb
|
237
249
|
- lib/poolparty/base_packages/heartbeat.rb
|
@@ -328,6 +340,7 @@ files:
|
|
328
340
|
- lib/poolparty/templates/namespaceauth.conf
|
329
341
|
- lib/poolparty/templates/poolparty.monitor
|
330
342
|
- lib/poolparty/templates/puppet.conf
|
343
|
+
- lib/poolparty/templates/puppetcleaner
|
331
344
|
- lib/poolparty/version.rb
|
332
345
|
- lib/poolpartycl.rb
|
333
346
|
- poolparty.gemspec
|
@@ -432,7 +445,8 @@ post_install_message: |-
|
|
432
445
|
Please check out the documentation for any questions or check out the google groups at
|
433
446
|
http://groups.google.com/group/poolpartyrb
|
434
447
|
|
435
|
-
|
448
|
+
More tutorials can be found at
|
449
|
+
http://poolpartyrb.com
|
436
450
|
|
437
451
|
Don't forget to check out the plugin tutorial @ http://poolpartyrb.com to extend PoolParty for your needs!
|
438
452
|
|