auser-poolparty 0.2.81 → 0.2.84

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 (49) hide show
  1. data/Capfile +1 -0
  2. data/Manifest.txt +13 -6
  3. data/PostInstall.txt +1 -1
  4. data/bin/cloud-configure +2 -1
  5. data/bin/cloud-handle-load +3 -3
  6. data/bin/cloud-maintain +2 -2
  7. data/bin/cloud-provision +4 -4
  8. data/bin/cloud-setup-dev +25 -0
  9. data/bin/cloud-start +1 -0
  10. data/bin/server-start-client +1 -1
  11. data/bin/server-start-master +1 -1
  12. data/bin/server-start-node +1 -1
  13. data/bin/server-write-new-nodes +26 -0
  14. data/lib/poolparty/capistrano.rb +18 -0
  15. data/lib/poolparty/exceptions/ProvisionerException.rb +5 -0
  16. data/lib/poolparty/helpers/optioner.rb +2 -1
  17. data/lib/poolparty/modules/cloud_resourcer.rb +17 -0
  18. data/lib/poolparty/modules/file_writer.rb +2 -2
  19. data/lib/poolparty/net/messenger.rb +1 -1
  20. data/lib/poolparty/net/remote_bases/ec2.rb +3 -2
  21. data/lib/poolparty/net/remoter.rb +12 -8
  22. data/lib/poolparty/plugins/git.rb +5 -1
  23. data/lib/poolparty/poolparty/cloud.rb +3 -1
  24. data/lib/poolparty/provisioners/capistrano/capistrano.rb +129 -0
  25. data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +58 -0
  26. data/lib/poolparty/provisioners/capistrano/recipies/base.rb +100 -0
  27. data/lib/poolparty/provisioners/capistrano/recipies/master.rb +120 -0
  28. data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +12 -0
  29. data/lib/poolparty/provisioners/provisioner_base.rb +98 -274
  30. data/lib/poolparty/templates/gem +12 -10
  31. data/lib/poolparty/version.rb +1 -1
  32. data/lib/poolparty.rb +5 -3
  33. data/poolparty.gemspec +18 -9
  34. data/spec/poolparty/helpers/optioner_spec.rb +1 -1
  35. data/spec/poolparty/net/remote_spec.rb +13 -14
  36. data/spec/poolparty/net/remoter_spec.rb +11 -11
  37. data/spec/poolparty/plugins/git_spec.rb +1 -1
  38. data/spec/poolparty/poolparty_spec.rb +1 -1
  39. data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +27 -0
  40. data/spec/poolparty/provisioners/provisioner_base_spec.rb +120 -0
  41. data/spec/poolparty/spec_helper.rb +15 -1
  42. data/website/index.html +1 -1
  43. metadata +18 -9
  44. data/lib/poolparty/provisioners/provisioners/become_master.rb +0 -166
  45. data/lib/poolparty/provisioners/provisioners/master.rb +0 -196
  46. data/lib/poolparty/provisioners/provisioners/slave.rb +0 -65
  47. data/spec/poolparty/helpers/provisioner_base_spec.rb +0 -137
  48. data/spec/poolparty/helpers/provisioners/master_spec.rb +0 -53
  49. data/spec/poolparty/helpers/provisioners/slave_spec.rb +0 -27
@@ -3,246 +3,104 @@
3
3
  This class only comes in to play when calling the setup commands on
4
4
  the development machine
5
5
  =end
6
+ require 'capistrano/cli'
7
+
6
8
  module PoolParty
7
9
  module Provisioner
8
10
 
9
- # Provision master
10
- # Convenience method to clean
11
- def self.provision_master(cloud, testing=false)
12
- Provisioner::Master.new(cloud).process_install!(testing)
13
- end
14
-
15
- def self.configure_master(cloud, testing=false)
16
- Provisioner::Master.new(cloud).process_configure!(testing)
17
- end
18
-
19
- def self.reconfigure_master(cloud, testing=false)
20
- Provisioner::Master.new(cloud).process_reconfigure!(testing)
21
- end
22
-
23
- def self.provision_slaves(cloud, testing=false)
24
- cloud.nonmaster_nonterminated_instances.each do |sl|
25
- provision_slave(sl, cloud, testing)
26
- end
27
- end
28
-
29
- def self.configure_slaves(cloud, testing=false)
30
- cloud.nonmaster_nonterminated_instances.each do |sl|
31
- configure_slave(sl, cloud, testing)
32
- end
33
- end
34
-
35
- def self.provision_slave(instance, cloud, testing=false)
36
- Provisioner::Slave.new(instance, cloud).process_install!(testing)
37
- end
38
-
39
- def self.configure_slave(instance, cloud, testing=false)
40
- Provisioner::Slave.new(instance, cloud).process_configure!(testing)
41
- end
42
-
43
- def self.become_master(cloud, testing=false)
44
- Provisioner::BecomeMaster.new(cloud).process_install!(testing)
45
- end
46
-
47
- def self.process_clean_reconfigure_for!(instance, cloud, testing=false)
48
- Provisioner::Master.new(cloud).process_clean_reconfigure_for!(instance, testing)
49
- end
50
-
51
- def self.clear_master_ssl_certs(cloud, testing=false)
52
- Provisioner::Master.new(cloud).clear_master_ssl_certs
11
+ def provisioner_for(inst)
12
+ PoolParty::Provisioner::Capistrano.new(inst, self, :ubuntu)
53
13
  end
54
14
 
55
15
  class ProvisionerBase
16
+ attr_accessor :config, :loaded_tasks, :instance, :cloud, :os
56
17
 
57
18
  include Configurable
58
19
  include CloudResourcer
59
20
  include FileWriter
60
21
 
61
- def initialize(instance,cld=self, os=:ubuntu)
22
+ def initialize(instance=nil, cld=self, os=:ubuntu, &block)
62
23
  @instance = instance
63
24
  @cloud = cld
64
25
 
65
26
  options(cloud.options) if cloud && cloud.respond_to?(:options)
66
- set_vars_from_options(instance.options) unless instance.nil? || !instance.options || !instance.options.empty?
67
- options(instance.options) if instance.respond_to?(:options)
27
+ # set_vars_from_options(instance.options) unless instance.nil? || !instance.options || !instance.options.empty?
28
+ # options(instance.options) if instance.respond_to?(:options)
29
+
30
+ @os = os.to_s.downcase.to_sym
31
+ self.instance_eval &block if block
68
32
 
69
- @os = os.to_s.downcase.to_sym
70
33
  loaded
71
34
  end
35
+
36
+ def provision_master?
37
+ !@instance.nil? && @instance.master?
38
+ end
39
+
72
40
  # Callback after initialized
73
- def loaded(opts={}, parent=self)
41
+ def loaded
42
+ end
43
+
44
+ def loaded_tasks
45
+ @loaded_tasks ||= []
74
46
  end
75
47
 
76
48
  ### Installation tasks
77
49
 
78
50
  # This is the actual runner for the installation
79
- def install
80
- valid? ? install_string : error
81
- end
82
- # Write the installation tasks to a file in the storage directory
83
- def write_install_file
84
- error unless valid?
85
- ::FileUtils.mkdir_p Base.storage_directory unless ::File.exists?(Base.storage_directory)
86
- provisioner_file = ::File.join(Base.storage_directory, "install_#{name}.sh")
87
- ::File.open(provisioner_file, "w+") {|f| f << install }
88
- end
89
- def name
90
- @instance.name
91
- end
92
- # TODO: Clean up this method
93
- def process_install!(testing=false)
51
+ def install(testing=false)
94
52
  error unless valid?
95
- write_install_file
96
53
  setup_runner
97
-
98
- unless testing
99
- vputs "Logging on to #{@instance.ip} (#{@instance.name})"
100
- @cloud.rsync_storage_files_to(@instance)
101
- vputs "Preparing configuration on the master"
102
-
54
+ unless testing
103
55
  before_install(@instance)
104
-
105
- # process_clean_reconfigure_for!(@instance, testing)
106
-
107
- vputs "Logging in and running provisioning on #{@instance.name}"
108
- # /bin/rm install_#{name}.sh
109
- cmd = "cd #{Base.remote_storage_path} && /bin/chmod +x install_#{name}.sh && /bin/sh install_#{name}.sh"
110
- verbose ? @cloud.run_command_on(cmd, @instance) : hide_output {@cloud.run_command_on(cmd, @instance)}
111
-
112
- process_clean_reconfigure_for!(@instance, testing)
113
-
56
+
57
+ vputs "Provisioning #{@instance.name}"
58
+ process_install!(testing)
59
+
114
60
  after_install(@instance)
115
61
  end
116
62
  end
117
- # Install callbacks
118
- # Before installation callback
119
- def before_install(instance)
120
- end
121
- def after_install(instance)
63
+ # The provisioner bases overwrite this method
64
+ def process_install!(testing=false)
122
65
  end
123
66
 
124
- ### Configuraton tasks
125
-
126
- def configure
127
- valid? ? configure_string : error
128
- end
129
- def write_configure_file
130
- error unless valid?
131
- provisioner_file = ::File.join(Base.storage_directory, "configure_#{name}.sh")
132
- ::File.open(provisioner_file, "w+") {|f| f << configure }
133
- end
134
- def process_configure!(testing=false)
67
+ # Configuration
68
+ def configure(testing=false)
135
69
  error unless valid?
136
- write_configure_file
137
70
  setup_runner
138
-
139
- unless testing
140
- vputs "Logging on to #{@instance.ip}"
141
- @cloud.rsync_storage_files_to(@instance)
142
- # && /bin/rm configure_#{name}.sh
143
- cmd = "cd #{Base.remote_storage_path} && /bin/chmod +x configure_#{name}.sh && /bin/sh configure_#{name}.sh"
144
- verbose ? @cloud.run_command_on(cmd, @instance) : hide_output {@cloud.run_command_on(cmd, @instance)}
145
- end
146
- end
147
- def process_clean_reconfigure_for!(instance, testing=false)
148
- if instance.is_a?(String)
149
- name = instance
150
- instance = MyOpenStruct.new(:name => name)
151
- end
152
- vputs "Cleaning certs from master: #{instance.name}"
153
- # puppetca --clean #{instance.name}.compute-1.internal; puppetca --clean #{instance.name}.ec2.internal
154
- # find /etc/puppet/ssl -type f -exec rm {} \;
155
- unless testing
156
- # @cloud.run_command_on("rm -rf /etc/puppet/ssl", instance) unless instance.master?
157
- str = returning String.new do |s|
158
- s << "puppetca --clean #{instance.name}.compute-1.internal 2>&1 > /dev/null;"
159
- s << "puppetca --clean #{instance.name}.ec2.internal 2>&1 > /dev/null"
160
- end
161
- # @cloud.run_command_on(str, @cloud.master)
162
- end
163
- end
164
- def clear_master_ssl_certs
165
- str = returning String.new do |s|
166
- s << "puppetca --clean master.compute-1.internal 2>&1 > /dev/null;"
167
- s << "puppetca --clean master.ec2.internal 2>&1 > /dev/null"
71
+ unless testing
72
+ before_configure(@instance)
73
+
74
+ vputs "Provisioning #{@instance.name}"
75
+ process_configure!(testing)
76
+
77
+ after_configure(@instance)
168
78
  end
169
- @cloud.run_command_on("if [ -f '/usr/bin/puppetcleaner' ]; then /usr/bin/env puppetcleaner `hostname`; else #{str}; fi", @cloud.master)
170
- end
171
- def process_reconfigure!(testing=false)
172
- @cloud.run_command_on(PoolParty::Remote::RemoteInstance.puppet_runner_command, @instance) unless testing
173
79
  end
80
+
174
81
  # Tasks that need to be performed everytime we do any
175
82
  # remote ssh'ing into any instance
176
83
  def setup_runner(force=false)
177
84
  @cloud.prepare_for_configuration
178
85
  @cloud.build_and_store_new_config_file(force)
179
86
  end
180
- def valid?
181
- true
182
- end
183
- def error
184
- "Error in installation"
185
- end
186
- # Gather all the tasks into one string
187
- def install_string
188
- [default_install_tasks, last_install_tasks].flatten.each do |task|
189
- case task.class
190
- when String
191
- task
192
- when Method
193
- self.send(task.to_sym)
194
- end
195
- end.nice_runnable
196
- end
197
- def last_install_tasks
198
- []
199
- end
200
- def configure_string
201
- [default_configure_tasks, last_configure_tasks].flatten.each do |task|
202
- case task.class
203
- when String
204
- task
205
- when Method
206
- self.send(task.to_sym)
207
- end
208
- end.nice_runnable
209
- end
210
- def last_configure_tasks
211
- []
87
+
88
+ # Callbacks
89
+ # Before installation callback
90
+ def before_install(instance)
212
91
  end
213
- # Tasks with default tasks
214
- # These are run on all the provisioners, master or slave
215
- def default_install_tasks
216
- [
217
- "#!/usr/bin/env sh",
218
- first_install_tasks,
219
- upgrade_system,
220
- install_rubygems,
221
- make_logger_directory,
222
- install_puppet,
223
- fix_rubygems,
224
- setup_system_for_poolparty,
225
- custom_install_tasks
226
- ] << install_tasks
92
+ def after_install(instance)
227
93
  end
228
- # Tasks with default configuration tasks
229
- # This is run on the provisioner, regardless
230
- def default_configure_tasks
231
- [
232
- custom_configure_tasks
233
- ] << configure_tasks
94
+ def before_configure(instance)
234
95
  end
235
- # Build a list of the tasks to run on the instance
236
- def install_tasks(a=[])
237
- @install_task ||= a
96
+ def after_configure(instance)
238
97
  end
239
- # Set the first tasks to be called on the instance
240
- # before any other tasks are run
241
- def first_install_tasks
242
- @cloud.first_install_tasks_for(@instances) || []
98
+
99
+ def valid?
100
+ true
243
101
  end
244
- def configure_tasks(a=[])
245
- @configure_tasks ||= a
102
+ def error
103
+ raise ProvisionerException.new("Error in installation")
246
104
  end
247
105
  # Custom installation tasks
248
106
  # Allow the remoter bases to attach their own tasks on the
@@ -274,107 +132,73 @@ module PoolParty
274
132
  :gentoo => "emerge"
275
133
  }
276
134
  end
135
+ def os_installer
136
+ "#{self.class.installers[@os]}"
137
+ end
277
138
  # Convenience method to grab the installer
278
139
  def installer_for(names=[])
279
140
  packages = names.is_a?(Array) ? names.join(" ") : names
280
141
  "#{self.class.installers[@os]} #{packages}"
281
142
  end
143
+
144
+ #TODO#
145
+ # Abstract the gems out
146
+ def base_gems
147
+ {
148
+ :logging => "http://rubyforge.org/frs/download.php/44731/logging-0.9.4.gem",
149
+ :ZenTest => "http://rubyforge.org/frs/download.php/45581/ZenTest-3.11.0.gem",
150
+ :ParseTree => "http://rubyforge.org/frs/download.php/45600/ParseTree-3.0.1.gem",
151
+ :ruby2ruby => "http://rubyforge.org/frs/download.php/45587/ruby2ruby-1.2.0.gem",
152
+ :activesupport => "http://rubyforge.org/frs/download.php/45627/activesupport-2.1.2.gem",
153
+ :"xml-simple" => "http://rubyforge.org/frs/download.php/18366/xml-simple-1.0.11.gem",
154
+ :RubyInline => "http://rubyforge.org/frs/download.php/45683/RubyInline-3.8.1.gem",
155
+ :flexmock => "http://rubyforge.org/frs/download.php/42580/flexmock-0.8.3.gem",
156
+ :hoe => "http://rubyforge.org/frs/download.php/45685/hoe-1.8.2.gem",
157
+ :lockfile => "http://rubyforge.org/frs/download.php/18698/lockfile-1.4.3.gem",
158
+ :rubyforge => "http://rubyforge.org/frs/download.php/45546/rubyforge-1.0.1.gem",
159
+ :rake => "http://rubyforge.org/frs/download.php/43954/rake-0.8.3.gem",
160
+ :sexp_processor => "http://rubyforge.org/frs/download.php/45589/sexp_processor-3.0.0.gem",
161
+ :capistrano => "http://rubyforge.org/frs/download.php/48031/capistrano-2.5.3.gem",
162
+ :poolparty => "http://github.com/auser/poolparty/tree/master%2Fpkg%2Fpoolparty.gem?raw=true",
163
+ "ec2" => "http://rubyforge.org/frs/download.php/43666/amazon-ec2-0.3.1.gem"
164
+ }
165
+ end
282
166
 
283
- # Install from the class-level
284
- def self.install(instance, cl=self)
285
- new(instance, cl).install
167
+ def download_base_gems_string
168
+ returning(Array.new) do |arr|
169
+ base_gems.each do |name, url|
170
+ arr << "wget #{url} -O #{Base.remote_storage_path}/#{name}.gem 2>&1"
171
+ end
172
+ end.join(" && ")
286
173
  end
287
-
288
- def self.configure(instance, cl=self)
289
- new(instance, cl).configure
174
+
175
+ def install_base_gems_string
176
+ returning(Array.new) do |arr|
177
+ base_gems.each do |name, url|
178
+ arr << "/usr/bin/gem install --ignore-dependencies --no-ri --no-rdoc #{Base.remote_storage_path}/#{name}.gem"
179
+ end
180
+ end.join(" && ")
290
181
  end
291
182
 
292
183
  # Template directory from the provisioner base
293
184
  def template_directory
294
185
  File.join(File.dirname(__FILE__), "..", "templates")
295
186
  end
296
-
297
- def install_rubygems
298
- <<-EOE
299
- #{installer_for("ruby rubygems")}
300
- EOE
301
- end
302
-
303
- def fix_rubygems
304
- <<-EOE
305
- echo '#{open(::File.join(template_directory, "gem")).read}' > /usr/bin/gem
306
- echo 'Updating rubygems'
307
- PAT=`/usr/bin/gem env gemdir`
308
- /usr/bin/gem update --system #{unix_hide_string}
309
- /usr/bin/gem update --system #{unix_hide_string}
310
- EOE
311
- end
312
-
313
- def create_local_node
314
- str = <<-EOS
315
- node default {
316
- include poolparty
317
- }
318
- EOS
319
- @cloud.list_of_running_instances.each do |ri|
320
- str << <<-EOS
321
- node "#{ri.name}" {}
322
- EOS
323
- end
324
- "echo '#{str}' > /etc/puppet/manifests/nodes/nodes.pp"
187
+
188
+ # Install from the class-level
189
+ def self.install(instance, cl=self, testing=false)
190
+ new(instance, cl).install(testing)
325
191
  end
326
-
327
- def upgrade_system
328
- case @os
329
- when :ubuntu
330
- "
331
- if grep -q 'http://mirrors.kernel.org/ubuntu hardy main universe' /etc/apt/sources.list
332
- then
333
- echo 'Updated already'
334
- else
335
- touch /etc/apt/sources.list
336
- echo 'deb http://mirrors.kernel.org/ubuntu hardy main universe' >> /etc/apt/sources.list
337
- aptitude update -y #{unix_hide_string} <<heredoc
338
- Y
339
192
 
340
- heredoc
341
- fi
342
- "
343
- else
344
- "# No system upgrade needed"
345
- end
346
- end
347
-
348
- def install_puppet
349
- "#{installer_for( puppet_packages )}"
350
- end
351
-
352
- def make_logger_directory
353
- "mkdir -p /var/log/poolparty"
193
+ def self.configure(instance, cl=self, testing=false)
194
+ new(instance, cl).configure(testing)
354
195
  end
355
196
 
356
- def create_poolparty_manifest
357
- <<-EOS
358
- cp #{Base.remote_storage_path}/poolparty.pp /etc/puppet/manifests/classes
359
- EOS
360
- end
361
- def setup_system_for_poolparty
362
- <<-EOS
363
- mkdir -p #{Base.base_config_directory}/ssl/private_keys
364
- mkdir -p #{Base.base_config_directory}/ssl/certs
365
- mkdir -p #{Base.base_config_directory}/ssl/public_keys
366
-
367
- cp #{Base.remote_storage_path}/#{Base.template_directory}/puppetrerun /usr/bin/puppetrerun
368
- chmod +x /usr/bin/puppetrerun
369
-
370
- mv #{Base.remote_storage_path}/cookie ~/.erlang.cookie
371
- chmod 400 ~/.erlang.cookie
372
- EOS
373
- end
374
197
  end
375
198
  end
376
199
  end
200
+
377
201
  ## Load the provisioners
378
- Dir[File.dirname(__FILE__) + "/provisioners/*.rb"].each do |file|
202
+ Dir[File.dirname(__FILE__) + "/*/*.rb"].each do |file|
379
203
  require file
380
204
  end
@@ -1,20 +1,18 @@
1
- #! /usr/bin/ruby1.8
1
+ #!/usr/bin/env ruby
2
2
  #--
3
3
  # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
4
  # All rights reserved.
5
5
  # See LICENSE.txt for permissions.
6
- # /usr/bin/gem is broken, so... have to use this until it is fixed
7
6
  #++
8
7
 
8
+ require 'rubygems'
9
+ require 'rubygems/gem_runner'
10
+ require 'rubygems/exceptions'
9
11
 
10
- require "rubygems"
11
- require "rubygems/gem_runner"
12
- Gem.manage_gems
12
+ required_version = Gem::Requirement.new "> 1.8.3"
13
13
 
14
- required_version = Gem::Version::Requirement.new(">= 1.8.0")
15
- unless required_version.satisfied_by?(Gem::Version.new(RUBY_VERSION))
16
- puts "Expected Ruby Version #{required_version}, was #{RUBY_VERSION}"
17
- exit(1)
14
+ unless required_version.satisfied_by? Gem.ruby_version then
15
+ abort "Expected Ruby Version #{required_version}, was #{Gem.ruby_version}"
18
16
  end
19
17
 
20
18
  # We need to preserve the original ARGV to use for passing gem options
@@ -22,4 +20,8 @@ end
22
20
  # it...its for the source building process.
23
21
  args = !ARGV.include?("--") ? ARGV.clone : ARGV[0...ARGV.index("--")]
24
22
 
25
- Gem::GemRunner.new.run(args)
23
+ begin
24
+ Gem::GemRunner.new.run args
25
+ rescue Gem::SystemExitException => e
26
+ exit e.exit_code
27
+ end
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 81
5
+ TINY = 84
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/poolparty.rb CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  # Load required gems
4
4
  @required_software = Array.new
5
- %w(activesupport ftools logging resolv ruby2ruby digest/sha2 open3).each do |lib|
5
+ %w(activesupport ftools logging resolv ruby2ruby digest/sha2 open3 capistrano).each do |lib|
6
6
  begin
7
7
  require lib
8
8
  rescue Exception => e
@@ -36,7 +36,9 @@ end
36
36
  ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__)
37
37
 
38
38
  ## Load PoolParty
39
- require "#{File.dirname(__FILE__)}/poolparty/version"
39
+ %w(version).each do |f|
40
+ require "#{File.dirname(__FILE__)}/poolparty/#{f}"
41
+ end
40
42
 
41
43
  %w(core modules exceptions dependency_resolutions aska monitors provisioners extra net).each do |dir|
42
44
  Dir[File.dirname(__FILE__) + "/poolparty/#{dir}/**.rb"].each do |file|
@@ -50,7 +52,7 @@ Logging.init :debug, :info, :warn, :error, :fatal
50
52
  module PoolParty
51
53
  include FileWriter
52
54
 
53
- def logger
55
+ def log
54
56
  @logger ||= make_new_logger
55
57
  end
56
58
 
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.81
4
+ version: 0.2.84
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Lerner
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-10 00:00:00 -08:00
12
+ date: 2008-12-13 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -70,6 +70,7 @@ executables:
70
70
  - cloud-refresh
71
71
  - cloud-rsync
72
72
  - cloud-run
73
+ - cloud-setup-dev
73
74
  - cloud-spec
74
75
  - cloud-ssh
75
76
  - cloud-start
@@ -99,6 +100,7 @@ executables:
99
100
  - server-stop-master
100
101
  - server-stop-node
101
102
  - server-update-hosts
103
+ - server-write-new-nodes
102
104
  extensions: []
103
105
 
104
106
  extra_rdoc_files:
@@ -111,6 +113,7 @@ extra_rdoc_files:
111
113
  - lib/poolparty/config/postlaunchmessage.txt
112
114
  - website/index.txt
113
115
  files:
116
+ - Capfile
114
117
  - History.txt
115
118
  - License.txt
116
119
  - Manifest.txt
@@ -131,6 +134,7 @@ files:
131
134
  - bin/cloud-refresh
132
135
  - bin/cloud-rsync
133
136
  - bin/cloud-run
137
+ - bin/cloud-setup-dev
134
138
  - bin/cloud-spec
135
139
  - bin/cloud-ssh
136
140
  - bin/cloud-start
@@ -160,6 +164,7 @@ files:
160
164
  - bin/server-stop-master
161
165
  - bin/server-stop-node
162
166
  - bin/server-update-hosts
167
+ - bin/server-write-new-nodes
163
168
  - config/hoe.rb
164
169
  - config/requirements.rb
165
170
  - examples/basic.rb
@@ -286,6 +291,7 @@ files:
286
291
  - lib/poolparty/base_packages/poolparty.rb
287
292
  - lib/poolparty/base_packages/ruby.rb
288
293
  - lib/poolparty/base_packages/runit.rb
294
+ - lib/poolparty/capistrano.rb
289
295
  - lib/poolparty/config/postlaunchmessage.txt
290
296
  - lib/poolparty/core/array.rb
291
297
  - lib/poolparty/core/class.rb
@@ -306,6 +312,7 @@ files:
306
312
  - lib/poolparty/exceptions/CloudNotFoundException.rb
307
313
  - lib/poolparty/exceptions/LoadRulesException.rb
308
314
  - lib/poolparty/exceptions/MasterException.rb
315
+ - lib/poolparty/exceptions/ProvisionerException.rb
309
316
  - lib/poolparty/exceptions/RemoteException.rb
310
317
  - lib/poolparty/exceptions/ResourceException.rb
311
318
  - lib/poolparty/exceptions/RuntimeException.rb
@@ -374,10 +381,12 @@ files:
374
381
  - lib/poolparty/poolparty/resources/symlink.rb
375
382
  - lib/poolparty/poolparty/resources/variable.rb
376
383
  - lib/poolparty/poolparty/script.rb
384
+ - lib/poolparty/provisioners/capistrano/capistrano.rb
385
+ - lib/poolparty/provisioners/capistrano/capistrano_configurer.rb
386
+ - lib/poolparty/provisioners/capistrano/recipies/base.rb
387
+ - lib/poolparty/provisioners/capistrano/recipies/master.rb
388
+ - lib/poolparty/provisioners/capistrano/recipies/slave.rb
377
389
  - lib/poolparty/provisioners/provisioner_base.rb
378
- - lib/poolparty/provisioners/provisioners/become_master.rb
379
- - lib/poolparty/provisioners/provisioners/master.rb
380
- - lib/poolparty/provisioners/provisioners/slave.rb
381
390
  - lib/poolparty/spec/core/string.rb
382
391
  - lib/poolparty/spec/matchers/a_spec_extensions_base.rb
383
392
  - lib/poolparty/spec/matchers/have_cron.rb
@@ -445,9 +454,6 @@ files:
445
454
  - spec/poolparty/helpers/binary_spec.rb
446
455
  - spec/poolparty/helpers/display_spec.rb
447
456
  - spec/poolparty/helpers/optioner_spec.rb
448
- - spec/poolparty/helpers/provisioner_base_spec.rb
449
- - spec/poolparty/helpers/provisioners/master_spec.rb
450
- - spec/poolparty/helpers/provisioners/slave_spec.rb
451
457
  - spec/poolparty/modules/cloud_resourcer_spec.rb
452
458
  - spec/poolparty/modules/configurable_spec.rb
453
459
  - spec/poolparty/modules/definable_resource.rb
@@ -456,6 +462,7 @@ files:
456
462
  - spec/poolparty/monitors/base_monitor_spec.rb
457
463
  - spec/poolparty/monitors/monitors/cpu_monitor_spec.rb
458
464
  - spec/poolparty/monitors/monitors/memory_monitor_spec.rb
465
+ - spec/poolparty/net/log/pool.log
459
466
  - spec/poolparty/net/messenger_spec.rb
460
467
  - spec/poolparty/net/remote_bases/ec2_spec.rb
461
468
  - spec/poolparty/net/remote_instance_spec.rb
@@ -497,6 +504,8 @@ files:
497
504
  - spec/poolparty/poolparty/test_plugins/virtual_host_template.erb
498
505
  - spec/poolparty/poolparty/test_plugins/webserver.rb
499
506
  - spec/poolparty/poolparty_spec.rb
507
+ - spec/poolparty/provisioners/capistrano/capistrano_spec.rb
508
+ - spec/poolparty/provisioners/provisioner_base_spec.rb
500
509
  - spec/poolparty/spec/core/string_spec.rb
501
510
  - spec/poolparty/spec_helper.rb
502
511
  - tasks/cloud.rake
@@ -521,7 +530,7 @@ files:
521
530
  has_rdoc: true
522
531
  homepage: http://poolparty.rubyforge.org
523
532
  post_install_message: |-
524
- Get ready to jump in the pool, you just installed PoolParty! (Updated at 13:44 12/10/08)
533
+ Get ready to jump in the pool, you just installed PoolParty! (Updated at 19:18 12/13/08)
525
534
 
526
535
  To get started, run the generator:
527
536
 
@@ -33,7 +33,7 @@ describe "Option Parser" do
33
33
  @op = PoolParty::Optioner.new(%w( -v -i 1 five six -x), {:abstract => true, :parse_options => false})
34
34
  end
35
35
  it "should have an array of default boolean args" do
36
- @op.boolean_args.sort.should == ['-V', '-h', '-t', '-v']
36
+ @op.boolean_args.sort.should == ['--debug', '-V', '-h', '-t', '-v']
37
37
  end
38
38
  it "should split ARGV into flagged and unflagged arg arrays" do
39
39
  @op.unflagged_args.sort.sort.should == ["five", "six"]