# module Puppet::Configurer::FactHandler

Break out the code related to facts. This module is just included into the agent, but having it here makes it easier to test.

### Public Instance Methods

facts_for_uploading() click to toggle source

    # File lib/puppet/configurer/fact_handler.rb, line 30
    def facts_for_uploading
      facts = find_facts
      #format = facts.class.default_format

      if facts.support_format?(:b64_zlib_yaml)
        format = :b64_zlib_yaml
      else
        format = :yaml
      end

      text = facts.render(format)

      {:facts_format => format, :facts => CGI.escape(text)}
    end

find_facts() click to toggle source

    # File lib/puppet/configurer/fact_handler.rb, line 10
    def find_facts
      # This works because puppet agent configures Facts to use 'facter' for
      # finding facts and the 'rest' terminus for caching them.  Thus, we'll
      # compile them and then "cache" them on the server.
      begin
        facts = Puppet::Node::Facts.indirection.find(Puppet[:node_name_value], :environment => @environment)
        unless Puppet[:node_name_fact].empty?
          Puppet[:node_name_value] = facts.values[Puppet[:node_name_fact]]
          facts.name = Puppet[:node_name_value]
        end
        facts
      rescue SystemExit,NoMemoryError
        raise
      rescue Exception => detail
        message = "Could not retrieve local facts: #{detail}"
        Puppet.log_exception(detail, message)
        raise Puppet::Error, message
      end
    end