summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorPaul Berry <paul@puppetlabs.com>2010-12-29 14:49:16 -0800
committerPaul Berry <paul@puppetlabs.com>2010-12-30 11:53:05 -0800
commit037eac4383ed5a5e9cdde765b607a180209bad1e (patch)
tree9c48d7656ab9ba36f9b2110c2b84284d6e997ee7 /lib/puppet
parente4a2e049dc9f77569a2dac042e9e847ef34f037d (diff)
downloadpuppet-037eac4383ed5a5e9cdde765b607a180209bad1e.tar.gz
puppet-037eac4383ed5a5e9cdde765b607a180209bad1e.tar.xz
puppet-037eac4383ed5a5e9cdde765b607a180209bad1e.zip
(#5715) Add status attribute to reports.
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/transaction/report.rb19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/puppet/transaction/report.rb b/lib/puppet/transaction/report.rb
index f78b5aa21..6315973ba 100644
--- a/lib/puppet/transaction/report.rb
+++ b/lib/puppet/transaction/report.rb
@@ -11,7 +11,7 @@ class Puppet::Transaction::Report
indirects :report, :terminus_class => :processor
attr_accessor :configuration_version
- attr_reader :resource_statuses, :logs, :metrics, :host, :time, :kind
+ attr_reader :resource_statuses, :logs, :metrics, :host, :time, :kind, :status
# This is necessary since Marshall doesn't know how to
# dump hash with default proc (see below @records)
@@ -43,11 +43,23 @@ class Puppet::Transaction::Report
@resource_statuses[status.resource] = status
end
+ def compute_status(resource_metrics, change_metric)
+ if (resource_metrics[:failed] || 0) > 0
+ 'failed'
+ elsif change_metric > 0
+ 'changed'
+ else
+ 'unchanged'
+ end
+ end
+
def finalize_report
- add_metric(:resources, calculate_resource_metrics)
+ resource_metrics = add_metric(:resources, calculate_resource_metrics)
add_metric(:time, calculate_time_metrics)
- add_metric(:changes, {:total => calculate_change_metric})
+ change_metric = calculate_change_metric
+ add_metric(:changes, {:total => change_metric})
add_metric(:events, calculate_event_metrics)
+ @status = compute_status(resource_metrics, change_metric)
end
def initialize(kind, configuration_version=nil)
@@ -61,6 +73,7 @@ class Puppet::Transaction::Report
@report_format = 2
@puppet_version = Puppet.version
@configuration_version = configuration_version
+ @status = 'failed' # assume failed until the report is finalized
end
def name