Sha256: 40e5f8e3587fc73e5d7658b0fa18b87c10995a046cd3b6e4f45d79b011233591

Contents?: true

Size: 1.12 KB

Versions: 20

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module Facter
  module Resolvers
    class SshResolver < BaseResolver
      @log = Facter::Log.new(self)
      @semaphore = Mutex.new
      @fact_list ||= {}
      @file_names = %w[ssh_host_rsa_key.pub ssh_host_dsa_key.pub ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub]
      @file_paths = %w[/etc/ssh /usr/local/etc/ssh /etc /usr/local/etc /etc/opt/ssh]
      class << self
        private

        def post_resolve(fact_name)
          @fact_list.fetch(fact_name) { retrieve_info(fact_name) }
        end

        def retrieve_info(fact_name)
          ssh_list = []
          @file_paths.each do |file_path|
            next unless File.directory?(file_path)

            @file_names.each do |file_name|
              file_content = Util::FileHelper.safe_read(File.join(file_path, file_name), nil)
              next unless file_content

              key_type, key = file_content.split(' ')
              ssh_list << ::Resolvers::Utils::SshHelper.create_ssh(key_type, key)
            end
          end
          @fact_list[:ssh] = ssh_list
          @fact_list[fact_name]
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
facter-4.0.36 lib/facter/resolvers/ssh_resolver.rb
facter-4.0.35 lib/facter/resolvers/ssh_resolver.rb
facter-4.0.34 lib/facter/resolvers/ssh_resolver.rb
facter-4.0.33 lib/facter/resolvers/ssh_resolver.rb
facter-4.0.32 lib/facter/resolvers/ssh_resolver.rb
facter-4.0.31 lib/facter/resolvers/ssh_resolver.rb
facter-4.0.30 lib/facter/resolvers/ssh_resolver.rb
facter-4.0.29 lib/resolvers/ssh_resolver.rb
facter-4.0.28 lib/resolvers/ssh_resolver.rb
facter-4.0.26 lib/resolvers/ssh_resolver.rb
facter-4.0.25 lib/resolvers/ssh_resolver.rb
facter-4.0.24 lib/resolvers/ssh_resolver.rb
facter-4.0.23 lib/resolvers/ssh_resolver.rb
facter-4.0.22 lib/resolvers/ssh_resolver.rb
facter-4.0.21 lib/resolvers/ssh_resolver.rb
facter-4.0.20 lib/resolvers/ssh_resolver.rb
facter-4.0.19 lib/resolvers/ssh_resolver.rb
facter-4.0.18 lib/resolvers/ssh_resolver.rb
facter-4.0.17 lib/resolvers/ssh_resolver.rb
facter-4.0.16 lib/resolvers/ssh_resolver.rb