class Chef::Formatters::ErrorInspectors::CookbookSyncErrorInspector

CookbookSyncErrorInspector

Generates human-friendly explanations for errors encountered during cookbook sync.

Attributes

cookbooks[R]
exception[R]

Public Class Methods

new(cookbooks, exception) click to toggle source
# File lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb, line 38
def initialize(cookbooks, exception)
  @cookbooks, @exception = cookbooks, exception
end

Public Instance Methods

add_explanation(error_description) click to toggle source
# File lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb, line 42
def add_explanation(error_description)
  case exception
  when Net::HTTPClientException, Net::HTTPFatalError
    humanize_http_exception(error_description)
  when EOFError
    describe_eof_error(error_description)
  when *NETWORK_ERROR_CLASSES
    describe_network_errors(error_description)
  else
    error_description.section("Unexpected Error:", "#{exception.class.name}: #{exception.message}")
  end
end
config() click to toggle source
# File lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb, line 55
def config
  Chef::Config
end
humanize_http_exception(error_description) click to toggle source
# File lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb, line 59
def humanize_http_exception(error_description)
  response = exception.response
  case response
  when Net::HTTPUnauthorized
    # TODO: this is where you'd see conflicts b/c of username/clientname stuff
    describe_401_error(error_description)
  when Net::HTTPBadRequest
    describe_400_error(error_description)
  when Net::HTTPNotFound
  when Net::HTTPInternalServerError
    describe_500_error(error_description)
  when Net::HTTPBadGateway, Net::HTTPServiceUnavailable, Net::HTTPGatewayTimeOut
    describe_503_error(error_description)
  when Net::HTTPNotAcceptable
    describe_406_error(error_description, response)
  else
    describe_http_error(error_description)
  end
end