Current File : //opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/uname.rb
# frozen_string_literal: true

module Facter
  module Resolvers
    class Uname < BaseResolver
      init_resolver

      class << self
        private

        def post_resolve(fact_name, _options)
          @fact_list.fetch(fact_name) { uname_system_call(fact_name) }
        end

        def uname_system_call(fact_name)
          output = Facter::Core::Execution.execute('uname -m &&
            uname -n &&
            uname -p &&
            uname -r &&
            uname -s &&
            uname -v', logger: log)

          build_fact_list(output)

          @fact_list[fact_name]
        end

        def build_fact_list(output)
          uname_results = output.split("\n")

          if !uname_results.empty?
            @fact_list[:machine],
            @fact_list[:nodename],
            @fact_list[:processor],
            @fact_list[:kernelrelease],
            @fact_list[:kernelname],
            @fact_list[:kernelversion] = uname_results.map(&:strip)
          else
            log.warn('Request to uname returned no output. Uname related facts are not populated.')
          end
        end
      end
    end
  end
end
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

Site will be available soon. Thank you for your patience!