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.
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