auser-poolparty 0.2.38 → 0.2.39

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/Manifest.txt +30 -1
  2. data/bin/cloud-maintain +11 -3
  3. data/bin/messenger-get-load +2 -1
  4. data/lib/erlang/cloudpanel/Makefile +5 -0
  5. data/lib/erlang/cloudpanel/doc/cloudpanel.html +39 -0
  6. data/lib/erlang/cloudpanel/doc/cloudpanel_app.html +40 -0
  7. data/lib/erlang/cloudpanel/doc/cloudpanel_deps.html +89 -0
  8. data/lib/erlang/cloudpanel/doc/cloudpanel_sup.html +46 -0
  9. data/lib/erlang/cloudpanel/doc/cloudpanel_web.html +45 -0
  10. data/lib/erlang/cloudpanel/ebin/cloudpanel.app +14 -0
  11. data/lib/erlang/cloudpanel/priv/www/images/bg_content.gif +0 -0
  12. data/lib/erlang/cloudpanel/priv/www/index.html +34 -0
  13. data/lib/erlang/cloudpanel/priv/www/javascripts/jquery.js +32 -0
  14. data/lib/erlang/cloudpanel/priv/www/stylesheets/application.css +48 -0
  15. data/lib/erlang/cloudpanel/priv/www/stylesheets/classes.css +2 -0
  16. data/lib/erlang/cloudpanel/priv/www/stylesheets/colors.css +8 -0
  17. data/lib/erlang/cloudpanel/priv/www/stylesheets/nav.css +18 -0
  18. data/lib/erlang/cloudpanel/src/Makefile +9 -0
  19. data/lib/erlang/cloudpanel/src/cloudpanel.app +14 -0
  20. data/lib/erlang/cloudpanel/src/cloudpanel.erl +30 -0
  21. data/lib/erlang/cloudpanel/src/cloudpanel.hrl +1 -0
  22. data/lib/erlang/cloudpanel/src/cloudpanel_app.erl +22 -0
  23. data/lib/erlang/cloudpanel/src/cloudpanel_deps.erl +84 -0
  24. data/lib/erlang/cloudpanel/src/cloudpanel_sup.erl +54 -0
  25. data/lib/erlang/cloudpanel/src/cloudpanel_web.erl +45 -0
  26. data/lib/erlang/cloudpanel/start-dev.sh +3 -0
  27. data/lib/erlang/cloudpanel/start.sh +3 -0
  28. data/lib/erlang/cloudpanel/support/include.mk +46 -0
  29. data/lib/poolparty.rb +1 -1
  30. data/lib/poolparty/aska/aska.rb +9 -7
  31. data/lib/poolparty/base_packages/haproxy.rb +1 -1
  32. data/lib/poolparty/base_packages/poolparty.rb +2 -2
  33. data/lib/poolparty/helpers/provisioner_base.rb +10 -2
  34. data/lib/poolparty/monitors/base_monitor.rb +3 -3
  35. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +1 -1
  36. data/lib/poolparty/net/messenger.rb +1 -1
  37. data/lib/poolparty/net/remote_instance.rb +1 -1
  38. data/lib/poolparty/net/remoter.rb +8 -3
  39. data/lib/poolparty/pool/base.rb +9 -1
  40. data/lib/poolparty/templates/puppetcleaner +1 -0
  41. data/lib/poolparty/version.rb +1 -1
  42. data/poolparty.gemspec +32 -3
  43. data/spec/poolparty/monitors/base_monitor_spec.rb +8 -0
  44. data/website/index.html +1 -1
  45. metadata +32 -3
@@ -11,11 +11,11 @@ module PoolParty
11
11
 
12
12
  module InstanceMethods
13
13
  def expand_when(*arr)
14
- @expand_when ||= ((arr && arr.empty?) ? options[:expand_when] : configure(:expand_when => self.class.send(:rules, :expand_when, arr)))
14
+ @expand_when ||= ((arr && arr.empty?) ? options[:expand_when] : configure(:expand_when => self.class.send(:rules,:expand_when,arr,false)))
15
15
  end
16
16
 
17
17
  def contract_when(*arr)
18
- @contract_when ||= ((arr && arr.empty?) ? options[:contract_when] : configure(:contract_when => self.class.send(:rules, :contract_when, arr)))
18
+ @contract_when ||= ((arr&&arr.empty?) ? options[:contract_when] : configure(:contract_when => self.class.send(:rules,:contract_when,arr,false)))
19
19
  end
20
20
  end
21
21
 
@@ -23,7 +23,7 @@ module PoolParty
23
23
  args.each do |arg|
24
24
  (available_monitors << "#{arg}".downcase.to_sym)
25
25
 
26
- InstanceMethods.module_eval "def #{arg}; PoolParty::Messenger.messenger_send!(\"get_load #{arg}\"); end"
26
+ InstanceMethods.module_eval "def #{arg}; PoolParty::Messenger.messenger_send!(\"get_load #{arg}\").to_f rescue -1; end"
27
27
  end
28
28
  end
29
29
 
@@ -5,7 +5,7 @@ module PoolParty
5
5
 
6
6
  def run
7
7
  str = %x[uptime]
8
- str.split(/\s+/)[-2].to_f rescue 0.0
8
+ str.split(/\s+/)[-1].to_f rescue 0.0
9
9
  end
10
10
 
11
11
  end
@@ -16,7 +16,7 @@ module PoolParty
16
16
  end
17
17
 
18
18
  def self.messenger_send!(cmd="", testing=false)
19
- command = Messenger.erl_command("client", "-s pm_client -run pm_client #{cmd} -s erlang halt -noshell")
19
+ command = Messenger.erl_command("client#{Time.now.to_i}", "-s pm_client -run pm_client #{cmd} -s erlang halt -noshell")
20
20
  testing ? command : %x[#{command}]
21
21
  end
22
22
 
@@ -72,7 +72,7 @@ module PoolParty
72
72
  ". /etc/profile && /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master 2>&1"
73
73
  end
74
74
  def self.puppet_master_rerun_command
75
- "/usr/bin/puppetcleaner; #{puppet_runner_command}"
75
+ "#{puppet_runner_command}"
76
76
  end
77
77
  def self.puppet_rerun_commad
78
78
  "/usr/bin/puppetrerun 2>&1 > /dev/null"
@@ -152,6 +152,7 @@ module PoolParty
152
152
  # Then wait for the master to launch
153
153
  def launch_and_configure_master!(testing=false)
154
154
  vputs "Requesting to launch new instance"
155
+ logger.debug "Launching master"
155
156
  request_launch_new_instances(1) if list_of_pending_instances.size.zero? && can_start_a_new_instance? && !is_master_running?
156
157
 
157
158
  vputs "Waiting for there to be no pending instances..."
@@ -183,6 +184,7 @@ module PoolParty
183
184
  # get go
184
185
  def expand_cloud_if_necessary(force=false)
185
186
  if can_start_a_new_instance? && should_expand_cloud?(force)
187
+ logger.debug "Expanding the cloud based on load"
186
188
  @num = 1
187
189
  @out = request_launch_new_instances(@num)
188
190
 
@@ -204,9 +206,12 @@ module PoolParty
204
206
  # If we can shutdown an instnace and the load allows us to contract
205
207
  # the cloud, then we should request_termination_of_non_master_instance
206
208
  def contract_cloud_if_necessary(force=false)
207
- if can_shutdown_an_instance?
208
- before_shutdown
209
- request_termination_of_non_master_instance if should_contract_cloud?(force)
209
+ if can_shutdown_an_instance?
210
+ if should_contract_cloud?(force)
211
+ logger.debug "Shrinking the cloud by 1"
212
+ before_shutdown
213
+ request_termination_of_non_master_instance
214
+ end
210
215
  end
211
216
  end
212
217
 
@@ -78,8 +78,16 @@ module PoolParty
78
78
  end.first || ::File.join( "/tmp/poolparty")
79
79
  end
80
80
 
81
+ def logger_location
82
+ [
83
+ "/var/logs/poolparty"
84
+ ].select do |dir|
85
+ dir if ::File.directory?(dir) && ::File.readable?(dir)
86
+ end.first || ::File.join(Dir.pwd, "logs")
87
+ end
88
+
81
89
  def pool_logger_location
82
- File.join(Dir.pwd, "logs")
90
+ ::File.join(logger_location, "pool.logs")
83
91
  end
84
92
 
85
93
  # Array of allowed_commands that you can run on the remote nodes
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
+ # /var/lib/puppet/state/puppetdlock
3
4
  . /etc/profile
4
5
  ps aux | grep puppetmaster | awk '{print $2}' | xargs kill
5
6
  /etc/init.d/puppetmaster stop
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 38
5
+ TINY = 39
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poolparty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.38
4
+ version: 0.2.39
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-11-01 00:00:00 -07:00
12
+ date: 2008-11-02 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -139,7 +139,6 @@ files:
139
139
  - bin/server-start-node
140
140
  - config/hoe.rb
141
141
  - config/requirements.rb
142
- - erl_crash.dump
143
142
  - examples/basic.rb
144
143
  - examples/plugin_without_plugin_directory.rb
145
144
  - examples/poolparty.rb
@@ -147,6 +146,36 @@ files:
147
146
  - generators/poolspec/USAGE
148
147
  - generators/poolspec/poolspec_generator.rb
149
148
  - generators/poolspec/templates/pool_spec_template.erb
149
+ - lib/erlang/cloudpanel/Makefile
150
+ - lib/erlang/cloudpanel/doc/cloudpanel.html
151
+ - lib/erlang/cloudpanel/doc/cloudpanel_app.html
152
+ - lib/erlang/cloudpanel/doc/cloudpanel_deps.html
153
+ - lib/erlang/cloudpanel/doc/cloudpanel_sup.html
154
+ - lib/erlang/cloudpanel/doc/cloudpanel_web.html
155
+ - lib/erlang/cloudpanel/ebin/cloudpanel.app
156
+ - lib/erlang/cloudpanel/ebin/cloudpanel.beam
157
+ - lib/erlang/cloudpanel/ebin/cloudpanel_app.beam
158
+ - lib/erlang/cloudpanel/ebin/cloudpanel_deps.beam
159
+ - lib/erlang/cloudpanel/ebin/cloudpanel_sup.beam
160
+ - lib/erlang/cloudpanel/ebin/cloudpanel_web.beam
161
+ - lib/erlang/cloudpanel/priv/www/images/bg_content.gif
162
+ - lib/erlang/cloudpanel/priv/www/index.html
163
+ - lib/erlang/cloudpanel/priv/www/javascripts/jquery.js
164
+ - lib/erlang/cloudpanel/priv/www/stylesheets/application.css
165
+ - lib/erlang/cloudpanel/priv/www/stylesheets/classes.css
166
+ - lib/erlang/cloudpanel/priv/www/stylesheets/colors.css
167
+ - lib/erlang/cloudpanel/priv/www/stylesheets/nav.css
168
+ - lib/erlang/cloudpanel/src/Makefile
169
+ - lib/erlang/cloudpanel/src/cloudpanel.app
170
+ - lib/erlang/cloudpanel/src/cloudpanel.erl
171
+ - lib/erlang/cloudpanel/src/cloudpanel.hrl
172
+ - lib/erlang/cloudpanel/src/cloudpanel_app.erl
173
+ - lib/erlang/cloudpanel/src/cloudpanel_deps.erl
174
+ - lib/erlang/cloudpanel/src/cloudpanel_sup.erl
175
+ - lib/erlang/cloudpanel/src/cloudpanel_web.erl
176
+ - lib/erlang/cloudpanel/start-dev.sh
177
+ - lib/erlang/cloudpanel/start.sh
178
+ - lib/erlang/cloudpanel/support/include.mk
150
179
  - lib/erlang/messenger/Emakefile
151
180
  - lib/erlang/messenger/Makefile
152
181
  - lib/erlang/messenger/README
@@ -25,6 +25,10 @@ describe "Monitors" do
25
25
  PoolParty::Messenger.should_receive(:messenger_send!).with("get_load fake").and_return true
26
26
  TestMonitorClass.new.fake
27
27
  end
28
+ it "should have the cpu method on the class" do
29
+ PoolParty::Messenger.should_receive(:messenger_send!).with("get_load cpu").and_return true
30
+ TestMonitorClass.new.cpu
31
+ end
28
32
  describe "expansions" do
29
33
  before(:each) do
30
34
  @tmc = TestMonitorClass.new
@@ -81,6 +85,10 @@ describe "Monitors" do
81
85
  end
82
86
  end
83
87
  describe "when neither is over the limits" do
88
+ before(:each) do
89
+ @tmc.stub!(:cpu).and_return 87
90
+ @tmc.stub!(:memory).and_return 40
91
+ end
84
92
  it "should not expand" do
85
93
  @tmc.valid_rules?(:expand_when).should == false
86
94
  end
@@ -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.38</a>
37
+ <a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.39</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.38
4
+ version: 0.2.39
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-11-01 00:00:00 -07:00
12
+ date: 2008-11-02 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -139,7 +139,6 @@ files:
139
139
  - bin/server-start-node
140
140
  - config/hoe.rb
141
141
  - config/requirements.rb
142
- - erl_crash.dump
143
142
  - examples/basic.rb
144
143
  - examples/plugin_without_plugin_directory.rb
145
144
  - examples/poolparty.rb
@@ -147,6 +146,36 @@ files:
147
146
  - generators/poolspec/USAGE
148
147
  - generators/poolspec/poolspec_generator.rb
149
148
  - generators/poolspec/templates/pool_spec_template.erb
149
+ - lib/erlang/cloudpanel/Makefile
150
+ - lib/erlang/cloudpanel/doc/cloudpanel.html
151
+ - lib/erlang/cloudpanel/doc/cloudpanel_app.html
152
+ - lib/erlang/cloudpanel/doc/cloudpanel_deps.html
153
+ - lib/erlang/cloudpanel/doc/cloudpanel_sup.html
154
+ - lib/erlang/cloudpanel/doc/cloudpanel_web.html
155
+ - lib/erlang/cloudpanel/ebin/cloudpanel.app
156
+ - lib/erlang/cloudpanel/ebin/cloudpanel.beam
157
+ - lib/erlang/cloudpanel/ebin/cloudpanel_app.beam
158
+ - lib/erlang/cloudpanel/ebin/cloudpanel_deps.beam
159
+ - lib/erlang/cloudpanel/ebin/cloudpanel_sup.beam
160
+ - lib/erlang/cloudpanel/ebin/cloudpanel_web.beam
161
+ - lib/erlang/cloudpanel/priv/www/images/bg_content.gif
162
+ - lib/erlang/cloudpanel/priv/www/index.html
163
+ - lib/erlang/cloudpanel/priv/www/javascripts/jquery.js
164
+ - lib/erlang/cloudpanel/priv/www/stylesheets/application.css
165
+ - lib/erlang/cloudpanel/priv/www/stylesheets/classes.css
166
+ - lib/erlang/cloudpanel/priv/www/stylesheets/colors.css
167
+ - lib/erlang/cloudpanel/priv/www/stylesheets/nav.css
168
+ - lib/erlang/cloudpanel/src/Makefile
169
+ - lib/erlang/cloudpanel/src/cloudpanel.app
170
+ - lib/erlang/cloudpanel/src/cloudpanel.erl
171
+ - lib/erlang/cloudpanel/src/cloudpanel.hrl
172
+ - lib/erlang/cloudpanel/src/cloudpanel_app.erl
173
+ - lib/erlang/cloudpanel/src/cloudpanel_deps.erl
174
+ - lib/erlang/cloudpanel/src/cloudpanel_sup.erl
175
+ - lib/erlang/cloudpanel/src/cloudpanel_web.erl
176
+ - lib/erlang/cloudpanel/start-dev.sh
177
+ - lib/erlang/cloudpanel/start.sh
178
+ - lib/erlang/cloudpanel/support/include.mk
150
179
  - lib/erlang/messenger/Emakefile
151
180
  - lib/erlang/messenger/Makefile
152
181
  - lib/erlang/messenger/README