# class Chef::Formatters::Doc

### Attributes

end_time[R]
start_time[R]

### Public Class Methods

new(out, err) click to toggle source
Calls superclass method Chef::Formatters::Base.new

    # File lib/chef/formatters/doc.rb, line 15
    def initialize(out, err)
      super

      @updated_resources = 0
      @up_to_date_resources = 0
      @start_time = Time.now
      @end_time = @start_time
    end

### Public Instance Methods

converge_complete() click to toggle source

Called when the converge phase is finished.

    # File lib/chef/formatters/doc.rb, line 149
    def converge_complete
    end

converge_start(run_context) click to toggle source

Called before convergence starts

    # File lib/chef/formatters/doc.rb, line 144
    def converge_start(run_context)
      puts "Converging #{run_context.resource_collection.all_resources.size} resources"
    end

cookbook_clean_complete() click to toggle source

Called when cookbook cleaning is finished.

    # File lib/chef/formatters/doc.rb, line 109
    def cookbook_clean_complete
    end

cookbook_clean_start() click to toggle source

Called before unneeded cookbooks are removed

    # File lib/chef/formatters/doc.rb, line 99
    def cookbook_clean_start
    end

cookbook_resolution_complete(cookbook_collection) click to toggle source

Called when the cookbook collection is returned from the server.

    # File lib/chef/formatters/doc.rb, line 95
    def cookbook_resolution_complete(cookbook_collection)
    end

cookbook_resolution_failed(expanded_run_list, exception) click to toggle source

Called when there is an error getting the cookbook collection from the server.

Calls superclass method Chef::Formatters::Base#cookbook_resolution_failed

    # File lib/chef/formatters/doc.rb, line 90
    def cookbook_resolution_failed(expanded_run_list, exception)
      super
    end

cookbook_resolution_start(expanded_run_list) click to toggle source

Called before the cookbook collection is fetched from the server.

    # File lib/chef/formatters/doc.rb, line 84
    def cookbook_resolution_start(expanded_run_list)
      puts "resolving cookbooks for run list: #{expanded_run_list.inspect}"
    end

cookbook_sync_complete() click to toggle source

Called after all cookbooks have been sync’d.

    # File lib/chef/formatters/doc.rb, line 127
    def cookbook_sync_complete
    end

cookbook_sync_start(cookbook_count) click to toggle source

Called before cookbook sync starts

    # File lib/chef/formatters/doc.rb, line 113
    def cookbook_sync_start(cookbook_count)
      puts "Synchronizing Cookbooks:"
    end

elapsed_time() click to toggle source

    # File lib/chef/formatters/doc.rb, line 24
    def elapsed_time
      end_time - start_time
    end

file_loaded(path) click to toggle source

Called after a file in a cookbook is loaded.

    # File lib/chef/formatters/doc.rb, line 136
    def file_loaded(path)
    end

handler_executed(handler) click to toggle source

Called after an individual handler has run

    # File lib/chef/formatters/doc.rb, line 239
    def handler_executed(handler)
      puts "  - #{handler.class.name}"
    end

handlers_completed() click to toggle source

Called after all handlers have executed

    # File lib/chef/formatters/doc.rb, line 244
    def handlers_completed
      puts "Running handlers complete\n"
    end

handlers_start(handler_count) click to toggle source

Called before handlers run

    # File lib/chef/formatters/doc.rb, line 234
    def handlers_start(handler_count)
      puts "\nRunning handlers:"
    end

library_load_start(file_count) click to toggle source

Called when cookbook loading starts.

    # File lib/chef/formatters/doc.rb, line 131
    def library_load_start(file_count)
      puts "Compiling Cookbooks..."
    end

node_load_completed(node, expanded_run_list, config) click to toggle source

Default and override attrs from roles have been computed, but not yet applied. Normal attrs from JSON have been added to the node.

    # File lib/chef/formatters/doc.rb, line 80
    def node_load_completed(node, expanded_run_list, config)
    end

node_load_failed(node_name, exception, config) click to toggle source

Failed to load node data from the server

Calls superclass method Chef::Formatters::Base#node_load_failed

    # File lib/chef/formatters/doc.rb, line 74
    def node_load_failed(node_name, exception, config)
      super
    end

node_load_start(node_name, config) click to toggle source

    # File lib/chef/formatters/doc.rb, line 70
    def node_load_start(node_name, config)
    end

ohai_completed(node) click to toggle source

Called right after ohai runs.

    # File lib/chef/formatters/doc.rb, line 55
    def ohai_completed(node)
    end

output_record(line) click to toggle source

    # File lib/chef/formatters/doc.rb, line 197
    def output_record(line)

    end

provider_requirement_failed(action, resource, exception, message) click to toggle source

Called when an assertion declared by a provider fails

    # File lib/chef/formatters/doc.rb, line 258
    def provider_requirement_failed(action, resource, exception, message)
      return unless message
      color = Chef::Config[:why_run] ? :yellow : :red
      [ message ].flatten.each do |line|
        @output.color("\n    * #{line}", color)
      end
    end

recipe_load_complete() click to toggle source

Called when recipes have been loaded.

    # File lib/chef/formatters/doc.rb, line 140
    def recipe_load_complete
    end

registration_completed() click to toggle source

    # File lib/chef/formatters/doc.rb, line 67
    def registration_completed
    end

registration_start(node_name, config) click to toggle source

About to attempt to register as `node_name`

    # File lib/chef/formatters/doc.rb, line 63
    def registration_start(node_name, config)
      puts "Creating a new client identity for #{node_name} using the validator key."
    end

removed_cookbook_file(path) click to toggle source

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.

    # File lib/chef/formatters/doc.rb, line 105
    def removed_cookbook_file(path)
    end

resource_action_start(resource, action, notification_type=nil, notifier=nil) click to toggle source

Called before action is executed on a resource.

    # File lib/chef/formatters/doc.rb, line 153
    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) click to toggle source

    # File lib/chef/formatters/doc.rb, line 193
    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) click to toggle source

Called when resource current state load is skipped due to the provider not supporting whyrun mode.

    # File lib/chef/formatters/doc.rb, line 229
    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) click to toggle source

Called after load_current_resource has run.

    # File lib/chef/formatters/doc.rb, line 184
    def resource_current_state_loaded(resource, action, current_resource)
    end

resource_failed(resource, action, exception) click to toggle source

Called when a resource fails and will not be retried.

Calls superclass method Chef::Formatters::Base#resource_failed

    # File lib/chef/formatters/doc.rb, line 173
    def resource_failed(resource, action, exception)
      super
    end

resource_failed_retriable(resource, action, retry_count, exception) click to toggle source

Called when a resource fails, but will retry.

    # File lib/chef/formatters/doc.rb, line 169
    def resource_failed_retriable(resource, action, retry_count, exception)
    end

resource_skipped(resource, action, conditional) click to toggle source

Called when a resource action has been skipped b/c of a conditional

    # File lib/chef/formatters/doc.rb, line 178
    def resource_skipped(resource, action, conditional)
      # TODO: more info about conditional
      puts " (skipped due to #{conditional.short_description})"
    end

resource_up_to_date(resource, action) click to toggle source

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

    # File lib/chef/formatters/doc.rb, line 188
    def resource_up_to_date(resource, action)
      @up_to_date_resources+= 1
      puts " (up to date)"
    end

resource_update_applied(resource, action, update) click to toggle source

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.

    # File lib/chef/formatters/doc.rb, line 204
    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) click to toggle source

Called after a resource has been completely converged.

    # File lib/chef/formatters/doc.rb, line 222
    def resource_updated(resource, action)
      @updated_resources += 1
      puts "\n"
    end

run_completed(node) click to toggle source

    # File lib/chef/formatters/doc.rb, line 36
    def run_completed(node)
      @end_time = Time.now
      if Chef::Config[:why_run]
        puts "Chef Client finished, #{@updated_resources}/#{total_resources} resources would have been updated"
      else
        puts "Chef Client finished, #{@updated_resources}/#{total_resources} resources updated in #{elapsed_time} seconds"
      end
    end

run_failed(exception) click to toggle source

    # File lib/chef/formatters/doc.rb, line 45
    def run_failed(exception)
      @end_time = Time.now
      if Chef::Config[:why_run]
        puts "Chef Client failed. #{@updated_resources} resources would have been updated"
      else
        puts "Chef Client failed. #{@updated_resources} resources updated in #{elapsed_time} seconds"
      end
    end

run_start(version) click to toggle source

    # File lib/chef/formatters/doc.rb, line 28
    def run_start(version)
      puts "Starting Chef Client, version #{version}"
    end

skipping_registration(node_name, config) click to toggle source

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

    # File lib/chef/formatters/doc.rb, line 59
    def skipping_registration(node_name, config)
    end

synchronized_cookbook(cookbook_name) click to toggle source

Called when cookbook `cookbook_name` has been sync’d

    # File lib/chef/formatters/doc.rb, line 118
    def synchronized_cookbook(cookbook_name)
      puts "  - #{cookbook_name}"
    end

total_resources() click to toggle source

    # File lib/chef/formatters/doc.rb, line 32
    def total_resources
      @up_to_date_resources + @updated_resources
    end

updated_cookbook_file(cookbook_name, path) click to toggle source

Called when an individual file in a cookbook has been updated

    # File lib/chef/formatters/doc.rb, line 123
    def updated_cookbook_file(cookbook_name, path)
    end

whyrun_assumption(action, resource, message) click to toggle source

Called when a provider makes an assumption after a failed assertion in whyrun mode, in order to allow execution to continue

    # File lib/chef/formatters/doc.rb, line 250
    def whyrun_assumption(action, resource, message)
      return unless message
      [ message ].flatten.each do |line|
        @output.color("\n    * #{line}", :yellow)
      end
    end