class Hieracles::Puppetdb::Request

Public Class Methods

new(options) click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 5
def initialize(options)
  @client = Hieracles::Puppetdb::Client.new options
end

Public Instance Methods

events() click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 59
def events
  @client.request("events")
end
factnames() click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 49
def factnames()
  @client.request("fact-names")
end
facts(label, value) click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 34
def facts(label, value)
  resp = @client.request("facts/#{label}/#{value}")
  extract_names resp
end
node_fact(fqdn, regex = //)
Alias for: node_facts
node_facts(fqdn, regex = //) click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 14
def node_facts(fqdn, regex = //)
  resp = @client.request("nodes/#{fqdn}/facts")
  filter = Filter.new regex
  resp.data = resp.data.reduce({}) do |a, d|
    if filter.match(d['name'])
      a[d['name'].to_sym] = d['value']
    end
    a
  end
  resp
end
Also aliased as: node_fact
node_info(fqdn) click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 9
def node_info(fqdn)
  @client.request("nodes/#{fqdn}")
end
Also aliased as: node_infos
node_infos(fqdn)
Alias for: node_info
node_res(fqdn, *args)
Alias for: node_resources
node_resources(fqdn, *args) click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 27
def node_resources(fqdn, *args)
  resp = @client.request("nodes/#{fqdn}/resources")
  field = args.shift
  make_hashed resp
end
Also aliased as: node_res
res(*args)
Alias for: resources
resources(*args) click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 53
def resources(*args)
  query = Query.new args
  make_hashed @client.request("resources", query.elements)
end
Also aliased as: res
same(name, fqdn) click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 39
def same(name, fqdn)
  r = @client.request("nodes/#{fqdn}/facts/#{name}")
  if r.data.length > 0
    value = r.data[0]['value']
    facts name, value
  else
    r
  end
end

Private Instance Methods

extract_names(resp, label = 'certname') click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 65
def extract_names(resp, label = 'certname')
  resp.data = resp.data.reduce([]) do |a, d|
    a << d[label]
    a
  end.sort
  resp
end
make_hashed(resp, label = 'title', filter = nil) click to toggle source
# File lib/hieracles/puppetdb/request.rb, line 73
def make_hashed(resp, label = 'title', filter = nil)
  resp.data = resp.data.reduce({}) do |a, d|
    if !filter || Regexp.new(filter).match(d[label])
      a[d[label]] = d
    end
    a
  end
  resp
end