Sha256: 96ceca0adcbce6a9eaf9993c10cca506cf0a10cc8222af0449926fbf71408852

Contents?: true

Size: 905 Bytes

Versions: 9

Compression:

Stored size: 905 Bytes

Contents

# frozen_string_literal: true

# CuAt (Customized Attributes) non-default attribute values
# CuDv (Customized Devices) the devices present on this machine
# PdAt (Predefined Attributes) default values for all device attributes
# PdDv (Predefined Devices) the list of all devices supported by this release of AIX

module Facter
  class ODMQuery
    REPOS = %w[CuAt CuDv PdAt PdDv].freeze

    def initialize
      @query = ''
      @conditions = []
    end

    def equals(field, value)
      @conditions << "#{field}='#{value}'"
      self
    end

    def like(field, value)
      @conditions << "#{field} like '#{value}'"
      self
    end

    def execute
      result = nil
      REPOS.each do |repo|
        break if result

        result, _s = Open3.capture2("#{query} #{repo}")
      end
      result
    end

    def query
      'odmget -q "' + @conditions.join(' AND ') + '"'
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
facter-4.0.15 lib/resolvers/aix/utils/odm_query.rb
facter-4.0.14 lib/resolvers/aix/utils/odm_query.rb
facter-4.0.13 lib/resolvers/aix/utils/odm_query.rb
facter-4.0.12 lib/resolvers/aix/utils/odm_query.rb
facter-4.0.11 lib/resolvers/aix/utils/odm_query.rb
facter-4.0.10.pre lib/resolvers/aix/utils/odm_query.rb
facter-4.0.9.pre lib/resolvers/aix/utils/odm_query.rb
facter-4.0.8.pre lib/resolvers/aix/utils/odm_query.rb
facter-4.0.7.pre lib/resolvers/aix/utils/odm_query.rb