Class: Chef::RunStatus
- Inherits:
-
Object
- Object
- Chef::RunStatus
- Defined in:
- lib/chef/run_status.rb
Overview
Chef::RunStatus
Tracks various aspects of a Chef run, including the Node and RunContext, start and end time, and any Exception that stops the run. RunStatus objects are passed to any notification or exception handlers at the completion of a Chef run.
Instance Attribute Summary collapse
-
#end_time ⇒ Object
readonly
Returns the value of attribute end_time.
-
#events ⇒ Object
readonly
Returns the value of attribute events.
-
#exception ⇒ Object
Returns the value of attribute exception.
-
#node ⇒ Object
Returns the value of attribute node.
-
#run_context ⇒ Object
Returns the value of attribute run_context.
-
#run_id ⇒ Object
Returns the value of attribute run_id.
-
#start_time ⇒ Object
readonly
Returns the value of attribute start_time.
Instance Method Summary collapse
-
#all_resources ⇒ Object
The list of all resources in the current run context’s
resource_collection
. -
#backtrace ⇒ Object
The backtrace from
exception
, if any. -
#elapsed_time ⇒ Object
The elapsed time between
start_time
andend_time
. -
#failed? ⇒ Boolean
Did the Chef run fail?.
-
#formatted_exception ⇒ Object
Returns a string of the format “ExceptionClass: message” or
nil
if noexception
is set. -
#initialize(node, events) ⇒ RunStatus
constructor
A new instance of RunStatus.
-
#start_clock ⇒ Object
sets
start_time
to the current time. -
#stop_clock ⇒ Object
sets
end_time
to the current time. -
#success? ⇒ Boolean
Did the chef run succeed? returns
true
if no exception has been set. -
#to_h ⇒ Object
(also: #to_hash)
A Hash representation of the RunStatus, with the following (Symbol) keys: * :node * :success * :start_time * :end_time * :elapsed_time * :all_resources * :updated_resources * :exception * :backtrace.
-
#updated_resources ⇒ Object
The list of all resources in the current run context’s
resource_collection
that are marked as updated.
Constructor Details
#initialize(node, events) ⇒ RunStatus
Returns a new instance of RunStatus.
40 41 42 43 |
# File 'lib/chef/run_status.rb', line 40 def initialize(node, events) @node = node @events = events end |
Instance Attribute Details
#end_time ⇒ Object (readonly)
Returns the value of attribute end_time.
32 33 34 |
# File 'lib/chef/run_status.rb', line 32 def end_time @end_time end |
#events ⇒ Object (readonly)
Returns the value of attribute events.
26 27 28 |
# File 'lib/chef/run_status.rb', line 26 def events @events end |
#exception ⇒ Object
Returns the value of attribute exception.
34 35 36 |
# File 'lib/chef/run_status.rb', line 34 def exception @exception end |
#node ⇒ Object
Returns the value of attribute node.
38 39 40 |
# File 'lib/chef/run_status.rb', line 38 def node @node end |
#run_context ⇒ Object
Returns the value of attribute run_context.
28 29 30 |
# File 'lib/chef/run_status.rb', line 28 def run_context @run_context end |
#run_id ⇒ Object
Returns the value of attribute run_id.
36 37 38 |
# File 'lib/chef/run_status.rb', line 36 def run_id @run_id end |
#start_time ⇒ Object (readonly)
Returns the value of attribute start_time.
30 31 32 |
# File 'lib/chef/run_status.rb', line 30 def start_time @start_time end |
Instance Method Details
#all_resources ⇒ Object
The list of all resources in the current run context’s resource_collection
67 68 69 |
# File 'lib/chef/run_status.rb', line 67 def all_resources @run_context && @run_context.resource_collection.all_resources end |
#backtrace ⇒ Object
The backtrace from exception
, if any
78 79 80 |
# File 'lib/chef/run_status.rb', line 78 def backtrace @exception && @exception.backtrace end |
#elapsed_time ⇒ Object
The elapsed time between start_time
and end_time
. Returns nil
if either value is not set.
58 59 60 61 62 63 64 |
# File 'lib/chef/run_status.rb', line 58 def elapsed_time if @start_time && @end_time @end_time - @start_time else nil end end |
#failed? ⇒ Boolean
Did the Chef run fail?
83 84 85 |
# File 'lib/chef/run_status.rb', line 83 def failed? !success? end |
#formatted_exception ⇒ Object
Returns a string of the format “ExceptionClass: message” or nil
if no exception
is set.
120 121 122 |
# File 'lib/chef/run_status.rb', line 120 def formatted_exception @exception && "#{@exception.class.name}: #{@exception.}" end |
#start_clock ⇒ Object
sets start_time
to the current time.
46 47 48 |
# File 'lib/chef/run_status.rb', line 46 def start_clock @start_time = Time.now end |
#stop_clock ⇒ Object
sets end_time
to the current time
51 52 53 54 |
# File 'lib/chef/run_status.rb', line 51 def stop_clock @start_time ||= Time.now # if we failed so early we didn't get a start time @end_time = Time.now end |
#success? ⇒ Boolean
Did the chef run succeed? returns true
if no exception has been set.
88 89 90 |
# File 'lib/chef/run_status.rb', line 88 def success? @exception.nil? end |
#to_h ⇒ Object Also known as: to_hash
A Hash representation of the RunStatus, with the following (Symbol) keys:
-
:node
-
:success
-
:start_time
-
:end_time
-
:elapsed_time
-
:all_resources
-
:updated_resources
-
:exception
-
:backtrace
102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/chef/run_status.rb', line 102 def to_h # use a flat hash here so we can't errors from intermediate values being nil { node: node, success: success?, start_time: start_time, end_time: end_time, elapsed_time: elapsed_time, all_resources: all_resources, updated_resources: updated_resources, exception: formatted_exception, backtrace: backtrace, run_id: run_id } end |
#updated_resources ⇒ Object
The list of all resources in the current run context’s resource_collection
that are marked as updated
73 74 75 |
# File 'lib/chef/run_status.rb', line 73 def updated_resources @run_context && @run_context.resource_collection.select(&:updated) end |