Module: Chef::DataCollector::ErrorHandlers Private
- Included in:
- Reporter
- Defined in:
- lib/chef/data_collector/error_handlers.rb
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
This module isolates the handling of collecting error descriptions to insert into the data_collector report output. For very early errors it is responsible for collecting the node_name for the report to use. For all failure conditions that have an ErrorMapper it collects the output.
No external code should call anything in this module directly.
Instance Attribute Summary collapse
-
#node_name ⇒ String
readonly
private
The fallback node name if we do NOT have a node due to early failures.
Instance Method Summary collapse
-
#cookbook_resolution_failed(expanded_run_list, exception) ⇒ Object
private
This is an "early" failure during cookbook resolution / depsolving / talking to cookbook_version endpoint on a server.
-
#cookbook_sync_failed(cookbooks, exception) ⇒ Object
private
This is an "early" failure during cookbook synchronization.
-
#error_description ⇒ Hash
private
JSON-formatted error description from the Chef::Formatters::ErrorMapper.
-
#file_load_failed(path, exception) ⇒ Object
private
This failure happens during library loading / attribute file parsing, etc.
-
#node_load_failed(node_name, exception, config) ⇒ Object
private
This is an exceptionally "early" failure that results in not having a valid Chef::Node object, so it must capture the node_name from the config.rb.
-
#recipe_not_found(exception) ⇒ Object
private
This failure happens at converge time during recipe parsing.
-
#registration_failed(node_name, exception, config) ⇒ Object
private
This is an exceptionally "early" failure that results in not having a valid Chef::Node object, so it must capture the node_name from the config.rb.
-
#resource_failed(new_resource, action, exception) ⇒ Object
private
This is a normal resource failure event during compile/converge phases.
-
#run_list_expand_failed(node, exception) ⇒ Object
private
This is an "early" failure during run_list expansion.
Instance Attribute Details
#node_name ⇒ String (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the fallback node name if we do NOT have a node due to early failures.
32 33 34 |
# File 'lib/chef/data_collector/error_handlers.rb', line 32 def node_name @node_name end |
Instance Method Details
#cookbook_resolution_failed(expanded_run_list, exception) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This is an "early" failure during cookbook resolution / depsolving / talking to cookbook_version endpoint on a server
(see EventDispatch::Base#cookbook_resolution_failed)
74 75 76 77 |
# File 'lib/chef/data_collector/error_handlers.rb', line 74 def cookbook_resolution_failed(, exception) description = Formatters::ErrorMapper.cookbook_resolution_failed(, exception) @error_description = description.for_json end |
#cookbook_sync_failed(cookbooks, exception) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This is an "early" failure during cookbook synchronization
(see EventDispatch::Base#cookbook_sync_failed)
83 84 85 86 |
# File 'lib/chef/data_collector/error_handlers.rb', line 83 def cookbook_sync_failed(cookbooks, exception) description = Formatters::ErrorMapper.cookbook_sync_failed(cookbooks, exception) @error_description = description.for_json end |
#error_description ⇒ Hash
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns JSON-formatted error description from the Chef::Formatters::ErrorMapper.
35 36 37 |
# File 'lib/chef/data_collector/error_handlers.rb', line 35 def error_description @error_description ||= {} end |
#file_load_failed(path, exception) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This failure happens during library loading / attribute file parsing, etc.
(see EventDispatch::Base#file_load_failed)
92 93 94 95 |
# File 'lib/chef/data_collector/error_handlers.rb', line 92 def file_load_failed(path, exception) description = Formatters::ErrorMapper.file_load_failed(path, exception) @error_description = description.for_json end |
#node_load_failed(node_name, exception, config) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This is an exceptionally "early" failure that results in not having a valid Chef::Node object, so it must capture the node_name from the config.rb
(see EventDispatch::Base#node_load_failed)
55 56 57 58 59 |
# File 'lib/chef/data_collector/error_handlers.rb', line 55 def node_load_failed(node_name, exception, config) description = Formatters::ErrorMapper.node_load_failed(node_name, exception, config) @node_name = node_name @error_description = description.for_json end |
#recipe_not_found(exception) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This failure happens at converge time during recipe parsing
(see EventDispatch::Base#recipe_not_failed)
101 102 103 104 |
# File 'lib/chef/data_collector/error_handlers.rb', line 101 def recipe_not_found(exception) description = Formatters::ErrorMapper.file_load_failed(nil, exception) @error_description = description.for_json end |
#registration_failed(node_name, exception, config) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This is an exceptionally "early" failure that results in not having a valid Chef::Node object, so it must capture the node_name from the config.rb
(see EventDispatch::Base#registration_failed)
44 45 46 47 48 |
# File 'lib/chef/data_collector/error_handlers.rb', line 44 def registration_failed(node_name, exception, config) description = Formatters::ErrorMapper.registration_failed(node_name, exception, config) @node_name = node_name @error_description = description.for_json end |
#resource_failed(new_resource, action, exception) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This is a normal resource failure event during compile/converge phases
(see EventDispatch::Base#resource_failed)
110 111 112 113 |
# File 'lib/chef/data_collector/error_handlers.rb', line 110 def resource_failed(new_resource, action, exception) description = Formatters::ErrorMapper.resource_failed(new_resource, action, exception) @error_description = description.for_json end |
#run_list_expand_failed(node, exception) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This is an "early" failure during run_list expansion
(see EventDispatch::Base#run_list_expand_failed)
65 66 67 68 |
# File 'lib/chef/data_collector/error_handlers.rb', line 65 def (node, exception) description = Formatters::ErrorMapper.(node, exception) @error_description = description.for_json end |