Exception: Chef::Exceptions::RunFailedWrappingError

Inherits:
RuntimeError
  • Object
show all
Defined in:
lib/chef/exceptions.rb

Overview

If a converge or audit fails, we want to wrap the output from those errors into 1 error so we can see both issues in the output. It is possible that nil will be provided. You must call ‘fill_backtrace` to correctly populate the backtrace with the wrapped backtraces.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*errors) ⇒ RunFailedWrappingError

Returns a new instance of RunFailedWrappingError.



422
423
424
425
426
427
# File 'lib/chef/exceptions.rb', line 422

def initialize(*errors)
  errors = errors.select {|e| !e.nil?}
  output = "Found #{errors.size} errors, they are stored in the backtrace"
  @wrapped_errors = errors
  super output
end

Instance Attribute Details

#wrapped_errorsObject (readonly)

Returns the value of attribute wrapped_errors.



421
422
423
# File 'lib/chef/exceptions.rb', line 421

def wrapped_errors
  @wrapped_errors
end

Instance Method Details

#fill_backtraceObject



429
430
431
432
433
434
435
436
437
# File 'lib/chef/exceptions.rb', line 429

def fill_backtrace
  backtrace = []
  wrapped_errors.each_with_index do |e,i|
    backtrace << "#{i+1}) #{e.class} -  #{e.message}"
    backtrace += e.backtrace if e.backtrace
    backtrace << ""
  end
  set_backtrace(backtrace)
end