auser-poolparty 0.2.26 → 0.2.35

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/Manifest.txt +13 -2
  2. data/PostInstall.txt +2 -1
  3. data/Rakefile +8 -2
  4. data/bin/cloud-contract +1 -6
  5. data/bin/cloud-ensure-provisioning +33 -0
  6. data/bin/cloud-expand +1 -6
  7. data/bin/cloud-provision +22 -14
  8. data/bin/cloud-start +1 -0
  9. data/bin/messenger-get-load +26 -0
  10. data/bin/server-build-messenger +9 -2
  11. data/bin/server-fire-cmd +1 -1
  12. data/bin/server-get-load +4 -4
  13. data/bin/server-list-active +2 -2
  14. data/bin/server-rerun +4 -4
  15. data/bin/server-start-master +4 -4
  16. data/bin/server-start-node +4 -4
  17. data/lib/erlang/messenger/Rakefile +6 -0
  18. data/lib/erlang/messenger/ebin/master.app +1 -1
  19. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  20. data/lib/erlang/messenger/ebin/node.app +1 -1
  21. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  22. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  23. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  24. data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
  25. data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
  26. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  27. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  28. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  29. data/lib/erlang/messenger/include/defines.hrl +16 -0
  30. data/lib/erlang/messenger/pm_master.beam +0 -0
  31. data/lib/erlang/messenger/pm_node.beam +0 -0
  32. data/lib/erlang/messenger/src/pm_client.erl +35 -7
  33. data/lib/erlang/messenger/src/pm_cluster.erl +15 -12
  34. data/lib/erlang/messenger/src/pm_event_manager.erl +27 -0
  35. data/lib/erlang/messenger/src/pm_master.erl +44 -32
  36. data/lib/erlang/messenger/src/pm_master_event_handler.erl +72 -0
  37. data/lib/erlang/messenger/src/pm_master_supervisor.erl +9 -10
  38. data/lib/erlang/messenger/src/pm_node.erl +47 -27
  39. data/lib/erlang/messenger/src/pm_node_supervisor.erl +7 -9
  40. data/lib/erlang/messenger/src/utils.erl +20 -1
  41. data/lib/erlang/messenger/useful_snippets +6 -0
  42. data/lib/erlang/messenger/utils.beam +0 -0
  43. data/lib/poolparty/base_packages/haproxy.rb +6 -6
  44. data/lib/poolparty/base_packages/poolparty.rb +22 -43
  45. data/lib/poolparty/core/object.rb +3 -0
  46. data/lib/poolparty/helpers/console.rb +4 -0
  47. data/lib/poolparty/helpers/messenger.rb +14 -5
  48. data/lib/poolparty/helpers/optioner.rb +1 -1
  49. data/lib/poolparty/helpers/provisioner_base.rb +54 -15
  50. data/lib/poolparty/helpers/provisioners/master.rb +36 -8
  51. data/lib/poolparty/helpers/provisioners/slave.rb +5 -6
  52. data/lib/poolparty/net/remote_bases/ec2.rb +16 -18
  53. data/lib/poolparty/net/remote_instance.rb +4 -1
  54. data/lib/poolparty/net/remoter.rb +29 -10
  55. data/lib/poolparty/net/remoter_base.rb +2 -1
  56. data/lib/poolparty/plugins/git.rb +5 -6
  57. data/lib/poolparty/pool/base.rb +3 -2
  58. data/lib/poolparty/pool/cloud.rb +22 -14
  59. data/lib/poolparty/pool/plugin.rb +9 -0
  60. data/lib/poolparty/pool/pool.rb +2 -2
  61. data/lib/poolparty/pool/resources/class_package.rb +1 -1
  62. data/lib/poolparty/pool/resources/gem_package.rb +6 -4
  63. data/lib/poolparty/templates/puppetcleaner +6 -0
  64. data/lib/poolparty/version.rb +1 -1
  65. data/poolparty.gemspec +20 -6
  66. data/spec/poolparty/helpers/messenger_spec.rb +1 -1
  67. data/spec/poolparty/helpers/provisioner_base_spec.rb +3 -0
  68. data/spec/poolparty/net/remote_spec.rb +1 -0
  69. data/spec/poolparty/net/remoter_spec.rb +4 -1
  70. data/spec/poolparty/pool/cloud_spec.rb +2 -2
  71. data/spec/poolparty/pool/plugin_spec.rb +8 -1
  72. data/spec/poolparty/pool/resources/class_package_spec.rb +4 -4
  73. data/spec/poolparty/pool/resources/remote_file_spec.rb +1 -1
  74. data/website/index.html +1 -1
  75. metadata +20 -6
  76. data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
  77. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  78. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  79. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  80. 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 fqdn #{@instance.name} server master"' > /etc/default/puppet
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
- ps aux | grep "puppetmasterd" | awk '{print $2}' | xargs kill
37
- rm -rf /etc/puppet/ssl*
38
- puppetd --test 2>&1 &
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
- unless @describe_instances && !@describe_instances.empty?
37
- @id = 0
38
- @describe_instances = get_instances_description.each_with_index do |h,i|
39
- if h[:status] == "running"
40
- @name = @id == 0 ? "master" : "node#{@id}"
41
- @id += 1
42
- else
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
- end
52
- @describe_instances
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
- @cached_descriptions ||= EC2ResponseObject.get_descriptions(ec2.describe_instances).sort_by {|a| a[:launching_time]}
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
- "#{ssh_command(remote_instance)} '#{cmd}'"
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 --delete -azP --exclude cache -e '#{ssh_string}'"
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
- end
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
- PoolParty::Provisioner.provision_slave(inst, self)
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
- # prepare_reconfiguration
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 = "killall ruby 2>&1 && rm -rf /etc/puppet/ssl/*; puppetmasterd --verbose 2>&1"
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 => package(:name => "git-core")}) do
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
- exec(:name => "update-#{name}") do
20
- cwd ::File.dirname(parent.creates)
21
- command "git pull"
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
 
@@ -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
- :fileserver_base => "puppet:///files",
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",
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + "/resource"
3
3
 
4
4
  module PoolParty
5
5
  module Cloud
6
- def cloud(name=:main, &block)
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
- @manifest = build_manifest
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+") do |file|
99
- file << "class poolparty {"
100
- file << @manifest
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
- reset_resources!
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
- if ::FileTest.file?("/etc/puppet/manifests/classes/poolparty.pp")
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?
@@ -1,7 +1,7 @@
1
1
  module PoolParty
2
2
  module Pool
3
3
 
4
- def pool(name=:main, &block)
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
- execute_if("$hostname", "master") do
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
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+
3
+ . /etc/profile
4
+ ps aux | grep puppetmaster | awk '{print $2}' | xargs kill
5
+ rm -rf /etc/puppet/ssl
6
+ /usr/bin/env puppetmasterd --verbose
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 26
5
+ TINY = 35
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -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.26
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-27 00:00:00 -07:00
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.7.0
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/pm_event_handler.beam
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/pm_event_handler.erl
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
- Tutorials are at http://poolpartyrb.com
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