Sha256: 910d7a995edc567b04b9ce826ca61fe00324b639d63d6ff17db22215f79de115
Contents?: true
Size: 1.94 KB
Versions: 4
Compression:
Stored size: 1.94 KB
Contents
require 'puppet' Puppet::Network::Handler.report.newreport(:store, :useyaml => true) do Puppet.config.use(:reporting) desc "Store the yaml report on disk. Each host sends its report as a YAML dump and this just stores the file on disk, in the ``reportdir`` directory. These files collect quickly -- one every half hour -- so it is a good idea to perform some maintenance on them if you use this report (it's the only default report)." def mkclientdir(client, dir) config = Puppet::Util::Config.new config.setdefaults("reportclient-#{client}", "clientdir-#{client}" => { :default => dir, :mode => 0750, :desc => "Client dir for %s" % client, :owner => Puppet[:user], :group => Puppet[:group] } ) config.use("reportclient-#{client}") end def process(yaml) # We don't want any tracking back in the fs. Unlikely, but there # you go. client = self.host.gsub("..",".") dir = File.join(Puppet[:reportdir], client) unless FileTest.exists?(dir) mkclientdir(client, dir) end # Now store the report. now = Time.now.gmtime name = %w{year month day hour min}.collect do |method| # Make sure we're at least two digits everywhere "%02d" % now.send(method).to_s end.join("") + ".yaml" file = File.join(dir, name) begin File.open(file, "w", 0640) do |f| f.print yaml end rescue => detail if Puppet[:trace] puts detail.backtrace end Puppet.warning "Could not write report for %s at %s: %s" % [client, file, detail] end # Only testing cares about the return value return file end end # $Id: store.rb 2259 2007-03-06 19:03:05Z luke $
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
puppet-0.23.0 | lib/puppet/reports/store.rb |
puppet-0.22.4 | lib/puppet/reports/store.rb |
puppet-0.23.2 | lib/puppet/reports/store.rb |
puppet-0.23.1 | lib/puppet/reports/store.rb |