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


469
470
471
472
473
474
# File 'lib/chef/exceptions.rb', line 469

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


468
469
470
# File 'lib/chef/exceptions.rb', line 468

def wrapped_errors
  @wrapped_errors
end

Instance Method Details

#fill_backtraceObject


476
477
478
479
480
481
482
483
484
# File 'lib/chef/exceptions.rb', line 476

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 << "" unless i == wrapped_errors.length - 1
  end
  set_backtrace(backtrace)
end