Module Facter
In: lib/facter/version.rb
lib/facter/operatingsystem/implementation.rb
lib/facter/operatingsystem/sunos.rb
lib/facter/operatingsystem/vmkernel.rb
lib/facter/operatingsystem/linux.rb
lib/facter/operatingsystem/base.rb
lib/facter/operatingsystem/cumuluslinux.rb
lib/facter/operatingsystem/windows.rb
lib/facter/operatingsystem/osreleaselinux.rb
lib/facter/gce/metadata.rb
lib/facter/core/execution.rb
lib/facter/core/directed_graph.rb
lib/facter/application.rb
lib/facter/processors/os.rb
lib/facter/ec2/rest.rb
lib/facter/util/formatter.rb
lib/facter/util/processor.rb
lib/facter/util/solaris_zones.rb
lib/facter/util/posix.rb
lib/facter/util/values.rb
lib/facter/util/normalization.rb
lib/facter/util/operatingsystem.rb
lib/facter/util/nothing_loader.rb
lib/facter/util/file_read.rb
lib/facter.rb

Functions as a hash of ‘facts’ about your system system, such as MAC address, IP address, architecture, etc.

@example Retrieve a fact

    puts Facter['operatingsystem'].value

@example Retrieve all facts

  Facter.to_hash
   => { "kernel"=>"Linux", "uptime_days"=>0, "ipaddress"=>"10.0.0.1" }

@api public

Methods

Included Modules

Comparable Enumerable

Classes and Modules

Module Facter::Application
Module Facter::Core
Module Facter::EC2
Module Facter::GCE
Module Facter::Manufacturer
Module Facter::Memory
Module Facter::NetMask
Module Facter::Operatingsystem
Module Facter::Processors
Module Facter::Util

Constants

FACTERVERSION = '2.5.1'

Public Class methods

Returns a fact object by name. If you use this, you still have to call {Facter::Util::Fact#value `value`} on it to retrieve the actual value.

@param name [String] the name of the fact

@return [Facter::Util::Fact, nil] The fact object, or nil if no fact

  is found.

@api public

Adds a {Facter::Util::Resolution resolution} mechanism for a named fact. This does not distinguish between adding a new fact and adding a new way to resolve a fact.

@overload add(name, options = {}, { || … }) @param name [String] the fact name @param options [Hash] optional parameters for the fact - attributes

  of {Facter::Util::Fact} and {Facter::Util::Resolution} can be
  supplied here

@option options [Integer] :timeout set the

  {Facter::Util::Resolution#timeout timeout} for this resolution

@param block [Proc] a block defining a fact resolution

@return [Facter::Util::Fact] the fact object, which includes any previously

  defined resolutions

@api public

Clears all cached values and removes all facts from memory.

@return [void]

@api public

Accessor for the collection object which holds all the facts @return [Facter::Util::Collection] the collection of facts

@api private

Define a new fact or extend an existing fact.

@param name [Symbol] The name of the fact to define @param options [Hash] A hash of options to set on the fact

@return [Facter::Util::Fact] The fact that was defined

@api public @see {Facter::Util::Collection#define_fact}

Iterates over fact names and values

@yieldparam [String] name the fact name @yieldparam [String] value the current value of the fact

@return [void]

@api public

(see [])

Flushes cached values for all facts. This does not cause code to be reloaded; it only clears the cached results.

@return [void]

@api public

Returns whether the JSON "feature" is available.

@api private

Lists all fact names

@return [Array<String>] array of fact names

@api public

Loads all facts.

@return [void]

@api public

Removes all facts from memory. Use this when the fact code has changed on disk and needs to be reloaded.

@return [void]

@api public

Reset the Facter search directories.

@api private @return [void]

Register directories to be searched for facts. The registered directories must be absolute paths or they will be ignored.

@param dirs [String] directories to search

@return [void]

@api public

Registers directories to be searched for external facts.

@param dirs [Array<String>] directories to search

@return [void]

@api public

Returns the registered search directories.

@return [Array<String>] An array of the directories searched

@api public

Returns the registered search directories.

@return [Array<String>] An array of the directories searched

@api public

Gets a hash mapping fact names to their values

@return [Hash{String => Object}] the hash of fact names and values

@api public

Gets the value for a fact. Returns `nil` if no such fact exists.

@param name [String] the fact name @return [Object, nil] the value of the fact, or nil if no fact is

  found

@api public

Returns the running version of Facter.

@comment The intent is that software external to Facter be able to

  determine the Facter version with no side-effects.  The expected
  use is:

    require 'facter/version'
    version = Facter.version

  This function has the following ordering precedence.  This precedence list
  is designed to facilitate automated packaging tasks by simply writing to
  the VERSION file in the same directory as this source file.

   1. If a version has been explicitly assigned using the Facter.version=
      method, return that version.
   2. If there is a VERSION file, read the contents, trim any
      trailing whitespace, and return that version string.
   3. Return the value of the Facter::FACTERVERSION constant hard-coded into
      the source code.

  If there is no VERSION file, the method must return the version string of
  the nearest parent version that is an officially released version.  That is
  to say, if a branch named 3.1.x contains 25 patches on top of the most
  recent official release of 3.1.1, then the version method must return the
  string "3.1.1" if no "VERSION" file is present.

  By design the version identifier is _not_ intended to vary during the life of
  a process.  There is no guarantee provided that writing to the VERSION file
  while a Puppet process is running will cause the version string to be
  updated.  On the contrary, the contents of the VERSION are cached to reduce
  filesystem accesses.

  The VERSION file is intended to be used by package maintainers who may be
  applying patches or otherwise changing the software version in a manner
  that warrants a different software version identifier.  The VERSION file is
  intended to be managed and owned by the release process and packaging
  related tasks, and as such should not reside in version control.  The
  FACTERVERSION constant is intended to be version controlled in history.

  Ideally, this behavior will allow package maintainers to precisely specify
  the version of the software they're packaging as in the following example:

      $ git describe > lib/facter/VERSION
      $ ruby -r facter -e 'puts Facter.version'
      1.6.14-6-g66f2c99

@api public

@return [String] containing the facter version, e.g. "1.6.14"

Sets the Facter version

@return [void]

@api private

[Validate]