class Facter::Resolvers::Solaris::Ldom

Constants

VIRTINFO_MAPPING

Private Class Methods

call_virtinfo(fact_name) click to toggle source
# File lib/facter/resolvers/solaris/ldom.rb, line 38
def call_virtinfo(fact_name)
  virtinfo_output = Facter::Core::Execution.execute('/usr/sbin/virtinfo  -a  -p', logger: log)
  return if virtinfo_output.empty?

  output_hash = parse_output(virtinfo_output)
  return if output_hash.empty?

  VIRTINFO_MAPPING.each do |key, value|
    @fact_list[key] = output_hash.dig(*value)&.strip
  end

  @fact_list[fact_name]
end
parse_output(output) click to toggle source
# File lib/facter/resolvers/solaris/ldom.rb, line 52
def parse_output(output)
  result = {}
  output.each_line do |line|
    next unless line.include? 'DOMAIN'

    x = line.split('|')
    result[x.shift] = x.map { |f| f.split('=') }.to_h
  end

  result
end
post_resolve(fact_name, _options) click to toggle source
# File lib/facter/resolvers/solaris/ldom.rb, line 34
def post_resolve(fact_name, _options)
  @fact_list.fetch(fact_name) { call_virtinfo(fact_name) }
end