Class: Chef::Formatters::Minimal

Inherits:
Base show all
Defined in:
lib/chef/formatters/minimal.rb

Overview

Formatters::Minimal

Shows the progress of the chef run by printing single characters, and displays a summary of updates at the conclusion of the run. For events that don't have meaningful status information (loading a file, syncing a cookbook) a dot is printed. For resources, a dot, 'S' or 'U' is printed if the resource is up to date, skipped by not_if/only_if, or updated, respectively.

Instance Attribute Summary collapse

Attributes inherited from Base

#err, #out, #output

Instance Method Summary collapse

Methods inherited from Base

#attribute_file_load_failed, #attribute_file_loaded, cli_name, #cookbook_sync_failed, #definition_file_load_failed, #definition_file_loaded, #deprecation, #display_error, #indent_by, #is_formatter?, #is_structured_deprecation?, #library_file_load_failed, #library_file_loaded, #lwrp_file_load_failed, #lwrp_file_loaded, #print, #puts, #puts_line, #recipe_file_load_failed, #recipe_file_loaded, #recipe_not_found, #run_list_expand_failed, #start_line

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

#action_collection_registration, #attribute_changed, #attribute_file_load_failed, #attribute_file_loaded, #attribute_load_complete, #attribute_load_start, #compliance_input_enabled, #compliance_input_loaded, #compliance_load_complete, #compliance_load_start, #compliance_profile_enabled, #compliance_profile_loaded, #compliance_waiver_enabled, #compliance_waiver_loaded, #converge_failed, #cookbook_compilation_complete, #cookbook_compilation_start, #cookbook_gem_failed, #cookbook_gem_finished, #cookbook_gem_installing, #cookbook_gem_start, #cookbook_gem_using, #cookbook_sync_failed, #definition_file_load_failed, #definition_file_loaded, #definition_load_complete, #definition_load_start, #deprecation, #inputs_load_complete, #inputs_load_start, #library_file_load_failed, #library_file_loaded, #library_load_complete, #lwrp_file_load_failed, #lwrp_file_loaded, #lwrp_load_complete, #lwrp_load_start, #node_load_success, #ohai_plugin_file_load_failed, #ohai_plugin_file_loaded, #ohai_plugin_load_complete, #ohai_plugin_load_start, #policyfile_loaded, #profiles_load_complete, #profiles_load_start, #provider_requirement_failed, #recipe_file_load_failed, #recipe_file_loaded, #recipe_load_start, #recipe_not_found, #resource_after_state_loaded, #resource_bypassed, #resource_completed, #resource_current_state_load_bypassed, #resource_update_progress, #run_list_expand_failed, #run_list_expanded, #run_started, #stream_closed, #stream_opened, #stream_output, #waivers_load_complete, #waivers_load_start, #whyrun_assumption

Constructor Details

#initialize(out, err) ⇒ Minimal

Returns a new instance of Minimal.


23
24
25
26
27
# File 'lib/chef/formatters/minimal.rb', line 23

def initialize(out, err)
  super
  @updated_resources = []
  @updates_by_resource = Hash.new { |h, k| h[k] = [] }
end

Instance Attribute Details

#updated_resourcesObject (readonly)

Returns the value of attribute updated_resources.


20
21
22
# File 'lib/chef/formatters/minimal.rb', line 20

def updated_resources
  @updated_resources
end

#updates_by_resourceObject (readonly)

Returns the value of attribute updates_by_resource.


21
22
23
# File 'lib/chef/formatters/minimal.rb', line 21

def updates_by_resource
  @updates_by_resource
end

Instance Method Details

#converge_completeObject

Called when the converge phase is finished.


141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/chef/formatters/minimal.rb', line 141

def converge_complete
  puts "\n"
  puts "System converged."
  if updated_resources.empty?
    puts "no resources updated"
  else
    puts "\n"
    puts "resources updated this run:"
    updated_resources.each do |resource|
      puts "* #{resource}"
      updates_by_resource[resource.name].flatten.each do |update|
        puts "  - #{update}"
      end
      puts "\n"
    end
  end
end

#converge_start(run_context) ⇒ Object

Called before convergence starts


136
137
138
# File 'lib/chef/formatters/minimal.rb', line 136

def converge_start(run_context)
  puts "Converging #{run_context.resource_collection.all_resources.size} resources"
end

#cookbook_clean_completeObject

Called when cookbook cleaning is finished.


96
# File 'lib/chef/formatters/minimal.rb', line 96

def cookbook_clean_complete; end

#cookbook_clean_startObject

Called before unneeded cookbooks are removed – TODO: Should be called in CookbookVersion.sync_cookbooks


88
# File 'lib/chef/formatters/minimal.rb', line 88

def cookbook_clean_start; end

#cookbook_resolution_complete(cookbook_collection) ⇒ Object

Called when the cookbook collection is returned from the server.


83
# File 'lib/chef/formatters/minimal.rb', line 83

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.


80
# File 'lib/chef/formatters/minimal.rb', line 80

def cookbook_resolution_failed(expanded_run_list, exception); end

#cookbook_resolution_start(expanded_run_list) ⇒ Object

Called before the cookbook collection is fetched from the server.


74
75
76
# File 'lib/chef/formatters/minimal.rb', line 74

def cookbook_resolution_start(expanded_run_list)
  puts "Resolving cookbooks for run list: #{expanded_run_list.inspect}"
end

#cookbook_sync_completeObject

Called after all cookbooks have been sync'd.


112
113
114
# File 'lib/chef/formatters/minimal.rb', line 112

def cookbook_sync_complete
  puts "done."
end

#cookbook_sync_start(cookbook_count) ⇒ Object

Called before cookbook sync starts


99
100
101
# File 'lib/chef/formatters/minimal.rb', line 99

def cookbook_sync_start(cookbook_count)
  puts "Synchronizing cookbooks"
end

#file_load_failed(path, exception) ⇒ Object


126
127
128
# File 'lib/chef/formatters/minimal.rb', line 126

def file_load_failed(path, exception)
  super
end

#file_loaded(path) ⇒ Object

Called after a file in a cookbook is loaded.


122
123
124
# File 'lib/chef/formatters/minimal.rb', line 122

def file_loaded(path)
  print "."
end

#handler_executed(handler) ⇒ Object

Called after an individual handler has run


202
# File 'lib/chef/formatters/minimal.rb', line 202

def handler_executed(handler); end

#handlers_completedObject

Called after all handlers have executed


205
# File 'lib/chef/formatters/minimal.rb', line 205

def handlers_completed; end

#handlers_start(handler_count) ⇒ Object

Called before handlers run


199
# File 'lib/chef/formatters/minimal.rb', line 199

def handlers_start(handler_count); end

#library_load_start(file_count) ⇒ Object

Called when cookbook loading starts.


117
118
119
# File 'lib/chef/formatters/minimal.rb', line 117

def library_load_start(file_count)
  puts "Compiling cookbooks"
end

#msg(message) ⇒ Object

An uncategorized message. This supports the case that a user needs to pass output that doesn't fit into one of the callbacks above. Note that there's no semantic information about the content or importance of the message. That means that if you're using this too often, you should add a callback for it.


212
# File 'lib/chef/formatters/minimal.rb', line 212

def msg(message); 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.


71
# File 'lib/chef/formatters/minimal.rb', line 71

def node_load_completed(node, expanded_run_list, config); end

#node_load_failed(node_name, exception, config) ⇒ Object

Failed to load node data from the server


67
# File 'lib/chef/formatters/minimal.rb', line 67

def node_load_failed(node_name, exception, config); end

#node_load_start(node_name, config) ⇒ Object


64
# File 'lib/chef/formatters/minimal.rb', line 64

def node_load_start(node_name, config); end

#ohai_completed(node) ⇒ Object

Called right after ohai runs.


49
# File 'lib/chef/formatters/minimal.rb', line 49

def ohai_completed(node); end

#recipe_load_completeObject

Called when recipes have been loaded.


131
132
133
# File 'lib/chef/formatters/minimal.rb', line 131

def recipe_load_complete
  puts "done."
end

#registration_completedObject


57
# File 'lib/chef/formatters/minimal.rb', line 57

def registration_completed; end

#registration_failed(node_name, exception, config) ⇒ Object

Failed to register this client with the server.


60
61
62
# File 'lib/chef/formatters/minimal.rb', line 60

def registration_failed(node_name, exception, config)
  super
end

#registration_start(node_name, config) ⇒ Object

About to attempt to register as node_name


55
# File 'lib/chef/formatters/minimal.rb', line 55

def registration_start(node_name, config); 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.


93
# File 'lib/chef/formatters/minimal.rb', line 93

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.


160
# File 'lib/chef/formatters/minimal.rb', line 160

def resource_action_start(resource, action, notification_type = nil, notifier = nil); end

#resource_current_state_loaded(resource, action, current_resource) ⇒ Object

Called after #load_current_resource has run.


174
# File 'lib/chef/formatters/minimal.rb', line 174

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.


166
# File 'lib/chef/formatters/minimal.rb', line 166

def resource_failed(resource, action, exception); end

#resource_failed_retriable(resource, action, retry_count, exception) ⇒ Object

Called when a resource fails, but will retry.


163
# File 'lib/chef/formatters/minimal.rb', line 163

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


169
170
171
# File 'lib/chef/formatters/minimal.rb', line 169

def resource_skipped(resource, action, conditional)
  print "S"
end

#resource_up_to_date(resource, action) ⇒ Object

Called when a resource has no converge actions, e.g., it was already correct.


177
178
179
# File 'lib/chef/formatters/minimal.rb', line 177

def resource_up_to_date(resource, action)
  print "."
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
# File 'lib/chef/formatters/minimal.rb', line 188

def resource_update_applied(resource, action, update)
  @updates_by_resource[resource.name] << Array(update)[0]
end

#resource_updated(resource, action) ⇒ Object

Called after a resource has been completely converged.


193
194
195
196
# File 'lib/chef/formatters/minimal.rb', line 193

def resource_updated(resource, action)
  updated_resources << resource
  print "U"
end

#run_completed(node) ⇒ Object

Called at the end of the Chef run.


39
40
41
# File 'lib/chef/formatters/minimal.rb', line 39

def run_completed(node)
  puts "Infra phase complete, #{@updated_resources.size} resources updated"
end

#run_failed(exception) ⇒ Object

called at the end of a failed run


44
45
46
# File 'lib/chef/formatters/minimal.rb', line 44

def run_failed(exception)
  puts "Infra phase failed. #{@updated_resources.size} resources updated"
end

#run_start(version, run_status) ⇒ Object

Called at the very start of a Chef Run


30
31
32
33
34
35
36
# File 'lib/chef/formatters/minimal.rb', line 30

def run_start(version, run_status)
  puts_line "#{ChefUtils::Dist::Infra::PRODUCT}, version #{version}"
  puts_line "Patents: #{ChefUtils::Dist::Org::PATENTS}"
  puts_line "OpenSSL FIPS 140 mode enabled" if Chef::Config[:fips]
  puts_line "Infra Phase starting"
  puts_line "Targeting node: #{Chef::Config.target_mode.host}" if Chef::Config.target_mode?
end

#skipping_registration(node_name, config) ⇒ Object

Already have a client key, assuming this node has registered.


52
# File 'lib/chef/formatters/minimal.rb', line 52

def skipping_registration(node_name, config); end

#synchronized_cookbook(cookbook_name, cookbook) ⇒ Object

Called when cookbook cookbook has been sync'd


104
105
106
# File 'lib/chef/formatters/minimal.rb', line 104

def synchronized_cookbook(cookbook_name, cookbook)
  print "."
end

#updated_cookbook_file(cookbook_name, path) ⇒ Object

Called when an individual file in a cookbook has been updated


109
# File 'lib/chef/formatters/minimal.rb', line 109

def updated_cookbook_file(cookbook_name, path); end