Sha256: 567dee2155bb47ac60769579216ec8027dcdb954943c300d965951ff0d16598c

Contents?: true

Size: 1.97 KB

Versions: 8

Compression:

Stored size: 1.97 KB

Contents

# frozen_string_literal: true

module Facter
  module Util
    module Aix
      module InfoExtractor
        MEGABYTES_EXPONENT = 1024**2
        GIGABYTES_EXPONENT = 1024**3
        PROPERTIES = {
          lslv: [
            'LOGICAL VOLUME:',
            'VOLUME GROUP:',
            'LV IDENTIFIER:',
            'PERMISSION:',
            'VG STATE:',
            'LV STATE:',
            'TYPE:',
            'WRITE VERIFY:',
            'MAX LPs:',
            'PP SIZE:',
            'COPIES:',
            'SCHED POLICY:',
            'LPs:',
            'PPs:',
            'STALE PPs:',
            'BB POLICY:',
            'INTER-POLICY:',
            'RELOCATABLE:',
            'INTRA-POLICY:',
            'UPPER BOUND:',
            'MOUNT POINT:',
            'LABEL:',
            'MIRROR WRITE CONSISTENCY:',
            'EACH LP COPY ON A SEPARATE PV ?:',
            'Serialize IO ?:'
          ],
          lspv: [
            'PHYSICAL VOLUME:',
            'VOLUME GROUP:',
            'PV IDENTIFIER:',
            'VG IDENTIFIER',
            'PV STATE:',
            'STALE PARTITIONS:',
            'ALLOCATABLE:',
            'PP SIZE:',
            'LOGICAL VOLUMES:',
            'TOTAL PPs:',
            'VG DESCRIPTORS:',
            'FREE PPs:',
            'HOT SPARE:',
            'USED PPs:',
            'MAX REQUEST:',
            'FREE DISTRIBUTION:',
            'USED DISTRIBUTION:',
            'MIRROR POOL:'
          ]
        }.freeze

        def self.extract(content, cmd)
          property_hash = {}
          properties = PROPERTIES[cmd]
          properties.each do |property|
            str = (properties - [property]).join('|')
            matcher = content.match(/(?:^|^[^:]+:[^:]+)#{Regexp.escape(property)}([^\n]*?)(#{str}|\n|$)/s)
            if matcher
              value = matcher[1].strip
              property_hash[property.split(':').first] = value
            end
          end
          property_hash
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
facter-4.10.0 lib/facter/util/aix/info_extractor.rb
facter-4.9.0 lib/facter/util/aix/info_extractor.rb
facter-4.8.0 lib/facter/util/aix/info_extractor.rb
facter-4.7.1 lib/facter/util/aix/info_extractor.rb
facter-4.7.0 lib/facter/util/aix/info_extractor.rb
facter-4.6.1 lib/facter/util/aix/info_extractor.rb
facter-4.6.0 lib/facter/util/aix/info_extractor.rb
facter-4.5.2 lib/facter/util/aix/info_extractor.rb