From 04b25572bda950d3d088a31d88b4c27d35274fa2 Mon Sep 17 00:00:00 2001 From: luke Date: Mon, 28 Aug 2006 23:28:37 +0000 Subject: Fixing report autoloading; I was calling the wrong method, and they were never getting loaded git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1506 980ebf18-57e1-0310-9a29-db15c13687c0 --- lib/puppet/server/report.rb | 50 +++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 27 deletions(-) (limited to 'lib') diff --git a/lib/puppet/server/report.rb b/lib/puppet/server/report.rb index 8aa4449b2..3d02f5f3d 100755 --- a/lib/puppet/server/report.rb +++ b/lib/puppet/server/report.rb @@ -21,6 +21,7 @@ class Server ) @reports = {} + @reportloader = Puppet::Autoload.new(self, "puppet/reports") class << self attr_reader :hooks @@ -45,21 +46,12 @@ class Server def self.report(name) name = name.intern if name.is_a? String unless @reports.include? reportmethod(name) - begin - require "puppet/reports/#{name.to_s}" - unless @reports.include? name - Puppet.warning( - "Loaded report file for %s but report was not defined" % - name - ) - return nil - end - rescue LoadError => detail - if Puppet[:debug] - puts detail.backtrace - end - Puppet.warning "Could not load report %s: %s" % - [name, detail] + @reportloader.load(name) + unless @reports.include? name + Puppet.warning( + "Loaded report file for %s but report was not defined" % + name + ) return nil end end @@ -161,19 +153,23 @@ class Server end Puppet[:reports].split(/\s*,\s*/).each do |name| - method = self.class.reportmethod(name) - - Puppet.info "Processing report %s" % name - begin - send(method, report) - rescue NoMethodError => detail - Puppet.warning "No report named '%s'" % name - rescue => detail - if Puppet[:debug] - puts detail.backtrace + method = self.class.report(name) + + if respond_to? method + Puppet.info "Processing report %s" % name + begin + send(method, report) + rescue NoMethodError => detail + Puppet.warning "No report named '%s'" % name + rescue => detail + if Puppet[:debug] + puts detail.backtrace + end + Puppet.err "Report %s failed: %s" % + [name, detail] end - Puppet.err "Report %s failed: %s" % - [name, detail] + else + Puppet.warning "No report named '%s'" % name end end end -- cgit