Sha256: 3d92d5c8fcf66707558b3d2d401c95babdfe32d36778a096fc2c7ef489231f8d

Contents?: true

Size: 1.57 KB

Versions: 20

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true

module Facts
  module Solaris
    module SolarisZones
      class Zone
        FACT_NAME = 'solaris_zones.zones'
        ALIASES = %w[
          zone_.*_brand
          zone_.*_iptype
          zone_.*_name
          zone_.*_uuid
          zone_.*_id
          zone_.*_path
          zone_.*_status
          zones
        ].freeze

        def call_the_resolver
          resolved_facts = []
          zones = {}

          results = Facter::Resolvers::SolarisZone.resolve(:zone)
          return Facter::ResolvedFact.new(FACT_NAME, nil) unless results

          results&.each do |result|
            zones.merge!(parse_result(result))
            resolved_facts << create_legacy_zone_facts(result)
          end

          resolved_facts << Facter::ResolvedFact.new('solaris_zones.zones', zones)
          resolved_facts << Facter::ResolvedFact.new('zones', results.count, :legacy)

          resolved_facts.flatten
        end

        private

        def parse_result(result)
          {
            result[:name].to_sym => {
              brand: result[:brand],
              id: result[:id],
              ip_type: result[:iptype],
              path: result[:path],
              status: result[:status]
            }
          }
        end

        def create_legacy_zone_facts(zone)
          legacy_facts = []
          %w[brand iptype name uuid id path status].each do |key|
            legacy_facts << Facter::ResolvedFact.new("zone_#{zone[:name]}_#{key}", zone[key.to_sym], :legacy)
          end

          legacy_facts
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
facter-4.0.34 lib/facter/facts/solaris/solaris_zones/zone.rb
facter-4.0.33 lib/facter/facts/solaris/solaris_zones/zone.rb
facter-4.0.32 lib/facter/facts/solaris/solaris_zones/zone.rb
facter-4.0.31 lib/facter/facts/solaris/solaris_zones/zone.rb
facter-4.0.30 lib/facter/facts/solaris/solaris_zones/zone.rb
facter-4.0.29 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.28 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.26 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.25 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.24 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.23 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.22 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.21 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.20 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.19 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.18 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.17 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.16 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.15 lib/facts/solaris/solaris_zones/zone.rb
facter-4.0.14 lib/facts/solaris/solaris_zones/zone.rb