class Puppet::DataBinding::Jerakia

Attributes

jerakia[R]
policy[R]

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/puppet/indirector/data_binding/jerakia.rb, line 11
def initialize(*args)
  @jerakia = ::Jerakia.new
  @default_policy = 'default'
  super
end

Public Instance Methods

find(request) click to toggle source
# File lib/puppet/indirector/data_binding/jerakia.rb, line 17
def find(request)
  lookupdata = request.key.split(/::/)
  key = lookupdata.pop
  return {} if key == 'lookup_options'
  namespace = lookupdata
  metadata = request.options[:variables].to_hash.reject { |_k, v| v.is_a?(Puppet::Resource) }
  policy = metadata['jerakia_policy'] || @default_policy
  jacreq = Jerakia::Request.new(
    :key => key,
    :namespace => namespace,
    :policy => policy,
    :lookup_type => :first,
    :metadata => metadata
  )
  answer = jerakia.lookup(jacreq)
  answer.payload
end