auser-poolparty 0.2.79 → 0.2.80

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 (66) hide show
  1. data/Manifest.txt +38 -33
  2. data/PostInstall.txt +1 -1
  3. data/bin/cloud-provision +1 -1
  4. data/bin/cloud-spec +40 -0
  5. data/lib/poolparty.rb +2 -2
  6. data/lib/poolparty/base_packages/poolparty.rb +1 -1
  7. data/lib/poolparty/extra/deployments.rb +31 -0
  8. data/lib/poolparty/helpers/binary.rb +9 -0
  9. data/lib/poolparty/modules/cloud_dsl.rb +1 -1
  10. data/lib/poolparty/modules/cloud_resourcer.rb +2 -0
  11. data/lib/poolparty/modules/file_writer.rb +2 -2
  12. data/lib/poolparty/net/messenger.rb +1 -1
  13. data/lib/poolparty/net/remote_bases/ec2.rb +5 -2
  14. data/lib/poolparty/net/remoter.rb +2 -4
  15. data/lib/poolparty/net/remoter_base.rb +7 -0
  16. data/lib/poolparty/poolparty/cloud.rb +22 -7
  17. data/lib/poolparty/poolparty/plugin_model.rb +4 -4
  18. data/lib/poolparty/poolparty/pool.rb +1 -0
  19. data/lib/poolparty/poolparty/resource.rb +1 -1
  20. data/lib/poolparty/poolparty/resources/directory.rb +2 -2
  21. data/lib/poolparty/poolparty/resources/file.rb +2 -2
  22. data/lib/poolparty/poolparty/resources/remote_file.rb +1 -1
  23. data/lib/poolparty/poolparty/resources/remote_user.rb +17 -0
  24. data/lib/poolparty/{helpers → provisioners}/provisioner_base.rb +10 -4
  25. data/lib/poolparty/{helpers → provisioners}/provisioners/master.rb +11 -7
  26. data/lib/poolparty/{helpers → provisioners}/provisioners/slave.rb +0 -0
  27. data/lib/poolparty/templates/puppetrerun +2 -1
  28. data/lib/poolparty/version.rb +1 -1
  29. data/poolparty.gemspec +42 -36
  30. data/spec/poolparty/extra/deployments_spec.rb +64 -0
  31. data/spec/poolparty/helpers/provisioner_base_spec.rb +0 -1
  32. data/spec/poolparty/helpers/provisioners/master_spec.rb +0 -1
  33. data/spec/poolparty/helpers/provisioners/slave_spec.rb +0 -1
  34. data/spec/poolparty/{pool → poolparty}/base_spec.rb +0 -0
  35. data/spec/poolparty/{pool → poolparty}/cloud_spec.rb +37 -0
  36. data/spec/poolparty/{pool → poolparty}/configurers/files/ruby_basic.rb +0 -0
  37. data/spec/poolparty/{pool → poolparty}/configurers/files/ruby_plugins.rb +0 -0
  38. data/spec/poolparty/{pool → poolparty}/configurers/ruby_spec.rb +0 -0
  39. data/spec/poolparty/{pool → poolparty}/custom_resource_spec.rb +0 -0
  40. data/spec/poolparty/{pool → poolparty}/example_spec.rb +0 -0
  41. data/spec/poolparty/{pool → poolparty}/plugin_model_spec.rb +0 -0
  42. data/spec/poolparty/{pool → poolparty}/plugin_spec.rb +0 -0
  43. data/spec/poolparty/{pool → poolparty}/pool_spec.rb +0 -0
  44. data/spec/poolparty/{pool → poolparty}/resource_spec.rb +0 -0
  45. data/spec/poolparty/{pool → poolparty}/resources/class_package_spec.rb +0 -0
  46. data/spec/poolparty/{pool → poolparty}/resources/conditional_spec.rb +0 -0
  47. data/spec/poolparty/{pool → poolparty}/resources/cron_spec.rb +0 -0
  48. data/spec/poolparty/{pool → poolparty}/resources/directory_spec.rb +0 -0
  49. data/spec/poolparty/{pool → poolparty}/resources/exec_spec.rb +0 -0
  50. data/spec/poolparty/{pool → poolparty}/resources/file_spec.rb +0 -0
  51. data/spec/poolparty/{pool → poolparty}/resources/gem_spec.rb +0 -0
  52. data/spec/poolparty/{pool → poolparty}/resources/host_spec.rb +0 -0
  53. data/spec/poolparty/{pool → poolparty}/resources/package_spec.rb +0 -0
  54. data/spec/poolparty/{pool → poolparty}/resources/remote_file_spec.rb +0 -0
  55. data/spec/poolparty/{pool → poolparty}/resources/service_spec.rb +0 -0
  56. data/spec/poolparty/{pool → poolparty}/resources/sshkey_spec.rb +0 -0
  57. data/spec/poolparty/{pool → poolparty}/resources/symlink_spec.rb +0 -0
  58. data/spec/poolparty/poolparty/resources/user_spec.rb +38 -0
  59. data/spec/poolparty/{pool → poolparty}/resources/variable_spec.rb +0 -0
  60. data/spec/poolparty/{pool → poolparty}/script_spec.rb +0 -0
  61. data/spec/poolparty/{pool → poolparty}/test_plugins/sshkey_test +0 -0
  62. data/spec/poolparty/{pool → poolparty}/test_plugins/virtual_host_template.erb +0 -0
  63. data/spec/poolparty/{pool → poolparty}/test_plugins/webserver.rb +0 -0
  64. data/website/index.html +107 -0
  65. metadata +42 -36
  66. data/lib/erlang/messenger/src/pm_client_old.erl +0 -52
@@ -47,6 +47,7 @@ module PoolParty
47
47
 
48
48
  def setup_defaults
49
49
  plugin_directory "#{::File.dirname(pool_specfile ? pool_specfile : Dir.pwd)}/plugins"
50
+ PoolParty::Extra::Deployments.include_deployments "#{Dir.pwd}/deployments"
50
51
  end
51
52
 
52
53
  # This is where the entire process starts
@@ -225,7 +225,7 @@ module PoolParty
225
225
  :subscribe, :owner, :group, :path, :mode, :source, :notify, :subscribe, :check, :creates, :cwd, :command, :ensure,
226
226
  :require, :schedule, :range, :alias, :hour, :minute, :user, :month, :monthday, :name, :onlyif, :unless, :refreshonly,
227
227
  :refresh, :content, :template, :ip, :repeat, :provider, :key, :device, :fstype, :remounts, :options, :atboot, :before,
228
- :binary, :status, :start, :stop, :restart, :pattern, :recurse
228
+ :binary, :status, :start, :stop, :restart, :pattern, :recurse, :home
229
229
  ]
230
230
  end
231
231
  def key
@@ -4,8 +4,8 @@ module PoolParty
4
4
  class Directory < Resource
5
5
 
6
6
  default_options({
7
- :mode => 644,
8
- :owner => "#{Base.user}"
7
+ :mode => 644
8
+ # :owner => "#{Base.user}"
9
9
  })
10
10
 
11
11
  def class_type_name
@@ -5,8 +5,8 @@ module PoolParty
5
5
 
6
6
  default_options({
7
7
  :ensure => "file",
8
- :mode => 644,
9
- :owner => "#{Base.user}"
8
+ :mode => 644
9
+ # :owner => "#{Base.user}"
10
10
  })
11
11
 
12
12
  def disallowed_options
@@ -8,7 +8,7 @@ module PoolParty
8
8
  default_options({
9
9
  :ensure => "present",
10
10
  :mode => 644,
11
- :owner => "#{Base.user}",
11
+ # :owner => "#{Base.user}",
12
12
  :source => nil
13
13
  })
14
14
 
@@ -0,0 +1,17 @@
1
+ module PoolParty
2
+ module Resources
3
+
4
+ class RemoteUser < Resource
5
+
6
+ default_options({
7
+ :shell => "/bin/sh"
8
+ })
9
+
10
+ def class_type_name
11
+ "user"
12
+ end
13
+
14
+ end
15
+
16
+ end
17
+ end
@@ -98,7 +98,7 @@ module PoolParty
98
98
 
99
99
  before_install(@instance)
100
100
 
101
- process_clean_reconfigure_for!(@instance, testing)
101
+ # process_clean_reconfigure_for!(@instance, testing)
102
102
 
103
103
  vputs "Logging in and running provisioning on #{@instance.name}"
104
104
  # /bin/rm install_#{name}.sh
@@ -162,7 +162,7 @@ module PoolParty
162
162
  s << "puppetca --clean master.compute-1.internal 2>&1 > /dev/null;"
163
163
  s << "puppetca --clean master.ec2.internal 2>&1 > /dev/null"
164
164
  end
165
- @cloud.run_command_on("if [ -f '/usr/bin/puppetcleaner' ]; then /usr/bin/env puppetcleaner; else #{str}; fi", @cloud.master)
165
+ @cloud.run_command_on("if [ -f '/usr/bin/puppetcleaner' ]; then /usr/bin/env puppetcleaner `hostname`; else #{str}; fi", @cloud.master)
166
166
  end
167
167
  def process_reconfigure!(testing=false)
168
168
  @cloud.run_command_on(PoolParty::Remote::RemoteInstance.puppet_runner_command, @instance) unless testing
@@ -211,6 +211,7 @@ module PoolParty
211
211
  def default_install_tasks
212
212
  [
213
213
  "#!/usr/bin/env sh",
214
+ first_install_tasks,
214
215
  upgrade_system,
215
216
  install_rubygems,
216
217
  make_logger_directory,
@@ -231,6 +232,11 @@ module PoolParty
231
232
  def install_tasks(a=[])
232
233
  @install_task ||= a
233
234
  end
235
+ # Set the first tasks to be called on the instance
236
+ # before any other tasks are run
237
+ def first_install_tasks
238
+ @cloud.first_install_tasks_for(@instances) || []
239
+ end
234
240
  def configure_tasks(a=[])
235
241
  @configure_tasks ||= a
236
242
  end
@@ -357,8 +363,8 @@ fi
357
363
  cp #{Base.remote_storage_path}/#{Base.template_directory}/puppetrerun /usr/bin/puppetrerun
358
364
  chmod +x /usr/bin/puppetrerun
359
365
 
360
- cp #{Base.remote_storage_path}/#{Base.template_directory}/puppetcleaner /usr/bin/puppetcleaner
361
- chmod +x /usr/bin/puppetcleaner
366
+ mv #{Base.remote_storage_path}/cookie ~/.erlang.cookie
367
+ chmod 400 ~/.erlang.cookie
362
368
  EOS
363
369
  end
364
370
  end
@@ -15,10 +15,15 @@ module PoolParty
15
15
  def error
16
16
  raise RemoteException.new(:could_not_install, "Your cloud does not have a master")
17
17
  end
18
+
19
+ def first_install_tasks
20
+ [
21
+ create_local_hosts_entry
22
+ ]
23
+ end
18
24
 
19
25
  def install_tasks
20
- [
21
- create_local_hosts_entry,
26
+ [
22
27
  setup_basic_structure,
23
28
  setup_configs,
24
29
  setup_fileserver,
@@ -128,14 +133,13 @@ wget http://github.com/auser/poolparty/tree/master%2Fpkg%2Fpoolparty.gem?raw=tru
128
133
  EOE
129
134
  end
130
135
 
131
- # ps aux | grep puppetmasterd | awk '{print $2}' | xargs kill
132
136
  # /etc/init.d/puppetmaster stop; rm -rf /etc/puppet/ssl; /etc/init.d/puppetmaster start
137
+ # ps aux | grep puppetmaster | grep -v grep | awk '{print $2}' | xargs kill;
133
138
  def restart_puppetmaster
134
139
  <<-EOS
135
140
  echo "(Re)starting poolparty"
136
141
  . /etc/profile
137
- # /etc/init.d/puppetmaster stop #{unix_hide_string}
138
- ps aux | grep puppetmaster | awk '{print $2}' | xargs kill;rm -rf /etc/poolparty/ssl;puppetmasterd --verbose;/etc/init.d/puppetmaster start
142
+ /etc/init.d/puppetmaster stop;rm -rf /etc/poolparty/ssl;puppetmasterd --verbose;/etc/init.d/puppetmaster start
139
143
  EOS
140
144
  end
141
145
 
@@ -181,10 +185,10 @@ cp #{Base.remote_storage_path}/poolparty.pp /etc/puppet/manifests/classes/poolpa
181
185
 
182
186
  def restart_puppetd
183
187
  # /usr/bin/puppetrerun
188
+ # /usr/bin/puppetcleaner master
184
189
  <<-EOS
185
190
  echo "Running puppet manifest"
186
- /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master
187
- /usr/bin/puppetcleaner master
191
+ /usr/bin/puppetrerun
188
192
  EOS
189
193
  end
190
194
  end
@@ -11,7 +11,8 @@ if [ $(/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server mast
11
11
  if [ $(/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master) ]; then
12
12
  echo "Run successfully" && exit 0
13
13
  else
14
- /etc/init.d/puppetmaster stop;rm -rf /etc/poolparty/ssl;/etc/init.d/puppetmaster start
14
+ # /etc/init.d/puppetmaster stop;rm -rf /etc/poolparty/ssl;/etc/init.d/puppetmaster start
15
+ rm /etc/poolparty/ssl/$HN*
15
16
  /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master
16
17
  fi
17
18
  else
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 79
5
+ TINY = 81
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
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.79
4
+ version: 0.2.80
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-06 00:00:00 -08:00
12
+ date: 2008-12-09 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-spec
73
74
  - cloud-ssh
74
75
  - cloud-start
75
76
  - cloud-stats
@@ -130,6 +131,7 @@ files:
130
131
  - bin/cloud-refresh
131
132
  - bin/cloud-rsync
132
133
  - bin/cloud-run
134
+ - bin/cloud-spec
133
135
  - bin/cloud-ssh
134
136
  - bin/cloud-start
135
137
  - bin/cloud-stats
@@ -264,7 +266,6 @@ files:
264
266
  - lib/erlang/messenger/src/master_app.erl
265
267
  - lib/erlang/messenger/src/node_app.erl
266
268
  - lib/erlang/messenger/src/pm_client.erl
267
- - lib/erlang/messenger/src/pm_client_old.erl
268
269
  - lib/erlang/messenger/src/pm_client_supervisor.erl
269
270
  - lib/erlang/messenger/src/pm_cluster.erl
270
271
  - lib/erlang/messenger/src/pm_event_manager.erl
@@ -311,14 +312,12 @@ files:
311
312
  - lib/poolparty/exceptions/SpecException.rb
312
313
  - lib/poolparty/exceptions/TemplateNotFound.rb
313
314
  - lib/poolparty/exceptions/UnacceptableCommand.rb
315
+ - lib/poolparty/extra/deployments.rb
314
316
  - lib/poolparty/helpers/binary.rb
315
317
  - lib/poolparty/helpers/console.rb
316
318
  - lib/poolparty/helpers/display.rb
317
319
  - lib/poolparty/helpers/nice_printer.rb
318
320
  - lib/poolparty/helpers/optioner.rb
319
- - lib/poolparty/helpers/provisioner_base.rb
320
- - lib/poolparty/helpers/provisioners/master.rb
321
- - lib/poolparty/helpers/provisioners/slave.rb
322
321
  - lib/poolparty/helpers/ruberl.rb
323
322
  - lib/poolparty/modules/cloud_dsl.rb
324
323
  - lib/poolparty/modules/cloud_resourcer.rb
@@ -369,11 +368,15 @@ files:
369
368
  - lib/poolparty/poolparty/resources/mount.rb
370
369
  - lib/poolparty/poolparty/resources/package.rb
371
370
  - lib/poolparty/poolparty/resources/remote_file.rb
371
+ - lib/poolparty/poolparty/resources/remote_user.rb
372
372
  - lib/poolparty/poolparty/resources/service.rb
373
373
  - lib/poolparty/poolparty/resources/sshkey.rb
374
374
  - lib/poolparty/poolparty/resources/symlink.rb
375
375
  - lib/poolparty/poolparty/resources/variable.rb
376
376
  - lib/poolparty/poolparty/script.rb
377
+ - lib/poolparty/provisioners/provisioner_base.rb
378
+ - lib/poolparty/provisioners/provisioners/master.rb
379
+ - lib/poolparty/provisioners/provisioners/slave.rb
377
380
  - lib/poolparty/spec/core/string.rb
378
381
  - lib/poolparty/spec/matchers/a_spec_extensions_base.rb
379
382
  - lib/poolparty/spec/matchers/have_cron.rb
@@ -437,6 +440,7 @@ files:
437
440
  - spec/poolparty/core/string_spec.rb
438
441
  - spec/poolparty/core/time_spec.rb
439
442
  - spec/poolparty/dependency_resolutions/base_spec.rb
443
+ - spec/poolparty/extra/deployments_spec.rb
440
444
  - spec/poolparty/helpers/binary_spec.rb
441
445
  - spec/poolparty/helpers/display_spec.rb
442
446
  - spec/poolparty/helpers/optioner_spec.rb
@@ -461,35 +465,36 @@ files:
461
465
  - spec/poolparty/plugins/git_spec.rb
462
466
  - spec/poolparty/plugins/line_spec.rb
463
467
  - spec/poolparty/plugins/svn_spec.rb
464
- - spec/poolparty/pool/base_spec.rb
465
- - spec/poolparty/pool/cloud_spec.rb
466
- - spec/poolparty/pool/configurers/files/ruby_basic.rb
467
- - spec/poolparty/pool/configurers/files/ruby_plugins.rb
468
- - spec/poolparty/pool/configurers/ruby_spec.rb
469
- - spec/poolparty/pool/custom_resource_spec.rb
470
- - spec/poolparty/pool/example_spec.rb
471
- - spec/poolparty/pool/plugin_model_spec.rb
472
- - spec/poolparty/pool/plugin_spec.rb
473
- - spec/poolparty/pool/pool_spec.rb
474
- - spec/poolparty/pool/resource_spec.rb
475
- - spec/poolparty/pool/resources/class_package_spec.rb
476
- - spec/poolparty/pool/resources/conditional_spec.rb
477
- - spec/poolparty/pool/resources/cron_spec.rb
478
- - spec/poolparty/pool/resources/directory_spec.rb
479
- - spec/poolparty/pool/resources/exec_spec.rb
480
- - spec/poolparty/pool/resources/file_spec.rb
481
- - spec/poolparty/pool/resources/gem_spec.rb
482
- - spec/poolparty/pool/resources/host_spec.rb
483
- - spec/poolparty/pool/resources/package_spec.rb
484
- - spec/poolparty/pool/resources/remote_file_spec.rb
485
- - spec/poolparty/pool/resources/service_spec.rb
486
- - spec/poolparty/pool/resources/sshkey_spec.rb
487
- - spec/poolparty/pool/resources/symlink_spec.rb
488
- - spec/poolparty/pool/resources/variable_spec.rb
489
- - spec/poolparty/pool/script_spec.rb
490
- - spec/poolparty/pool/test_plugins/sshkey_test
491
- - spec/poolparty/pool/test_plugins/virtual_host_template.erb
492
- - spec/poolparty/pool/test_plugins/webserver.rb
468
+ - spec/poolparty/poolparty/base_spec.rb
469
+ - spec/poolparty/poolparty/cloud_spec.rb
470
+ - spec/poolparty/poolparty/configurers/files/ruby_basic.rb
471
+ - spec/poolparty/poolparty/configurers/files/ruby_plugins.rb
472
+ - spec/poolparty/poolparty/configurers/ruby_spec.rb
473
+ - spec/poolparty/poolparty/custom_resource_spec.rb
474
+ - spec/poolparty/poolparty/example_spec.rb
475
+ - spec/poolparty/poolparty/plugin_model_spec.rb
476
+ - spec/poolparty/poolparty/plugin_spec.rb
477
+ - spec/poolparty/poolparty/pool_spec.rb
478
+ - spec/poolparty/poolparty/resource_spec.rb
479
+ - spec/poolparty/poolparty/resources/class_package_spec.rb
480
+ - spec/poolparty/poolparty/resources/conditional_spec.rb
481
+ - spec/poolparty/poolparty/resources/cron_spec.rb
482
+ - spec/poolparty/poolparty/resources/directory_spec.rb
483
+ - spec/poolparty/poolparty/resources/exec_spec.rb
484
+ - spec/poolparty/poolparty/resources/file_spec.rb
485
+ - spec/poolparty/poolparty/resources/gem_spec.rb
486
+ - spec/poolparty/poolparty/resources/host_spec.rb
487
+ - spec/poolparty/poolparty/resources/package_spec.rb
488
+ - spec/poolparty/poolparty/resources/remote_file_spec.rb
489
+ - spec/poolparty/poolparty/resources/service_spec.rb
490
+ - spec/poolparty/poolparty/resources/sshkey_spec.rb
491
+ - spec/poolparty/poolparty/resources/symlink_spec.rb
492
+ - spec/poolparty/poolparty/resources/user_spec.rb
493
+ - spec/poolparty/poolparty/resources/variable_spec.rb
494
+ - spec/poolparty/poolparty/script_spec.rb
495
+ - spec/poolparty/poolparty/test_plugins/sshkey_test
496
+ - spec/poolparty/poolparty/test_plugins/virtual_host_template.erb
497
+ - spec/poolparty/poolparty/test_plugins/webserver.rb
493
498
  - spec/poolparty/poolparty_spec.rb
494
499
  - spec/poolparty/spec/core/string_spec.rb
495
500
  - spec/poolparty/spec_helper.rb
@@ -506,6 +511,7 @@ files:
506
511
  - test/test_helper.rb
507
512
  - test/test_pool_spec_generator.rb
508
513
  - test/test_poolparty.rb
514
+ - website/index.html
509
515
  - website/index.txt
510
516
  - website/javascripts/rounded_corners_lite.inc.js
511
517
  - website/stylesheets/code.css
@@ -514,7 +520,7 @@ files:
514
520
  has_rdoc: true
515
521
  homepage: http://poolparty.rubyforge.org
516
522
  post_install_message: |-
517
- Get ready to jump in the pool, you just installed PoolParty! (Updated at 13:46 12/06/08)
523
+ Get ready to jump in the pool, you just installed PoolParty! (Updated at 15:39 12/09/08)
518
524
 
519
525
  To get started, run the generator:
520
526
 
@@ -0,0 +1,64 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "deployments" do
4
+ describe "class" do
5
+ before(:each) do
6
+ @klass = PoolParty::Extra::Deployments
7
+ @file = "hanky_danky_ranky.pool"
8
+ ::File.stub!(:file?).with(@file).and_return false
9
+ end
10
+ it "should have the singleton method include_deployment" do
11
+ @klass.respond_to?(:include_deployment).should == true
12
+ end
13
+ it "should return nil if the file doesn't exist" do
14
+ @klass.include_deployment(@file).should == nil
15
+ end
16
+ describe "existing file" do
17
+ before(:each) do
18
+ ::File.stub!(:file?).and_return true
19
+ @contents = "'hello goober'"
20
+ @klass.stub!(:open).with(@file).and_return @file
21
+ @file.stub!(:read).and_return @contents
22
+ end
23
+ it "should not be nil if the file does exist" do
24
+ @klass.include_deployment(@file).should_not == nil
25
+ end
26
+ it "should create a class called PoolPartyHankyDankyRankyClass" do
27
+ @klass.include_deployment(@file).should_not == nil
28
+ Object.const_defined?(:PoolPartyHankyDankyRankyClass).should == true
29
+ end
30
+ it "should create a method on the class called enable" do
31
+ PoolPartyHankyDankyRankyClass.new.respond_to?(:enable).should == true
32
+ end
33
+ it "should add the contents of the file to be eval'd on the method" do
34
+ PoolPartyHankyDankyRankyClass.new.enable.should == "hello goober"
35
+ end
36
+ end
37
+ describe "include_deployments" do
38
+ before(:each) do
39
+ ::File.stub!(:directory?).and_return false
40
+ @dir = "/deployments"
41
+ end
42
+ it "should have the method include_deployments" do
43
+ @klass.respond_to?(:include_deployments).should == true
44
+ end
45
+ it "should return nil if the directory does not exist" do
46
+ @klass.include_deployments(@dir).should == nil
47
+ end
48
+ describe "existing directory" do
49
+ before(:each) do
50
+ ::File.stub!(:directory?).and_return true
51
+ @contents = []
52
+ Dir.stub!(:[]).and_return @contents
53
+ end
54
+ it "should not be nil if the directory exists" do
55
+ @klass.include_deployments(@dir).should_not == nil
56
+ end
57
+ it "should call Dir.[] on the directory" do
58
+ Dir.should_receive(:[]).with("#{@dir}/*").and_return []
59
+ @klass.include_deployments(@dir)
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -1,5 +1,4 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
- require File.dirname(__FILE__) + '/../../../lib/poolparty/helpers/provisioner_base'
3
2
 
4
3
  include Provisioner
5
4
 
@@ -1,5 +1,4 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
- require File.dirname(__FILE__) + '/../../../../lib/poolparty/helpers/provisioner_base'
3
2
 
4
3
  include Provisioner
5
4
 
@@ -1,5 +1,4 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
- require File.dirname(__FILE__) + '/../../../../lib/poolparty/helpers/provisioner_base'
3
2
 
4
3
  include Provisioner
5
4
 
File without changes
@@ -316,6 +316,9 @@ describe "Cloud" do
316
316
  it "should call before_configuration_tasks callback" do
317
317
  @cloud.should_receive(:before_configuration_tasks).once
318
318
  end
319
+ it "should call call write_unique_cookie" do
320
+ @cloud.should_receive(:write_unique_cookie).once
321
+ end
319
322
  describe "copy_custom_monitors" do
320
323
  before(:each) do
321
324
  Base.stub!(:custom_monitor_directories).and_return ["/tmp/monitors/custom_monitor.rb"]
@@ -364,6 +367,40 @@ describe "Cloud" do
364
367
  end
365
368
  end
366
369
  end
370
+ describe "minimum_runnable_options" do
371
+ it "should be an array on the cloud" do
372
+ @cloud.minimum_runnable_options.class.should == Array
373
+ end
374
+ ["keypair","minimum_instances","maximum_instances",
375
+ "expand_when","contract_when","set_master_ip_to"].each do |k|
376
+ eval <<-EOE
377
+ it "should have #{k} in the minimum_runnable_options" do
378
+ @cloud.minimum_runnable_options.include?(:#{k}).should == true
379
+ end
380
+ EOE
381
+ end
382
+ it "should include the custom_minimum_runnable_options" do
383
+ @cloud.stub!(:custom_minimum_runnable_options).and_return [:blank]
384
+ @cloud.minimum_runnable_options.include?(:blank).should == true
385
+ end
386
+ end
387
+ describe "unique_cookie" do
388
+ it "should have the method generate generate_unique_cookie_string" do
389
+ @cloud.respond_to?(:generate_unique_cookie_string).should == true
390
+ end
391
+ it "should call hexdigest to digest/sha" do
392
+ Digest::SHA256.should_receive(:hexdigest).with("#{@cloud.full_keypair_name}#{@cloud.name}")
393
+ @cloud.generate_unique_cookie_string
394
+ end
395
+ it "should generate the same cookie string every time" do
396
+ older = @cloud.generate_unique_cookie_string
397
+ old = @cloud.generate_unique_cookie_string
398
+ new_one = @cloud.generate_unique_cookie_string
399
+ older.should == old
400
+ old.should == new_one
401
+ new_one.should == older
402
+ end
403
+ end
367
404
  end
368
405
 
369
406
  describe "instances" do