class Loom::Facts::Provider

Attributes

fact_map[R]

TODO: add documentation re: use of namespace in fact_set.rb

namespace[R]

TODO: add documentation re: use of namespace in fact_set.rb

Public Class Methods

create_fact_providers(host_spec, shell, loom_config) click to toggle source
# File lib/loom/facts/provider.rb, line 31
def create_fact_providers(host_spec, shell, loom_config)
  @provider_factories.map do |block|
    block.call(host_spec, shell, loom_config)
  end.flatten
end
disable_for_host(host_spec, klass) click to toggle source
# File lib/loom/facts/provider.rb, line 12
def disable_for_host(host_spec, klass)
  Loom.log.warn "disabling fact provider => #{klass} on #{host_spec.hostname}"
  @disabled_providers ||= {}
  @disabled_providers[host_spec.hostname] ||= []
  @disabled_providers[host_spec.hostname] << klass
end
disabled_for_host?(host_spec, klass) click to toggle source
# File lib/loom/facts/provider.rb, line 19
def disabled_for_host?(host_spec, klass)
  @disabled_providers ||= {}
  @disabled_providers[host_spec.hostname] ||= []
  @disabled_providers[host_spec.hostname].include? klass
end
register_factory(klass, &block) click to toggle source
# File lib/loom/facts/provider.rb, line 25
def register_factory(klass, &block)
  @provider_factories ||= []
  @provider_factories << block
  Loom.log.debug1(self) { "registered fact provider => #{klass}" }
end

Public Instance Methods

collect_facts() click to toggle source

Should return a Hash of fact_name => fact_value entries

# File lib/loom/facts/provider.rb, line 43
def collect_facts
  raise 'not implemented'
end
disable(host_spec) click to toggle source
# File lib/loom/facts/provider.rb, line 38
def disable(host_spec)
  Provider.disable_for_host host_spec, self.class
end