Class: Chef::Formatters::Doc
- Inherits:
-
Base
- Object
- EventDispatch::Base
- Base
- Chef::Formatters::Doc
- Defined in:
- lib/chef/formatters/doc.rb
Overview
– TODO: not sold on the name, but the output is similar to what rspec calls “specdoc”
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#converge_complete ⇒ Object
Called when the converge phase is finished.
-
#converge_start(run_context) ⇒ Object
Called before convergence starts.
-
#cookbook_clean_complete ⇒ Object
Called when cookbook cleaning is finished.
-
#cookbook_clean_start ⇒ Object
Called before unneeded cookbooks are removed.
-
#cookbook_resolution_complete(cookbook_collection) ⇒ Object
Called when the cookbook collection is returned from the server.
-
#cookbook_resolution_failed(expanded_run_list, exception) ⇒ Object
Called when there is an error getting the cookbook collection from the server.
-
#cookbook_resolution_start(expanded_run_list) ⇒ Object
Called before the cookbook collection is fetched from the server.
-
#cookbook_sync_complete ⇒ Object
Called after all cookbooks have been sync’d.
-
#cookbook_sync_start(cookbook_count) ⇒ Object
Called before cookbook sync starts.
-
#file_loaded(path) ⇒ Object
Called after a file in a cookbook is loaded.
-
#initialize(out, err) ⇒ Doc
constructor
A new instance of Doc.
-
#library_load_start(file_count) ⇒ Object
Called when cookbook loading starts.
-
#node_load_completed(node, expanded_run_list, config) ⇒ Object
Default and override attrs from roles have been computed, but not yet applied.
-
#node_load_failed(node_name, exception, config) ⇒ Object
Failed to load node data from the server.
- #node_load_start(node_name, config) ⇒ Object
-
#ohai_completed(node) ⇒ Object
Called right after ohai runs.
- #output_record(line) ⇒ Object
-
#provider_requirement_failed(action, resource, exception, message) ⇒ Object
Called when an assertion declared by a provider fails.
-
#recipe_load_complete ⇒ Object
Called when recipes have been loaded.
- #registration_completed ⇒ Object
-
#registration_start(node_name, config) ⇒ Object
About to attempt to register as
node_name
. -
#removed_cookbook_file(path) ⇒ Object
Called after the file at
path
is removed. -
#resource_action_start(resource, action, notification_type = nil, notifier = nil) ⇒ Object
Called before action is executed on a resource.
- #resource_bypassed(resource, action, provider) ⇒ Object
-
#resource_current_state_load_bypassed(resource, action, current_resource) ⇒ Object
Called when resource current state load is skipped due to the provider not supporting whyrun mode.
-
#resource_current_state_loaded(resource, action, current_resource) ⇒ Object
Called after #load_current_resource has run.
-
#resource_failed(resource, action, exception) ⇒ Object
Called when a resource fails and will not be retried.
-
#resource_failed_retriable(resource, action, retry_count, exception) ⇒ Object
Called when a resource fails, but will retry.
-
#resource_skipped(resource, action, conditional) ⇒ Object
Called when a resource action has been skipped b/c of a conditional.
-
#resource_up_to_date(resource, action) ⇒ Object
Called when a resource has no converge actions, e.g., it was already correct.
-
#resource_update_applied(resource, action, update) ⇒ Object
Called when a change has been made to a resource.
-
#resource_updated(resource, action) ⇒ Object
Called after a resource has been completely converged.
- #run_completed(node) ⇒ Object
- #run_failed(exception) ⇒ Object
- #run_start(version) ⇒ Object
-
#skipping_registration(node_name, config) ⇒ Object
Already have a client key, assuming this node has registered.
-
#synchronized_cookbook(cookbook_name) ⇒ Object
Called when cookbook
cookbook_name
has been sync’d. -
#updated_cookbook_file(cookbook_name, path) ⇒ Object
Called when an individual file in a cookbook has been updated.
-
#whyrun_assumption(action, resource, message) ⇒ Object
Called when a provider makes an assumption after a failed assertion in whyrun mode, in order to allow execution to continue.
Methods inherited from Base
#attribute_file_load_failed, #attribute_file_loaded, cli_name, #cookbook_sync_failed, #definition_file_load_failed, #definition_file_loaded, #display_error, #file_load_failed, #library_file_load_failed, #library_file_loaded, #lwrp_file_load_failed, #lwrp_file_loaded, #print, #puts, #recipe_file_load_failed, #recipe_file_loaded, #recipe_not_found, #registration_failed, #run_list_expand_failed
Methods included from ErrorMapper
cookbook_resolution_failed, cookbook_sync_failed, file_load_failed, node_load_failed, registration_failed, resource_failed, run_list_expand_failed
Methods inherited from EventDispatch::Base
#attribute_file_load_failed, #attribute_file_loaded, #attribute_load_complete, #attribute_load_start, #cookbook_sync_failed, #definition_file_load_failed, #definition_file_loaded, #definition_load_complete, #definition_load_start, #handler_executed, #handlers_completed, #handlers_start, #library_file_load_failed, #library_file_loaded, #library_load_complete, #lwrp_file_load_failed, #lwrp_file_loaded, #lwrp_load_complete, #lwrp_load_start, #msg, #recipe_file_load_failed, #recipe_file_loaded, #recipe_load_start, #recipe_not_found, #registration_failed, #resource_completed, #run_list_expand_failed
Constructor Details
#initialize(out, err) ⇒ Doc
Returns a new instance of Doc.
13 14 15 16 17 |
# File 'lib/chef/formatters/doc.rb', line 13 def initialize(out, err) super @updated_resources = 0 end |
Instance Method Details
#converge_complete ⇒ Object
Called when the converge phase is finished.
134 135 |
# File 'lib/chef/formatters/doc.rb', line 134 def converge_complete end |
#converge_start(run_context) ⇒ Object
Called before convergence starts
129 130 131 |
# File 'lib/chef/formatters/doc.rb', line 129 def converge_start(run_context) puts "Converging #{run_context.resource_collection.all_resources.size} resources" end |
#cookbook_clean_complete ⇒ Object
Called when cookbook cleaning is finished.
94 95 |
# File 'lib/chef/formatters/doc.rb', line 94 def cookbook_clean_complete end |
#cookbook_clean_start ⇒ Object
Called before unneeded cookbooks are removed
84 85 |
# File 'lib/chef/formatters/doc.rb', line 84 def cookbook_clean_start end |
#cookbook_resolution_complete(cookbook_collection) ⇒ Object
Called when the cookbook collection is returned from the server.
80 81 |
# File 'lib/chef/formatters/doc.rb', line 80 def cookbook_resolution_complete(cookbook_collection) end |
#cookbook_resolution_failed(expanded_run_list, exception) ⇒ Object
Called when there is an error getting the cookbook collection from the server.
75 76 77 |
# File 'lib/chef/formatters/doc.rb', line 75 def cookbook_resolution_failed(, exception) super end |
#cookbook_resolution_start(expanded_run_list) ⇒ Object
Called before the cookbook collection is fetched from the server.
69 70 71 |
# File 'lib/chef/formatters/doc.rb', line 69 def cookbook_resolution_start() puts "resolving cookbooks for run list: #{.inspect}" end |
#cookbook_sync_complete ⇒ Object
Called after all cookbooks have been sync’d.
112 113 |
# File 'lib/chef/formatters/doc.rb', line 112 def cookbook_sync_complete end |
#cookbook_sync_start(cookbook_count) ⇒ Object
Called before cookbook sync starts
98 99 100 |
# File 'lib/chef/formatters/doc.rb', line 98 def cookbook_sync_start(cookbook_count) puts "Synchronizing Cookbooks:" end |
#file_loaded(path) ⇒ Object
Called after a file in a cookbook is loaded.
121 122 |
# File 'lib/chef/formatters/doc.rb', line 121 def file_loaded(path) end |
#library_load_start(file_count) ⇒ Object
Called when cookbook loading starts.
116 117 118 |
# File 'lib/chef/formatters/doc.rb', line 116 def library_load_start(file_count) puts "Compiling Cookbooks..." end |
#node_load_completed(node, expanded_run_list, config) ⇒ Object
Default and override attrs from roles have been computed, but not yet applied. Normal attrs from JSON have been added to the node.
65 66 |
# File 'lib/chef/formatters/doc.rb', line 65 def node_load_completed(node, , config) end |
#node_load_failed(node_name, exception, config) ⇒ Object
Failed to load node data from the server
59 60 61 |
# File 'lib/chef/formatters/doc.rb', line 59 def node_load_failed(node_name, exception, config) super end |
#node_load_start(node_name, config) ⇒ Object
55 56 |
# File 'lib/chef/formatters/doc.rb', line 55 def node_load_start(node_name, config) end |
#ohai_completed(node) ⇒ Object
Called right after ohai runs.
40 41 |
# File 'lib/chef/formatters/doc.rb', line 40 def ohai_completed(node) end |
#output_record(line) ⇒ Object
181 182 183 |
# File 'lib/chef/formatters/doc.rb', line 181 def output_record(line) end |
#provider_requirement_failed(action, resource, exception, message) ⇒ Object
Called when an assertion declared by a provider fails
227 228 229 230 231 232 233 |
# File 'lib/chef/formatters/doc.rb', line 227 def provider_requirement_failed(action, resource, exception, ) return unless color = Chef::Config[:why_run] ? :yellow : :red [ ].flatten.each do |line| @output.color("\n * #{line}", color) end end |
#recipe_load_complete ⇒ Object
Called when recipes have been loaded.
125 126 |
# File 'lib/chef/formatters/doc.rb', line 125 def recipe_load_complete end |
#registration_completed ⇒ Object
52 53 |
# File 'lib/chef/formatters/doc.rb', line 52 def registration_completed end |
#registration_start(node_name, config) ⇒ Object
About to attempt to register as node_name
48 49 50 |
# File 'lib/chef/formatters/doc.rb', line 48 def registration_start(node_name, config) puts "Creating a new client identity for #{node_name} using the validator key." end |
#removed_cookbook_file(path) ⇒ Object
Called after the file at path
is removed. It may be removed if the cookbook containing it was removed from the run list, or if the file was removed from the cookbook.
90 91 |
# File 'lib/chef/formatters/doc.rb', line 90 def removed_cookbook_file(path) end |
#resource_action_start(resource, action, notification_type = nil, notifier = nil) ⇒ Object
Called before action is executed on a resource.
138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/chef/formatters/doc.rb', line 138 def resource_action_start(resource, action, notification_type=nil, notifier=nil) if resource.cookbook_name && resource.recipe_name resource_recipe = "#{resource.cookbook_name}::#{resource.recipe_name}" else resource_recipe = "<Dynamically Defined Resource>" end if resource_recipe != @current_recipe puts "Recipe: #{resource_recipe}" @current_recipe = resource_recipe end # TODO: info about notifies print " * #{resource} action #{action}" end |
#resource_bypassed(resource, action, provider) ⇒ Object
177 178 179 |
# File 'lib/chef/formatters/doc.rb', line 177 def resource_bypassed(resource, action, provider) puts " (Skipped: whyrun not supported by provider #{provider.class.name})" end |
#resource_current_state_load_bypassed(resource, action, current_resource) ⇒ Object
Called when resource current state load is skipped due to the provider not supporting whyrun mode.
213 214 215 |
# File 'lib/chef/formatters/doc.rb', line 213 def resource_current_state_load_bypassed(resource, action, current_resource) @output.color("\n * Whyrun not supported for #{resource}, bypassing load.", :yellow) end |
#resource_current_state_loaded(resource, action, current_resource) ⇒ Object
Called after #load_current_resource has run.
169 170 |
# File 'lib/chef/formatters/doc.rb', line 169 def resource_current_state_loaded(resource, action, current_resource) end |
#resource_failed(resource, action, exception) ⇒ Object
Called when a resource fails and will not be retried.
158 159 160 |
# File 'lib/chef/formatters/doc.rb', line 158 def resource_failed(resource, action, exception) super end |
#resource_failed_retriable(resource, action, retry_count, exception) ⇒ Object
Called when a resource fails, but will retry.
154 155 |
# File 'lib/chef/formatters/doc.rb', line 154 def resource_failed_retriable(resource, action, retry_count, exception) end |
#resource_skipped(resource, action, conditional) ⇒ Object
Called when a resource action has been skipped b/c of a conditional
163 164 165 166 |
# File 'lib/chef/formatters/doc.rb', line 163 def resource_skipped(resource, action, conditional) # TODO: more info about conditional puts " (skipped due to #{conditional.positivity})" end |
#resource_up_to_date(resource, action) ⇒ Object
Called when a resource has no converge actions, e.g., it was already correct.
173 174 175 |
# File 'lib/chef/formatters/doc.rb', line 173 def resource_up_to_date(resource, action) puts " (up to date)" end |
#resource_update_applied(resource, action, update) ⇒ Object
Called when a change has been made to a resource. May be called multiple times per resource, e.g., a file may have its content updated, and then its permissions updated.
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
# File 'lib/chef/formatters/doc.rb', line 188 def resource_update_applied(resource, action, update) prefix = Chef::Config[:why_run] ? "Would " : "" Array(update).each do |line| next if line.nil? output_record line if line.kind_of? String @output.color "\n - #{prefix}#{line}", :green elsif line.kind_of? Array # Expanded output - delta # @todo should we have a resource_update_delta callback? line.each do |detail| @output.color "\n #{detail}", :white end end end end |
#resource_updated(resource, action) ⇒ Object
Called after a resource has been completely converged.
206 207 208 209 |
# File 'lib/chef/formatters/doc.rb', line 206 def resource_updated(resource, action) @updated_resources += 1 puts "\n" end |
#run_completed(node) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/chef/formatters/doc.rb', line 23 def run_completed(node) if Chef::Config[:whyrun] puts "Chef Client finished, #{@updated_resources} resources would have been updated" else puts "Chef Client finished, #{@updated_resources} resources updated" end end |
#run_failed(exception) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/chef/formatters/doc.rb', line 31 def run_failed(exception) if Chef::Config[:whyrun] puts "Chef Client failed. #{@updated_resources} resources would have been updated" else puts "Chef Client failed. #{@updated_resources} resources updated" end end |
#run_start(version) ⇒ Object
19 20 21 |
# File 'lib/chef/formatters/doc.rb', line 19 def run_start(version) puts "Starting Chef Client, version #{version}" end |
#skipping_registration(node_name, config) ⇒ Object
Already have a client key, assuming this node has registered.
44 45 |
# File 'lib/chef/formatters/doc.rb', line 44 def skipping_registration(node_name, config) end |
#synchronized_cookbook(cookbook_name) ⇒ Object
Called when cookbook cookbook_name
has been sync’d
103 104 105 |
# File 'lib/chef/formatters/doc.rb', line 103 def synchronized_cookbook(cookbook_name) puts " - #{cookbook_name}" end |
#updated_cookbook_file(cookbook_name, path) ⇒ Object
Called when an individual file in a cookbook has been updated
108 109 |
# File 'lib/chef/formatters/doc.rb', line 108 def updated_cookbook_file(cookbook_name, path) end |
#whyrun_assumption(action, resource, message) ⇒ Object
Called when a provider makes an assumption after a failed assertion in whyrun mode, in order to allow execution to continue
219 220 221 222 223 224 |
# File 'lib/chef/formatters/doc.rb', line 219 def whyrun_assumption(action, resource, ) return unless [ ].flatten.each do |line| @output.color("\n * #{line}", :yellow) end end |