Class: Chef::Formatters::ErrorInspectors::RunListExpansionErrorInspector
- Inherits:
-
Object
- Object
- Chef::Formatters::ErrorInspectors::RunListExpansionErrorInspector
show all
- Includes:
- APIErrorFormatting
- Defined in:
- lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb
Constant Summary
APIErrorFormatting::NETWORK_ERROR_CLASSES
Instance Attribute Summary collapse
Instance Method Summary
collapse
#api_key, #clock_skew?, #describe_400_error, #describe_401_error, #describe_500_error, #describe_503_error, #describe_http_error, #describe_network_errors, #format_rest_error, #server_url, #username
Constructor Details
Returns a new instance of RunListExpansionErrorInspector.
32
33
34
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 32
def initialize(node, exception)
@node, @exception = node, exception
end
|
Instance Attribute Details
#exception ⇒ Object
Returns the value of attribute exception
29
30
31
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 29
def exception
@exception
end
|
Returns the value of attribute node
30
31
32
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 30
def node
@node
end
|
Instance Method Details
#add_explanation(error_description) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 36
def add_explanation(error_description)
case exception
when Errno::ECONNREFUSED, Timeout::Error, Errno::ETIMEDOUT, SocketError
error_description.section("Networking Error:",<<-E)
#{exception.message}
Your chef_server_url may be misconfigured, or the network could be down.
E
when Net::HTTPServerException, Net::HTTPFatalError
humanize_http_exception(error_description)
when Chef::Exceptions::MissingRole
describe_missing_role(error_description)
else
error_description.section("Unexpected Error:","#{exception.class.name}: #{exception.message}")
end
end
|
69
70
71
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 69
def config
Chef::Config
end
|
#describe_missing_role(error_description) ⇒ Object
53
54
55
56
57
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 53
def describe_missing_role(error_description)
error_description.section("Missing Role(s) in Run List:", missing_roles_explained)
original_run_list = node.run_list.map {|item| "* #{item}"}.join("\n")
error_description.section("Original Run List", original_run_list)
end
|
#humanize_http_exception(error_description) ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 73
def humanize_http_exception(error_description)
response = exception.response
case response
when Net::HTTPUnauthorized
error_description.section("Authentication Error:",<<-E)
Failed to authenticate to the chef server (http 401).
E
error_description.section("Server Response:", format_rest_error)
error_description.section("Relevant Config Settings:",<<-E)
chef_server_url "#{server_url}"
node_name "#{username}"
client_key "#{api_key}"
If these settings are correct, your client_key may be invalid.
E
when Net::HTTPForbidden
error_description.section("Authorization Error",<<-E)
Your client is not authorized to load one or more of your roles (HTTP 403).
E
error_description.section("Server Response:", format_rest_error)
error_description.section("Possible Causes:",<<-E)
* Your client (#{username}) may have misconfigured authorization permissions.
E
when Net::HTTPInternalServerError
error_description.section("Unknown Server Error:",<<-E)
The server had a fatal error attempting to load a role.
E
error_description.section("Server Response:", format_rest_error)
when Net::HTTPBadGateway, Net::HTTPServiceUnavailable
error_description.section("Server Unavailable","The Chef Server is temporarily unavailable")
error_description.section("Server Response:", format_rest_error)
else
error_description.section("Unexpected API Request Failure:", format_rest_error)
end
end
|
#missing_roles_explained ⇒ Object
59
60
61
62
63
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 59
def missing_roles_explained
run_list_expansion.missing_roles_with_including_role.map do |role, includer|
"* #{role} included by '#{includer}'"
end.join("\n")
end
|
#run_list_expansion ⇒ Object
65
66
67
|
# File 'lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb', line 65
def run_list_expansion
exception.expansion
end
|