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.
-
#exception ⇒ Object
Returns the value of attribute exception.
-
#run_context ⇒ Object
Returns the value of attribute run_context.
-
#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) ⇒ RunStatus
constructor
A new instance of RunStatus.
- #node ⇒ Object
-
#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_hash ⇒ Object
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) ⇒ RunStatus
Returns a new instance of RunStatus.
38 39 40 |
# File 'lib/chef/run_status.rb', line 38 def initialize(node) @node = node 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 |
#exception ⇒ Object
Returns the value of attribute exception.
34 35 36 |
# File 'lib/chef/run_status.rb', line 34 def exception @exception end |
#run_context ⇒ Object
Returns the value of attribute run_context.
26 27 28 |
# File 'lib/chef/run_status.rb', line 26 def run_context @run_context 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.
117 118 119 |
# File 'lib/chef/run_status.rb', line 117 def formatted_exception @exception && "#{@exception.class.name}: #{@exception.}" end |
#node ⇒ Object
42 43 44 |
# File 'lib/chef/run_status.rb', line 42 def node @node end |
#start_clock ⇒ Object
sets start_time
to the current time.
47 48 49 |
# File 'lib/chef/run_status.rb', line 47 def start_clock @start_time = Time.now end |
#stop_clock ⇒ Object
sets end_time
to the current time
52 53 54 |
# File 'lib/chef/run_status.rb', line 52 def stop_clock @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_hash ⇒ Object
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 |
# File 'lib/chef/run_status.rb', line 102 def to_hash # 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} 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 { |r| r.updated } end |