module PuppetRepl::Support::Facts
Public Instance Methods
default_facter_version()
click to toggle source
return the correct supported version of facter facts
# File lib/puppet-repl/support/facts.rb, line 21 def default_facter_version if Gem::Version.new(Puppet.version) >= Gem::Version.new(4.4) '/^3\.1/' else '/^2\.4/' end end
default_facterdb_filter()
click to toggle source
# File lib/puppet-repl/support/facts.rb, line 12 def default_facterdb_filter "operatingsystem=#{facter_os_name} and operatingsystemrelease=#{facter_os_version} and architecture=x86_64 and facterversion=#{facter_version}" end
default_facts()
click to toggle source
# File lib/puppet-repl/support/facts.rb, line 59 def default_facts unless @facts values = Hash[ node_facts.map { |k, v| [k.to_s, v] } ] name = values['fqdn'] @facts ||= Puppet::Node::Facts.new(name, values) end @facts end
dynamic_facterdb_filter()
click to toggle source
allow the user to specify the facterdb filter
# File lib/puppet-repl/support/facts.rb, line 8 def dynamic_facterdb_filter ENV['REPL_FACTERDB_FILTER'] || default_facterdb_filter end
facter_os_name()
click to toggle source
# File lib/puppet-repl/support/facts.rb, line 29 def facter_os_name ENV['REPL_FACTER_OS_NAME'] || 'Fedora' end
facter_os_version()
click to toggle source
# File lib/puppet-repl/support/facts.rb, line 33 def facter_os_version ENV['REPL_FACTER_OS_VERSION'] || '23' end
facter_version()
click to toggle source
# File lib/puppet-repl/support/facts.rb, line 16 def facter_version ENV['REPL_FACTER_VERSION'] || default_facter_version end
node_facts()
click to toggle source
uses facterdb (cached facts) and retrives the facts given a filter creates a new facts object we could also use fact_merge to get real facts from the real system or puppetdb
# File lib/puppet-repl/support/facts.rb, line 44 def node_facts node_facts = FacterDB.get_facts(dynamic_facterdb_filter).first if node_facts.nil? message = <<-EOS Using filter: #{facterdb_filter} Bad FacterDB filter, please change the filter so it returns a result set. See https://github.com/camptocamp/facterdb/#with-a-string-filter EOS raise PuppetRepl::Exception::BadFilter.new(:message => message) end # fix for when --show-legacy facts are not part of the facter 3 fact set node_facts[:fqdn] = node_facts[:networking].fetch('fqdn',nil) unless node_facts[:fqdn] node_facts end
server_facts()
click to toggle source
# File lib/puppet-repl/support/facts.rb, line 68 def server_facts data = {} data["servername"] = Facter.value("fqdn") || Facter.value('networking')['fqdn'] data['serverip'] = Facter.value("ipaddress") data["serverversion"] = Puppet.version.to_s data end
set_facts(value)
click to toggle source
# File lib/puppet-repl/support/facts.rb, line 37 def set_facts(value) @facts = value end