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+ and +end_time+.
-
#failed? ⇒ Boolean
Did the Chef run fail?.
-
#formatted_exception ⇒ Object
Returns a string of the format "ExceptionClass: message" or +nil+ if no +exception+ 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 |