class Facter::Resolvers::BaseResolver
Public Class Methods
cache_nil_for_unresolved_facts(fact_name)
click to toggle source
# File lib/facter/resolvers/base_resolver.rb, line 38 def self.cache_nil_for_unresolved_facts(fact_name) @fact_list.fetch(fact_name) { @fact_list[fact_name] = nil } @fact_list[fact_name] end
init_resolver()
click to toggle source
# File lib/facter/resolvers/base_resolver.rb, line 14 def self.init_resolver @fact_list = {} @semaphore = Mutex.new end
invalidate_cache()
click to toggle source
# File lib/facter/resolvers/base_resolver.rb, line 10 def self.invalidate_cache @fact_list = {} end
log()
click to toggle source
# File lib/facter/resolvers/base_resolver.rb, line 6 def self.log @log ||= Log.new(self) end
post_resolve(_fact_name, _options)
click to toggle source
# File lib/facter/resolvers/base_resolver.rb, line 43 def self.post_resolve(_fact_name, _options) raise NotImplementedError, "You must implement post_resolve(fact_name, options) method in #{name}" end
resolve(fact_name, options = {})
click to toggle source
# File lib/facter/resolvers/base_resolver.rb, line 23 def self.resolve(fact_name, options = {}) @semaphore.synchronize do subscribe_to_manager post_resolve(fact_name, options) cache_nil_for_unresolved_facts(fact_name) end rescue NoMethodError => e log.debug("Could not resolve #{fact_name}, got #{e}") @fact_list[fact_name] = nil rescue LoadError, NameError => e log.debug("resolving fact #{fact_name}, but #{e}") @fact_list[fact_name] = nil end
subscribe_to_manager()
click to toggle source
# File lib/facter/resolvers/base_resolver.rb, line 19 def self.subscribe_to_manager Facter::SessionCache.subscribe(self) end