Sha256: 4254909279b1c3c900f42460227a34d316e283cac4f1105a44ccc26e258a6b82

Contents?: true

Size: 1.21 KB

Versions: 13

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module Facter
  module Resolvers
    class SolarisZone < BaseResolver
      @semaphore = Mutex.new
      @fact_list ||= {}
      class << self
        private

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

        def build_zone_fact(fact_name)
          command = '/usr/sbin/zoneadm list -cp'
          zone_adm_output = Facter::Core::Execution.execute(command, logger: log)

          if zone_adm_output.empty?
            log.debug("Command #{command} returned an empty result")
            return
          end
          @fact_list[:zone] = create_zone_facts(zone_adm_output)

          @fact_list[fact_name]
        end

        def create_zone_facts(zones_result)
          zones_fact = []
          zones_result.each_line do |zone_line|
            id, name, status, path, uuid, brand, ip_type = zone_line.split(':')
            zones_fact << {
              brand: brand,
              id: id,
              iptype: ip_type.chomp,
              name: name,
              uuid: uuid,
              status: status,
              path: path

            }
          end
          zones_fact
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
facter-4.0.34 lib/facter/resolvers/solaris/zone_resolver.rb
facter-4.0.33 lib/facter/resolvers/solaris/zone_resolver.rb
facter-4.0.32 lib/facter/resolvers/solaris/zone_resolver.rb
facter-4.0.31 lib/facter/resolvers/solaris/zone_resolver.rb
facter-4.0.30 lib/facter/resolvers/solaris/zone_resolver.rb
facter-4.0.29 lib/resolvers/solaris/zone_resolver.rb
facter-4.0.28 lib/resolvers/solaris/zone_resolver.rb
facter-4.0.26 lib/resolvers/solaris/zone_resolver.rb
facter-4.0.25 lib/resolvers/solaris/zone_resolver.rb
facter-4.0.24 lib/resolvers/solaris/zone_resolver.rb
facter-4.0.23 lib/resolvers/solaris/zone_resolver.rb
facter-4.0.22 lib/resolvers/solaris/zone_resolver.rb
facter-4.0.21 lib/resolvers/solaris/zone_resolver.rb