auser-poolparty 0.2.79 → 0.2.80

Sign up to get free protection for your applications and to get access to all the features.
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