# File lib/puppet/indirector/report/processor.rb, line 9 def initialize Puppet.settings.use(:main, :reporting, :metrics) end
# File lib/puppet/indirector/report/processor.rb, line 17 def destroy(request) processors do |mod| mod.destroy(request.key) if mod.respond_to?(:destroy) end end
# File lib/puppet/indirector/report/processor.rb, line 13 def save(request) process(request.instance) end
Process the report with each of the configured report types. LAK:NOTE This isn’t necessarily the best design, but it’s backward compatible and that’s good enough for now.
# File lib/puppet/indirector/report/processor.rb, line 28 def process(report) Puppet.debug "Received report to process from #{report.host}" processors do |mod| Puppet.debug "Processing report from #{report.host} with processor #{mod}" # We have to use a dup because we're including a module in the # report. newrep = report.dup begin newrep.extend(mod) newrep.process rescue => detail Puppet.log_exception(detail, "Report #{name} failed: #{detail}") end end end
# File lib/puppet/indirector/report/processor.rb, line 50 def processors(&blk) return if Puppet[:reports] == "none" reports.each do |name| if mod = Puppet::Reports.report(name) yield(mod) else Puppet.warning "No report named '#{name}'" end end end
Handle the parsing of the reports attribute.
# File lib/puppet/indirector/report/processor.rb, line 45 def reports # LAK:NOTE See http://snurl.com/21zf8 [groups_google_com] x = Puppet[:reports].gsub(/(^\s+)|(\s+$)/, '').split(/\s*,\s*/) end