Sha256: 3b56d43f86ec6771618e2413dcd82c3a3d352acd7241930b25cbf0fe03d78b76
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
# frozen_string_literal: true module Facter module Resolvers class Hostname < BaseResolver init_resolver class << self private def post_resolve(fact_name) @fact_list.fetch(fact_name) { retrieve_hostname(fact_name) } end def retrieve_hostname(fact_name) output = Facter::Core::Execution.execute('hostname', logger: log) # get domain domain = read_domain(output) # get hostname hostname = output =~ /(.*?)\./ ? Regexp.last_match(1) : output @fact_list[:hostname] ||= hostname&.strip @fact_list[:domain] ||= domain&.strip @fact_list[:fqdn] ||= "#{@fact_list[:hostname]}.#{@fact_list[:domain]}" @fact_list[fact_name] end def read_domain(output) if output =~ /.*?\.(.+$)/ domain = Regexp.last_match(1) else file_content = Util::FileHelper.safe_read('/etc/resolv.conf') if file_content =~ /^search\s+(\S+)/ domain = Regexp.last_match(1) elsif file_content =~ /^domain\s+(\S+)/ domain = Regexp.last_match(1) end end domain end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
facter-4.0.46 | lib/facter/resolvers/hostname_resolver.rb |