class Helpers::PuppetDB

Public Class Methods

new(host, port) click to toggle source
# File lib/helpers/puppetdb.rb, line 8
def initialize(host, port)
  @puppetdb_host = host
  @puppetdb_port = port
end

Public Instance Methods

get_facts(node=nil) click to toggle source
# File lib/helpers/puppetdb.rb, line 29
def get_facts(node=nil)
  if node
    fact_endpoint = "http://#{@puppetdb_host}:#{@puppetdb_port}/v3/nodes/#{node}/facts"
  else
    fact_endpoint = "http://#{@puppetdb_host}:#{@puppetdb_port}/v3/facts"
  end
  
  uri = URI.parse(fact_endpoint)
  request = Net::HTTP::Get.new(uri.path)
  request.add_field('Accept', 'application/json')
  http_client = Net::HTTP.new(uri.host, uri.port)
  begin
    response = http_client.request(request)
    response['Content-Type'] = 'application/json'
    if response.code == '200'
      facts = JSON.parse(response.body)
    else
      facts = []
    end

    return facts
  rescue Timeout::Error

  end
end
get_nodes() click to toggle source
# File lib/helpers/puppetdb.rb, line 13
def get_nodes
  uri = URI.parse( "http://#{@puppetdb_host}:#{@puppetdb_port}/v3/nodes" )
  request = Net::HTTP::Get.new(uri.path)
  request.add_field('Accept', 'application/json')
  http_client = Net::HTTP.new(uri.host, uri.port)
  response = http_client.request(request)
  response['Content-Type'] = 'application/yaml'
  if response.code == '200'
    nodes = JSON.parse(response.body)
  else
    nodes = []
  end

  return nodes
end