auser-poolparty 0.2.35 → 0.2.36

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/Manifest.txt +5 -9
  2. data/bin/cloud-start +1 -1
  3. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  4. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  5. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  6. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  7. data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
  8. data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
  9. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  10. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  11. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  12. data/lib/erlang/messenger/src/pm_client.erl +19 -13
  13. data/lib/erlang/messenger/src/pm_cluster.erl +7 -6
  14. data/lib/erlang/messenger/src/pm_master.erl +5 -8
  15. data/lib/poolparty/aska/aska.rb +111 -0
  16. data/lib/poolparty/base_packages/poolparty.rb +23 -13
  17. data/lib/poolparty/core/array.rb +3 -0
  18. data/lib/poolparty/core/kernel.rb +2 -2
  19. data/lib/poolparty/core/object.rb +17 -1
  20. data/lib/poolparty/core/symbol.rb +6 -0
  21. data/lib/poolparty/helpers/provisioner_base.rb +3 -7
  22. data/lib/poolparty/helpers/provisioners/master.rb +9 -6
  23. data/lib/poolparty/helpers/provisioners/slave.rb +3 -4
  24. data/lib/poolparty/monitors/base_monitor.rb +32 -5
  25. data/lib/poolparty/{helpers → net}/messenger.rb +1 -1
  26. data/lib/poolparty/net/remoter.rb +4 -3
  27. data/lib/poolparty/pool/cloud.rb +1 -1
  28. data/lib/poolparty/pool/script.rb +1 -1
  29. data/lib/poolparty/templates/puppetcleaner +3 -1
  30. data/lib/poolparty/version.rb +1 -1
  31. data/lib/poolparty.rb +1 -1
  32. data/poolparty.gemspec +7 -11
  33. data/spec/poolparty/aska/aska_spec.rb +97 -0
  34. data/spec/poolparty/monitors/base_monitor_spec.rb +83 -2
  35. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +0 -1
  36. data/spec/poolparty/{helpers → net}/messenger_spec.rb +2 -0
  37. data/spec/poolparty/net/remote_bases/ec2_spec.rb +3 -2
  38. data/spec/poolparty/net/remote_instance_spec.rb +1 -0
  39. data/spec/poolparty/net/remote_spec.rb +8 -1
  40. data/spec/poolparty/net/remoter_base_spec.rb +4 -1
  41. data/spec/poolparty/net/remoter_spec.rb +5 -0
  42. data/spec/poolparty/pool/cloud_spec.rb +2 -0
  43. data/spec/poolparty/pool/plugin_model_spec.rb +1 -0
  44. data/spec/poolparty/pool/resource_spec.rb +3 -0
  45. data/spec/poolparty/pool/script_spec.rb +14 -2
  46. data/spec/poolparty/spec_helper.rb +13 -1
  47. data/website/index.html +1 -1
  48. metadata +7 -11
  49. data/lib/erlang/messenger/utils.beam +0 -0
@@ -154,7 +154,7 @@ module PoolParty
154
154
  # they need a few options to run, these are the required options
155
155
  # to be saved on the remote "master" machine
156
156
  def minimum_runnable_options
157
- [:keypair, :minimum_instances, :maximum_instances]
157
+ [:keypair, :minimum_instances, :maximum_instances, :ami, :expand_when, :contract_when]
158
158
  end
159
159
 
160
160
  # Add all the poolparty requirements here
@@ -26,7 +26,7 @@ module PoolParty
26
26
  with_cloud(cl) do
27
27
  out << <<-EOE
28
28
  cloud :#{name} do
29
- #{cl.minimum_runnable_options.map {|o| "\t#{o} \"#{cl.send o}\""}.join("\n")}
29
+ #{cl.minimum_runnable_options.map {|o| "\t#{o} #{cl.send(o).respec_string}"}.join("\n")}
30
30
  end
31
31
  EOE
32
32
  end
@@ -2,5 +2,7 @@
2
2
 
3
3
  . /etc/profile
4
4
  ps aux | grep puppetmaster | awk '{print $2}' | xargs kill
5
+ /etc/init.d/puppetmaster stop
5
6
  rm -rf /etc/puppet/ssl
6
- /usr/bin/env puppetmasterd --verbose
7
+ puppetmasterd --verbose
8
+ /etc/init.d/puppetmaster start
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 35
5
+ TINY = 36
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/poolparty.rb CHANGED
@@ -16,7 +16,7 @@ ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__)
16
16
  ## Load PoolParty
17
17
  require "#{File.dirname(__FILE__)}/poolparty/version"
18
18
 
19
- %w(core modules exceptions dependency_resolutions monitors net).each do |dir|
19
+ %w(core modules exceptions aska dependency_resolutions monitors net).each do |dir|
20
20
  Dir[File.dirname(__FILE__) + "/poolparty/#{dir}/**.rb"].each do |file|
21
21
  require file
22
22
  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.35
4
+ version: 0.2.36
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-30 00:00:00 -07:00
12
+ date: 2008-10-31 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -137,6 +137,7 @@ files:
137
137
  - bin/server-start-node
138
138
  - config/hoe.rb
139
139
  - config/requirements.rb
140
+ - erl_crash.dump
140
141
  - examples/basic.rb
141
142
  - examples/plugin_without_plugin_directory.rb
142
143
  - examples/poolparty.rb
@@ -243,8 +244,8 @@ files:
243
244
  - lib/erlang/messenger/src/pm_packager.erl
244
245
  - lib/erlang/messenger/src/utils.erl
245
246
  - lib/erlang/messenger/useful_snippets
246
- - lib/erlang/messenger/utils.beam
247
247
  - lib/poolparty.rb
248
+ - lib/poolparty/aska/aska.rb
248
249
  - lib/poolparty/base_packages/haproxy.rb
249
250
  - lib/poolparty/base_packages/heartbeat.rb
250
251
  - lib/poolparty/base_packages/poolparty.rb
@@ -276,7 +277,6 @@ files:
276
277
  - lib/poolparty/helpers/binary.rb
277
278
  - lib/poolparty/helpers/console.rb
278
279
  - lib/poolparty/helpers/display.rb
279
- - lib/poolparty/helpers/messenger.rb
280
280
  - lib/poolparty/helpers/optioner.rb
281
281
  - lib/poolparty/helpers/provisioner_base.rb
282
282
  - lib/poolparty/helpers/provisioners/master.rb
@@ -294,6 +294,7 @@ files:
294
294
  - lib/poolparty/monitors/base_monitor.rb
295
295
  - lib/poolparty/monitors/monitors/cpu_monitor.rb
296
296
  - lib/poolparty/monitors/monitors/memory_monitor.rb
297
+ - lib/poolparty/net/messenger.rb
297
298
  - lib/poolparty/net/remote.rb
298
299
  - lib/poolparty/net/remote_bases/ec2.rb
299
300
  - lib/poolparty/net/remote_instance.rb
@@ -325,12 +326,6 @@ files:
325
326
  - lib/poolparty/pool/resources/symlink.rb
326
327
  - lib/poolparty/pool/resources/variable.rb
327
328
  - lib/poolparty/pool/script.rb
328
- - lib/poolparty/pool/tmp/.ppkeys
329
- - lib/poolparty/pool/tmp/happydayz
330
- - lib/poolparty/pool/tmp/install_master.sh
331
- - lib/poolparty/pool/tmp/pool.spec
332
- - lib/poolparty/pool/tmp/poolparty.pp
333
- - lib/poolparty/pool/tmp/tc-instances.list
334
329
  - lib/poolparty/templates/authkeys
335
330
  - lib/poolparty/templates/cib.xml
336
331
  - lib/poolparty/templates/gem
@@ -348,6 +343,7 @@ files:
348
343
  - script/generate
349
344
  - script/txt2html
350
345
  - setup.rb
346
+ - spec/poolparty/aska/aska_spec.rb
351
347
  - spec/poolparty/base_packages/haproxy_spec.rb
352
348
  - spec/poolparty/base_packages/heartbeat_spec.rb
353
349
  - spec/poolparty/bin/console_spec.rb
@@ -362,7 +358,6 @@ files:
362
358
  - spec/poolparty/dependency_resolutions/base_spec.rb
363
359
  - spec/poolparty/helpers/binary_spec.rb
364
360
  - spec/poolparty/helpers/display_spec.rb
365
- - spec/poolparty/helpers/messenger_spec.rb
366
361
  - spec/poolparty/helpers/optioner_spec.rb
367
362
  - spec/poolparty/helpers/provisioner_base_spec.rb
368
363
  - spec/poolparty/helpers/provisioners/master_spec.rb
@@ -374,6 +369,7 @@ files:
374
369
  - spec/poolparty/modules/s3_string_spec.rb
375
370
  - spec/poolparty/monitors/base_monitor_spec.rb
376
371
  - spec/poolparty/monitors/monitors/cpu_monitor_spec.rb
372
+ - spec/poolparty/net/messenger_spec.rb
377
373
  - spec/poolparty/net/remote_bases/ec2_spec.rb
378
374
  - spec/poolparty/net/remote_instance_spec.rb
379
375
  - spec/poolparty/net/remote_spec.rb
@@ -0,0 +1,97 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ class Car
4
+ include Aska
5
+ rules :names, [
6
+ "x > 0",
7
+ "y > 0",
8
+ "x > y"
9
+ ]
10
+ end
11
+ describe "Rules" do
12
+ before(:each) do
13
+ @car = Car.new
14
+ end
15
+ it "should be able to define rules as an array and they should be set as the rules on the class" do
16
+ @car.rules.class.should == Hash
17
+ end
18
+ it "should be able to look up the rules based on the name into an array" do
19
+ @car.names.class.should == Aska::Rules
20
+ end
21
+ it "should be able to turn them into a string" do
22
+ @car.names.to_s.should == "'x > 0', 'y > 0', 'x > y'"
23
+ end
24
+ it "should be able to say that rules are defined when they are defined" do
25
+ @car.names.should_not be_nil
26
+ end
27
+ it "should be able tos ay that rules are not defined when they are not defined" do
28
+ @car.look_up_rules(:cars_and_wheels).should be_empty
29
+ end
30
+ it "should be able to say if the rules are not rules" do
31
+ @car.are_rules?(:cars_and_wheels).should be_false
32
+ end
33
+ it "should be able to say that rules are rules" do
34
+ @car.are_rules?(:names).should be_true
35
+ end
36
+ describe "parsing" do
37
+ it "should be able to parse the x > 0 into an array" do
38
+ @car.names.include?({"x"=>[">","0"]}).should == true
39
+ end
40
+ it "should be able to parse y > 0 into an array" do
41
+ @car.names.include?({"y"=>[">","0"]}).should == true
42
+ end
43
+ it "should be able to parse x > y into the hash" do
44
+ @car.names.include?({"x"=>[">","y"]}).should == true
45
+ end
46
+ it "should have 3 rules" do
47
+ @car.names.size.should == 3
48
+ end
49
+ it "should be able to look up the names as a rule" do
50
+ Car.look_up_rules(:names).should == [{"x"=>[">", "0"]}, {"y"=>[">", "0"]}, {"x"=>[">", "y"]}]
51
+ end
52
+ end
53
+ # it "should use x if available instead of x_aska" do
54
+ # @car.x = 6
55
+ # @car.get_var(:x).class.should == @car.x_aska.class
56
+ # end
57
+ # it "should be able to get the variable associated with the instance and return it" do
58
+ # @car.x_aska = 4
59
+ # @car.get_var(:x).class.should == @car.x_aska.class
60
+ # end
61
+ it "should be able to get a number with the instance and return it as a float" do
62
+ @car.__aska_get_var(4).class.should == Float
63
+ end
64
+ it "should be able to get the method it's applying as a method symbol" do
65
+ @car.__aska_get_var(:<).class.should == Symbol
66
+ end
67
+ it "should be able to get the method as a symbol" do
68
+ @car.__aska_get_var("<").class.should == Symbol
69
+ end
70
+ it "should be able to retrieve the value of the rule when checking if it's valid" do
71
+ @car.x = 10
72
+ @car.valid_rule?({:x => [:==, 10]}).should == true
73
+ end
74
+ it "should be able to apply the rules and say that they are not met when they aren't" do
75
+ @car.valid_rules?(:names).should == false
76
+ end
77
+ it "should be able to apply the rules and say they aren't valid when they aren't all met" do
78
+ @car.x = 5
79
+ @car.y = 10
80
+ @car.valid_rules?(:names).should == true
81
+ end
82
+ it "should be able to apply the rules and say they aren't valid when they aren't all met" do
83
+ @car.x = 5
84
+ @car.y = 0
85
+ @car.valid_rules?(:names).should == false
86
+ end
87
+ it "should be able to apply the rules and say that they are in fact valid" do
88
+ @car.x = 10
89
+ @car.y = 5
90
+ @car.valid_rules?(:names).should == true
91
+ end
92
+ it "should have the rules in an array of hashes" do
93
+ @car.names.each do |n|
94
+
95
+ end
96
+ end
97
+ end
@@ -1,6 +1,12 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
- include PoolParty::Monitors
3
+ class TestMonitorClass
4
+ include PoolParty::Monitors
5
+ include Configurable
6
+ def default_options
7
+ {}
8
+ end
9
+ end
4
10
 
5
11
  describe "Monitors" do
6
12
  it "should have a list of available monitors" do
@@ -11,9 +17,84 @@ describe "Monitors" do
11
17
  PoolParty::Monitors.register_monitor :fake
12
18
  size.should == PoolParty::Monitors.available_monitors.size - 1
13
19
  end
20
+ it "should define the mehtod fake when register_monitor :fake" do
21
+ PoolParty::Monitors.register_monitor :fake
22
+ TestMonitorClass.new.respond_to?(:fake).should == true
23
+ end
24
+ it "should call the Messenger with messenger_send!('get_load fake')" do
25
+ PoolParty::Messenger.should_receive(:messenger_send!).with("get_load fake").and_return true
26
+ TestMonitorClass.new.fake
27
+ end
28
+ describe "expansions" do
29
+ before(:each) do
30
+ @tmc = TestMonitorClass.new
31
+ @tmc.instance_eval do
32
+ expand_when "cpu > 95", "memory > 90"
33
+ contract_when "cpu < 15", "memory < 10"
34
+ end
35
+ end
36
+ it "should have the method expand_when as a class method" do
37
+ @tmc.respond_to?(:expand_when).should == true
38
+ end
39
+ it "should have expansions as a collection of rules on the object" do
40
+ @tmc.expand_when.class.should == Aska::Rules
41
+ end
42
+ it "should return the expand_when as a set of rules" do
43
+ @tmc.expand_when.class.should == Aska::Rules
44
+ end
45
+ it "should have the expansion in the array on the instance" do
46
+ @tmc.expand_when.first.should == {"cpu" => [">", "95"]}
47
+ end
48
+ it "should have the memory expansion in the array on the instance" do
49
+ @tmc.expand_when[1].should == {"memory" => [">", "90"]}
50
+ end
51
+ it "should have 2 expansions" do
52
+ @tmc.expand_when.size.should == 2
53
+ end
54
+ it "should give us the method cpu for free" do
55
+ @tmc.respond_to?(:cpu).should == true
56
+ end
57
+ describe "when memory is over the limit" do
58
+ before(:each) do
59
+ @tmc.stub!(:memory).and_return 99
60
+ end
61
+ it "should say it should not expand if the cpu is short of the limit" do
62
+ @tmc.stub!(:cpu).and_return 43
63
+ @tmc.valid_rules?(:expand_when).should == false
64
+ end
65
+ it "should say that it has the valid expansion rules when the cpu is higher than the limit" do
66
+ @tmc.stub!(:cpu).and_return 98
67
+ @tmc.valid_rules?(:expand_when).should == true
68
+ end
69
+ end
70
+ describe "when cpu is over the limit" do
71
+ before(:each) do
72
+ @tmc.stub!(:cpu).and_return 98
73
+ end
74
+ it "should say it should not expand if the cpu is short of the limit" do
75
+ @tmc.stub!(:memory).and_return 43
76
+ @tmc.valid_rules?(:expand_when).should == false
77
+ end
78
+ it "should say that it has the valid expansion rules when the cpu is higher than the limit" do
79
+ @tmc.stub!(:memory).and_return 98
80
+ @tmc.valid_rules?(:expand_when).should == true
81
+ end
82
+ end
83
+ describe "when neither is over the limits" do
84
+ it "should not expand" do
85
+ @tmc.valid_rules?(:expand_when).should == false
86
+ end
87
+ end
88
+ it "should be able to turn them into a string" do
89
+ @tmc.expand_when.to_s.should == "'cpu > 95', 'memory > 90'"
90
+ end
91
+ it "should be able to turn them into a string with expand_when" do
92
+ @tmc.expand_when.to_s.should == "'cpu > 95', 'memory > 90'"
93
+ end
94
+ end
14
95
  end
15
96
  describe "BaseMonitor" do
16
97
  it "should have the singleton method run defined" do
17
- BaseMonitor.respond_to?(:run).should == true
98
+ PoolParty::Monitors::BaseMonitor.respond_to?(:run).should == true
18
99
  end
19
100
  end
@@ -5,7 +5,6 @@ include PoolParty::Monitors
5
5
  describe "CpuMonitor" do
6
6
  before(:each) do
7
7
  @mon = CpuMonitor.new
8
- CpuMonitor.stub!(:new).and_return @mon
9
8
  end
10
9
  it "should have the singleton method run defined" do
11
10
  CpuMonitor.respond_to?(:run).should == true
@@ -4,6 +4,8 @@ setup_cl
4
4
 
5
5
  include PoolParty::Messenger
6
6
 
7
+ Object.send :undef_method, :messenger_send!
8
+
7
9
  describe "Messenger" do
8
10
  it "should have the method messenger_send!" do
9
11
  Messenger.respond_to?(:messenger_send!).should == true
@@ -1,9 +1,9 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
- include Remote
3
+ # include Remote
4
4
 
5
5
  class TestClass
6
- include RemoterBase
6
+ include PoolParty::Remote::RemoterBase
7
7
  include Ec2
8
8
  include CloudResourcer
9
9
 
@@ -20,6 +20,7 @@ class TestClass
20
20
  end
21
21
  describe "ec2 remote base" do
22
22
  before(:each) do
23
+ setup
23
24
  @tr = TestClass.new
24
25
  stub_remoter_for(@tr)
25
26
  @tr.stub!(:get_instances_description).and_return response_list_of_instances
@@ -4,6 +4,7 @@ include Remote
4
4
 
5
5
  describe "Remote Instance" do
6
6
  before(:each) do
7
+ setup
7
8
  @valid_hash = {:ip => "127.0.0.1", :name => "master", :responding => "true"}
8
9
  end
9
10
  describe "configurable" do
@@ -16,12 +16,16 @@ class TestClass
16
16
  def keypair
17
17
  "fake_keypair"
18
18
  end
19
+ def verbose
20
+ false
21
+ end
19
22
  end
20
23
 
21
24
  describe "Remote" do
22
25
  before(:each) do
23
26
  @tc = TestClass.new
24
-
27
+ @tc.stub!(:verbose).and_return false
28
+ setup
25
29
  end
26
30
  it "should have the method 'using'" do
27
31
  @tc.respond_to?(:using).should == true
@@ -192,6 +196,7 @@ describe "Remote" do
192
196
  end
193
197
  describe "expansions" do
194
198
  before(:each) do
199
+ setup
195
200
  @tc.stub!(:copy_ssh_app).and_return true
196
201
  @tc.stub!(:prepare_reconfiguration).and_return "full"
197
202
  PoolParty::Provisioner.stub!(:reconfigure_master).and_return true
@@ -206,6 +211,7 @@ describe "Remote" do
206
211
  end
207
212
  describe "expand_cloud_if_necessary" do
208
213
  before(:each) do
214
+ setup
209
215
  stub_list_from_remote_for(@tc)
210
216
  @tc.stub!(:request_launch_new_instances).and_return true
211
217
  @tc.stub!(:can_start_a_new_instance).and_return true
@@ -241,6 +247,7 @@ describe "Remote" do
241
247
  @tc.stub!(:request_termination_of_non_master_instance).and_return true
242
248
  @tc.stub!(:can_shutdown_an_instance?).and_return true
243
249
  @tc.stub!(:wait).and_return true
250
+ @tc.stub!(:valid_rules?).and_return false
244
251
  end
245
252
  it "should receive can_shutdown_an_instance?" do
246
253
  @tc.should_receive(:can_shutdown_an_instance?).once
@@ -7,9 +7,12 @@ class TestRemoter
7
7
  end
8
8
 
9
9
  describe "RemoterBase" do
10
+ before(:each) do
11
+ setup
12
+ end
10
13
  describe "methods" do
11
14
  before(:each) do
12
- @tr = TestRemoter.new
15
+ @tr = TestRemoter.new
13
16
  end
14
17
  %w(launch_new_instance! terminate_instance describe_instance instances_list).each do |method|
15
18
  eval <<-EOE
@@ -2,6 +2,10 @@ require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  include PoolParty::Remote
4
4
 
5
+ def valid_rules?(*args)
6
+ false
7
+ end
8
+
5
9
  class TestClass
6
10
  include CloudResourcer
7
11
  include Remote
@@ -14,6 +18,7 @@ class TestClass
14
18
  end
15
19
  describe "Remoter" do
16
20
  before(:each) do
21
+ setup
17
22
  @cloud = cloud :app do;end
18
23
  @tc = TestClass.new
19
24
  @tc.parent = @cloud
@@ -13,6 +13,7 @@ end
13
13
 
14
14
  describe "Cloud" do
15
15
  before(:each) do
16
+ setup
16
17
  reset_resources!
17
18
  end
18
19
  describe "wrapped" do
@@ -47,6 +48,7 @@ describe "Cloud" do
47
48
  describe "options" do
48
49
  before(:each) do
49
50
  reset!
51
+ setup
50
52
  @p = pool :options do
51
53
  minimum_instances 100
52
54
  access_key "access_key"
@@ -3,6 +3,7 @@ require File.dirname(__FILE__) + '/test_plugins/webserver'
3
3
 
4
4
  describe "Plugin" do
5
5
  before(:each) do
6
+ setup
6
7
  @p = pool :poolpartyrb do
7
8
  cloud :app do
8
9
  apache do
@@ -10,6 +10,9 @@ class MyResource < PoolParty::Resources::Resource
10
10
  end
11
11
  end
12
12
  describe "Resource" do
13
+ before(:each) do
14
+ setup
15
+ end
13
16
  describe "wrapped" do
14
17
  before(:each) do
15
18
  @resource = MyResource.new({:a => 10}) do
@@ -5,6 +5,7 @@ include PoolParty::Resources
5
5
  describe "Script" do
6
6
  before(:each) do
7
7
  reset_resources!
8
+ setup
8
9
  end
9
10
  describe "wrapped" do
10
11
  it "should have inflate as a class method" do
@@ -43,16 +44,27 @@ describe "Script" do
43
44
  before(:each) do
44
45
  reset!
45
46
  reset_resources!
46
- pool :appdotcom do
47
+ pool :appdotcomcoo do
47
48
  keypair "snoodle"
49
+ ami "ami-123456"
50
+
48
51
  cloud :app do
52
+ expand_when "cpu > 90", "memory > 80"
53
+ contract_when "cpu < 10", "memory < 10"
54
+
49
55
  has_file :name => "/etc/httpd/httpd.conf"
50
56
  end
51
57
  end
52
58
  @saved = Script.save!(false)
53
59
  end
54
60
  it "should save the keypair" do
55
- @saved.should =~ /keypair "snoodle"/
61
+ @saved.should =~ /keypair 'snoodle'/
62
+ end
63
+ it "should save the ami" do
64
+ @saved.should =~ /ami 'ami-123456'/
65
+ end
66
+ it "should save the expansions" do
67
+ @saved.should =~ /expand_when 'cpu>90', 'memory>80'/
56
68
  end
57
69
  end
58
70
  end
@@ -17,6 +17,10 @@ extend PoolParty
17
17
  Base.environment = "test"
18
18
  Base.verbose = false
19
19
 
20
+ def setup
21
+ PoolParty::Messenger.stub!(:messenger_send!).and_return false
22
+ end
23
+
20
24
  def setup_cl
21
25
  require 'poolpartycl'
22
26
  end
@@ -62,7 +66,7 @@ def stub_list_from_local_for(o)
62
66
  @ris = @list.split(/\n/).map {|line| PoolParty::Remote::RemoteInstance.new(line) }
63
67
  end
64
68
  def stub_remoter_for(o)
65
- o.stub!(:ec2).and_return EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "even more not a key")
69
+ o.stub!(:ec2).and_return EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "even more not a key")
66
70
  end
67
71
  def stub_list_from_remote_for(o, launch_stub=true)
68
72
  stub_remoter_for(o)
@@ -99,6 +103,7 @@ def running_remote_instances
99
103
  end
100
104
 
101
105
  def reset_response!
106
+ setup
102
107
  @ris = nil
103
108
  end
104
109
 
@@ -122,4 +127,11 @@ def drop_pending_instances_for(o)
122
127
  puts "hi"
123
128
  o.list_of_pending_instances.stub!(:size).and_return 0
124
129
  1
130
+ end
131
+
132
+ # Stub for messenger_send!
133
+ class Object
134
+ def messenger_send!(*args)
135
+ true
136
+ end
125
137
  end
data/website/index.html CHANGED
@@ -34,7 +34,7 @@
34
34
  <h1>PoolParty</h1>
35
35
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/poolparty"; return false'>
36
36
  <p>Get Version</p>
37
- <a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.35</a>
37
+ <a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.36</a>
38
38
  </div>
39
39
  <h1>&#8216;Easy cloud computing&#8217;</h1>
40
40
  <h2>What</h2>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auser-poolparty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.35
4
+ version: 0.2.36
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-30 00:00:00 -07:00
12
+ date: 2008-10-31 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -137,6 +137,7 @@ files:
137
137
  - bin/server-start-node
138
138
  - config/hoe.rb
139
139
  - config/requirements.rb
140
+ - erl_crash.dump
140
141
  - examples/basic.rb
141
142
  - examples/plugin_without_plugin_directory.rb
142
143
  - examples/poolparty.rb
@@ -243,8 +244,8 @@ files:
243
244
  - lib/erlang/messenger/src/pm_packager.erl
244
245
  - lib/erlang/messenger/src/utils.erl
245
246
  - lib/erlang/messenger/useful_snippets
246
- - lib/erlang/messenger/utils.beam
247
247
  - lib/poolparty.rb
248
+ - lib/poolparty/aska/aska.rb
248
249
  - lib/poolparty/base_packages/haproxy.rb
249
250
  - lib/poolparty/base_packages/heartbeat.rb
250
251
  - lib/poolparty/base_packages/poolparty.rb
@@ -276,7 +277,6 @@ files:
276
277
  - lib/poolparty/helpers/binary.rb
277
278
  - lib/poolparty/helpers/console.rb
278
279
  - lib/poolparty/helpers/display.rb
279
- - lib/poolparty/helpers/messenger.rb
280
280
  - lib/poolparty/helpers/optioner.rb
281
281
  - lib/poolparty/helpers/provisioner_base.rb
282
282
  - lib/poolparty/helpers/provisioners/master.rb
@@ -294,6 +294,7 @@ files:
294
294
  - lib/poolparty/monitors/base_monitor.rb
295
295
  - lib/poolparty/monitors/monitors/cpu_monitor.rb
296
296
  - lib/poolparty/monitors/monitors/memory_monitor.rb
297
+ - lib/poolparty/net/messenger.rb
297
298
  - lib/poolparty/net/remote.rb
298
299
  - lib/poolparty/net/remote_bases/ec2.rb
299
300
  - lib/poolparty/net/remote_instance.rb
@@ -325,12 +326,6 @@ files:
325
326
  - lib/poolparty/pool/resources/symlink.rb
326
327
  - lib/poolparty/pool/resources/variable.rb
327
328
  - lib/poolparty/pool/script.rb
328
- - lib/poolparty/pool/tmp/.ppkeys
329
- - lib/poolparty/pool/tmp/happydayz
330
- - lib/poolparty/pool/tmp/install_master.sh
331
- - lib/poolparty/pool/tmp/pool.spec
332
- - lib/poolparty/pool/tmp/poolparty.pp
333
- - lib/poolparty/pool/tmp/tc-instances.list
334
329
  - lib/poolparty/templates/authkeys
335
330
  - lib/poolparty/templates/cib.xml
336
331
  - lib/poolparty/templates/gem
@@ -348,6 +343,7 @@ files:
348
343
  - script/generate
349
344
  - script/txt2html
350
345
  - setup.rb
346
+ - spec/poolparty/aska/aska_spec.rb
351
347
  - spec/poolparty/base_packages/haproxy_spec.rb
352
348
  - spec/poolparty/base_packages/heartbeat_spec.rb
353
349
  - spec/poolparty/bin/console_spec.rb
@@ -362,7 +358,6 @@ files:
362
358
  - spec/poolparty/dependency_resolutions/base_spec.rb
363
359
  - spec/poolparty/helpers/binary_spec.rb
364
360
  - spec/poolparty/helpers/display_spec.rb
365
- - spec/poolparty/helpers/messenger_spec.rb
366
361
  - spec/poolparty/helpers/optioner_spec.rb
367
362
  - spec/poolparty/helpers/provisioner_base_spec.rb
368
363
  - spec/poolparty/helpers/provisioners/master_spec.rb
@@ -374,6 +369,7 @@ files:
374
369
  - spec/poolparty/modules/s3_string_spec.rb
375
370
  - spec/poolparty/monitors/base_monitor_spec.rb
376
371
  - spec/poolparty/monitors/monitors/cpu_monitor_spec.rb
372
+ - spec/poolparty/net/messenger_spec.rb
377
373
  - spec/poolparty/net/remote_bases/ec2_spec.rb
378
374
  - spec/poolparty/net/remote_instance_spec.rb
379
375
  - spec/poolparty/net/remote_spec.rb
Binary file