Class: Puppet::Node::Facts::Facter
- Inherits:
-
Indirector::Code
- Object
- Indirector::Terminus
- Indirector::Code
- Puppet::Node::Facts::Facter
- Defined in:
- lib/puppet/indirector/facts/facter.rb
Constant Summary
Constants included from Util
Util::AbsolutePathPosix, Util::AbsolutePathWindows, Util::DEFAULT_POSIX_MODE, Util::DEFAULT_WINDOWS_MODE
Constants included from Util::POSIX
Util::POSIX::LOCALE_ENV_VARS, Util::POSIX::USER_ENV_VARS
Constants included from Util::SymbolicFileMode
Util::SymbolicFileMode::SetGIDBit, Util::SymbolicFileMode::SetUIDBit, Util::SymbolicFileMode::StickyBit, Util::SymbolicFileMode::SymbolicMode, Util::SymbolicFileMode::SymbolicSpecialToBit
Constants included from Util::Docs
Instance Attribute Summary
Attributes included from Util::Docs
Instance Method Summary collapse
- #allow_remote_requests? ⇒ Boolean
- #destroy(facts) ⇒ Object
-
#find(request) ⇒ Object
Lookup a host’s facts up in Facter.
- #save(facts) ⇒ Object
Methods inherited from Indirector::Terminus
abstract_terminus?, const2name, #indirection, indirection_name, inherited, #initialize, mark_as_abstract_terminus, #model, model, #name, name2const, register_terminus_class, terminus_class, terminus_classes, #terminus_type, #validate, #validate_key, #validate_model
Methods included from Util::InstanceLoader
#instance_docs, #instance_hash, #instance_load, #instance_loader, #instance_loading?, #loaded_instance, #loaded_instances
Methods included from Util
absolute_path?, benchmark, chuser, deterministic_rand, deterministic_rand_int, exit_on_fail, logmethods, path_to_uri, pretty_backtrace, replace_file, safe_posix_fork, symbolizehash, thinmark, uri_to_path, which, withenv, withumask
Methods included from Util::POSIX
#get_posix_field, #gid, #idfield, #methodbyid, #methodbyname, #search_posix_field, #uid
Methods included from Util::SymbolicFileMode
#normalize_symbolic_mode, #symbolic_mode_to_int, #valid_symbolic_mode?
Methods included from Util::Docs
#desc, #dochook, #doctable, #markdown_definitionlist, #markdown_header, #nodoc?, #pad, scrub
Constructor Details
This class inherits a constructor from Puppet::Indirector::Terminus
Instance Method Details
#allow_remote_requests? ⇒ Boolean
9 10 11 |
# File 'lib/puppet/indirector/facts/facter.rb', line 9 def allow_remote_requests? false end |
#destroy(facts) ⇒ Object
13 14 15 |
# File 'lib/puppet/indirector/facts/facter.rb', line 13 def destroy(facts) raise Puppet::DevError, 'You cannot destroy facts in the code store; it is only used for getting facts from Facter' end |
#find(request) ⇒ Object
Lookup a host’s facts up in Facter.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/puppet/indirector/facts/facter.rb', line 22 def find(request) Facter.reset # Note: we need to setup puppet's external search paths before adding the puppetversion # fact. This is because in Facter 2.x, the first `Facter.add` causes Facter to create # its directory loaders which cannot be changed, meaning other external facts won't # be resolved. (PUP-4607) self.class.setup_external_search_paths(request) if Puppet.features.external_facts? self.class.setup_search_paths(request) # Add the puppetversion fact; this is done before generating the hash so it is # accessible to custom facts. Facter.add(:puppetversion) do setcode { Puppet.version.to_s } end Facter.add(:agent_specified_environment) do setcode do if Puppet.settings.set_by_config?(:environment) Puppet[:environment] end end end result = Puppet::Node::Facts.new(request.key, Facter.to_hash) result.add_local_facts result.sanitize result end |