auser-poolparty 0.2.38 → 0.2.39

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 (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