lib/facter/resolvers/aix/partitions.rb in facter-4.0.30 vs lib/facter/resolvers/aix/partitions.rb in facter-4.0.31

- old
+ new

@@ -7,13 +7,10 @@ @semaphore = Mutex.new @fact_list ||= {} class << self private - MEGABYTES_EXPONENT = 1024**2 - GIGABYTES_EXPONENT = 1024**3 - def post_resolve(fact_name) @fact_list.fetch(fact_name) { query_cudv(fact_name) } end def query_cudv(fact_name) @@ -41,40 +38,32 @@ def populate_from_lslv(name) stdout = Facter::Core::Execution.execute("lslv -L #{name}", logger: log) return if stdout.empty? - info_hash = extract_info(stdout) + info_hash = InfoExtractor.extract(stdout, /PPs:|PP SIZE|TYPE:|LABEL:|MOUNT/) size_bytes = compute_size(info_hash) part_info = { filesystem: info_hash['TYPE'], size_bytes: size_bytes, size: Facter::FactsUtils::UnitConverter.bytes_to_human_readable(size_bytes) } - mount = info_hash['MOUNTPOINT'] + mount = info_hash['MOUNT POINT'] label = info_hash['LABEL'] part_info[:mount] = mount unless %r{N/A} =~ mount - part_info[:label] = label unless /None/ =~ label + part_info[:label] = label.strip unless /None/ =~ label part_info end - def extract_info(lsl_content) - lsl_content = lsl_content.strip.split("\n").map do |line| - next unless /PPs:|PP SIZE|TYPE:|LABEL:|MOUNT/ =~ line - - line.split(/:|\s\s/).reject(&:empty?) - end - - lsl_content.flatten!.select! { |elem| elem }.map! { |elem| elem.delete("\s") } - - Hash[*lsl_content] - end - def compute_size(info_hash) physical_partitions = info_hash['PPs'].to_i - size_physical_partition = info_hash['PPSIZE'] - exp = size_physical_partition[/mega/] ? MEGABYTES_EXPONENT : GIGABYTES_EXPONENT + size_physical_partition = info_hash['PP SIZE'] + exp = if size_physical_partition[/mega/] + InfoExtractor::MEGABYTES_EXPONENT + else + InfoExtractor::GIGABYTES_EXPONENT + end size_physical_partition.to_i * physical_partitions * exp end end end end