class Puppet::Resource::Puppetdb

Public Instance Methods

build_expression(filter) click to toggle source
# File lib/puppet/indirector/resource/puppetdb.rb, line 68
def build_expression(filter)
  return nil unless filter

  lhs, op, rhs = filter

  case op
  when '==', '!='
    build_predicate(op, lhs, rhs)
  when 'and', 'or'
    build_join(op, lhs, rhs)
  else
    raise Puppet::Error, "Operator #{op} in #{filter.inspect} not supported"
  end
end
build_join(op, lhs, rhs) click to toggle source
# File lib/puppet/indirector/resource/puppetdb.rb, line 98
def build_join(op, lhs, rhs)
  lhs = build_expression(lhs)
  rhs = build_expression(rhs)

  [op, lhs, rhs]
end
build_predicate(op, field, value) click to toggle source
# File lib/puppet/indirector/resource/puppetdb.rb, line 83
def build_predicate(op, field, value)
  # Title and tag aren't parameters, so we have to special-case them.
  expr = case field
         when "tag"
           # Tag queries are case-insensitive, so downcase them
           ["=", "tag", value.downcase]
         when "title"
           ["=", "title", value]
         else
           ["=", ['parameter', field], value]
         end

  op == '!=' ? ['not', expr] : expr
end
headers() click to toggle source
# File lib/puppet/indirector/resource/puppetdb.rb, line 105
def headers
  {'Accept' => 'application/json'}
end