class Facts::Solaris::Ldom

Constants

ALIASES
FACT_NAME

Public Class Methods

new() click to toggle source
# File lib/facter/facts/solaris/ldom.rb, line 19
def initialize
  @log = Facter::Log.new(self)
end

Public Instance Methods

call_the_resolver() click to toggle source
# File lib/facter/facts/solaris/ldom.rb, line 23
def call_the_resolver
  @log.debug('Solving the ldom fact.')
  fact_value = resolve_fact
  return Facter::ResolvedFact.new(FACT_NAME, nil) if fact_value.nil?

  create_resolved_facts_list(fact_value)
end
create_resolved_facts_list(fact_value) click to toggle source
# File lib/facter/facts/solaris/ldom.rb, line 54
def create_resolved_facts_list(fact_value)
  resolved_facts = [Facter::ResolvedFact.new(FACT_NAME, fact_value)]
  ALIASES.each do |fact_alias|
    key = fact_alias.split('_')[1..].map!(&:to_sym)
    resolved_facts << Facter::ResolvedFact.new(fact_alias, fact_value.dig(*key), :legacy)
  end

  resolved_facts
end
resolve(key) click to toggle source
# File lib/facter/facts/solaris/ldom.rb, line 50
def resolve(key)
  Facter::Resolvers::Solaris::Ldom.resolve(key)
end
resolve_fact() click to toggle source
# File lib/facter/facts/solaris/ldom.rb, line 31
def resolve_fact
  chassis_serial = resolve(:chassis_serial)
  return nil if !chassis_serial || chassis_serial.empty?

  {
    domainchassis: chassis_serial,
    domaincontrol: resolve(:control_domain),
    domainname: resolve(:domain_name),
    domainrole: {
      control: resolve(:role_control),
      impl: resolve(:role_impl),
      io: resolve(:role_io),
      root: resolve(:role_root),
      service: resolve(:role_service)
    },
    domainuuid: resolve(:domain_uuid)
  }
end