Sha256: 747b55430ba82fb06ee32aea26fca1cd227407bfa10a6de8c18cf71efdd1ae7f
Contents?: true
Size: 1.95 KB
Versions: 3
Compression:
Stored size: 1.95 KB
Contents
require 'puppet' # A class for reporting what happens on each client. Reports consist of # two types of data: Logs and Metrics. Logs are the output that each # change produces, and Metrics are all of the numerical data involved # in the transaction. class Puppet::Transaction::Report attr_accessor :logs, :metrics, :time, :host def <<(msg) @logs << msg return self end def initialize @metrics = {} @logs = [] @records = Hash.new do |hash, key| hash[key] = [] end domain = Facter.value("domain") hostname = Facter.value("hostname") if !domain || domain.empty? then @host = hostname else @host = [hostname, domain].join(".") end end # Create a new metric. def newmetric(name, hash) metric = Puppet::Util::Metric.new(name) hash.each do |name, value| metric.newvalue(name, value) end @metrics[metric.name] = metric end # Add a new log message. def newlog(msg) @logs << msg end def record(metric, object) @records[metric] << object end # Provide a summary of this report. def summary ret = "" @metrics.sort { |a,b| a[1].label <=> b[1].label }.each do |name, metric| ret += "%s:\n" % metric.label metric.values.sort { |a,b| # sort by label if a[0] == :total 1 elsif b[0] == :total -1 else a[1] <=> b[1] end }.each do |name, label, value| next if value == 0 if value.is_a?(Float) value = "%0.2f" % value end ret += " %15s %s\n" % [label + ":", value] end end return ret end end # $Id: report.rb 2459 2007-05-04 05:04:29Z luke $
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
puppet-0.23.0 | lib/puppet/transaction/report.rb |
puppet-0.23.1 | lib/puppet/transaction/report.rb |
puppet-0.23.2 | lib/puppet/transaction/report.rb |