Exception: Chef::Exceptions::RunFailedWrappingError

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

Overview

If a converge 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.



490
491
492
493
494
495
# File 'lib/chef/exceptions.rb', line 490

def initialize(*errors)
  errors = errors.compact
  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.



488
489
490
# File 'lib/chef/exceptions.rb', line 488

def wrapped_errors
  @wrapped_errors
end

Instance Method Details

#fill_backtraceObject



497
498
499
500
501
502
503
504
505
# File 'lib/chef/exceptions.rb', line 497

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