summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-10-16 03:54:18 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-10-16 03:54:18 +0000
commitdad596e6c5e241607eee92e54890b53affeba02b (patch)
treecacf10af8e832f5d3b7248dd6437465e6e23e317
parent9a8636c3c22ca5b7d244e1a80e9c2bf8b4dffe8f (diff)
downloadpuppet-dad596e6c5e241607eee92e54890b53affeba02b.tar.gz
puppet-dad596e6c5e241607eee92e54890b53affeba02b.tar.xz
puppet-dad596e6c5e241607eee92e54890b53affeba02b.zip
Fixing #291 -- the problem was that instead of throwing an error on a missing server, puppet was just exiting.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1785 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--lib/puppet.rb12
-rw-r--r--lib/puppet/client/master.rb4
-rw-r--r--lib/puppet/networkclient.rb19
-rw-r--r--lib/puppet/util.rb3
-rwxr-xr-xtest/server/report.rb2
5 files changed, 21 insertions, 19 deletions
diff --git a/lib/puppet.rb b/lib/puppet.rb
index 71c7743a7..7d21e8c3d 100644
--- a/lib/puppet.rb
+++ b/lib/puppet.rb
@@ -289,12 +289,12 @@ module Puppet
# waiting for someone, somewhere, to generate events of some kind.
def self.start(block = true)
# Starting everything in its own thread, fwiw
- defined? @services and @services.each do |svc|
+ defined? @services and @services.dup.each do |svc|
newthread do
begin
svc.start
rescue => detail
- if Puppet[:debug]
+ if Puppet[:trace]
puts detail.backtrace
end
@services.delete svc
@@ -303,15 +303,15 @@ module Puppet
end
end
+ # We need to give the services a chance to register their timers before
+ # we try to start monitoring them.
+ sleep 0.5
+
unless @services.length > 0
Puppet.notice "No remaining services; exiting"
exit(1)
end
- # We need to give the services a chance to register their timers before
- # we try to start monitoring them.
- sleep 0.5
-
if defined? @timers and ! @timers.empty?
@timers.each do |timer|
EventLoop.current.monitor_timer timer
diff --git a/lib/puppet/client/master.rb b/lib/puppet/client/master.rb
index 0763cdfe1..97d224065 100644
--- a/lib/puppet/client/master.rb
+++ b/lib/puppet/client/master.rb
@@ -168,8 +168,8 @@ class Puppet::Client::MasterClient < Puppet::Client
Puppet::Type.allclear
end
- # Disable running the configuration. This can be used from the command line, but
- # is also used to make sure only one client is running at a time.
+ # Disable running the configuration. This can be used from the command
+ # line, but is also used to make sure only one client is running at a time.
def disable(running = false)
threadlock(:puppetd) do
text = nil
diff --git a/lib/puppet/networkclient.rb b/lib/puppet/networkclient.rb
index f093292f2..6284416e3 100644
--- a/lib/puppet/networkclient.rb
+++ b/lib/puppet/networkclient.rb
@@ -23,8 +23,8 @@ rescue LoadError => detail
end
module Puppet
- class NetworkClientError < RuntimeError; end
- class ClientError < RuntimeError; end
+ class NetworkClientError < Puppet::Error; end
+ class ClientError < Puppet::Error; end
#---------------------------------------------------------------
if $noclientnetworking
Puppet.err "Could not load client network libs: %s" % $noclientnetworking
@@ -80,16 +80,17 @@ module Puppet
[@host, @port]
raise NetworkClientError, msg
rescue SocketError => detail
- Puppet.err "Could not find server %s" % @puppetserver
- exit(12)
+ error = NetworkClientError.new(
+ "Could not find server %s" % @puppetserver
+ )
+ error.set_backtrace detail.backtrace
+ raise error
rescue => detail
Puppet.err "Could not call %s.%s: %s" %
[namespace, method, detail.inspect]
- #raise NetworkClientError.new(detail.to_s)
- if Puppet[:trace]
- puts detail.backtrace
- end
- raise
+ error = NetworkClientError.new(detail.to_s)
+ error.set_backtrace detail.backtrace
+ raise error
end
}
}
diff --git a/lib/puppet/util.rb b/lib/puppet/util.rb
index 74a01de4f..b4e8eb253 100644
--- a/lib/puppet/util.rb
+++ b/lib/puppet/util.rb
@@ -294,8 +294,7 @@ module Util
end
unless level
- puts caller.join("\n")
- raise Puppet::DevError, "Failed to provide level"
+ raise Puppet::DevError, "Failed to provide level to :benchmark"
end
unless object.respond_to? level
diff --git a/test/server/report.rb b/test/server/report.rb
index f056de0b6..7076a79c4 100755
--- a/test/server/report.rb
+++ b/test/server/report.rb
@@ -1,3 +1,5 @@
+#!/usr/bin/env ruby -I../lib -I../../lib
+
require 'puppet'
require 'puppet/server/report'
require 'puppet/client/reporter'