class PuppetPSSH::PuppetDB

Public Class Methods

new(host = 'puppet', port = '8080', use_ssl = false) click to toggle source
# File lib/puppet-pssh.rb, line 16
def initialize(host = 'puppet', port = '8080', use_ssl = false)
  @host = host
  @port = port
  @use_ssl = use_ssl
end

Public Instance Methods

active_nodes() click to toggle source
# File lib/puppet-pssh.rb, line 50
def active_nodes
  query = URI.encode '["=", ["node", "active"], true]'
  get_nodes_from_query query
end
deactivated_nodes() click to toggle source
# File lib/puppet-pssh.rb, line 45
def deactivated_nodes
  query = URI.encode '["=", ["node", "active"], false]'
  get_nodes_from_query query
end
get_nodes_from_query(query) click to toggle source
# File lib/puppet-pssh.rb, line 26
def get_nodes_from_query(query)
  target_url = "#{url}nodes?query=#{query}"
  Log.debug "Puppet master host: #{@host}"
  Log.debug "Puppet master url: #{target_url}"

  nodes = []
  begin
    out = Excon.get target_url
    JSON.parse(out.body).each do |n| 
      nodes << n 
    end
  rescue TypeError => e
    raise Exception.new "Error retrieving node list from master host: #{@host}"
  rescue Excon::Errors::SocketError => e
    raise Exception.new "Could not connect to the puppet master host: #{@host}"
  end
  nodes
end
url() click to toggle source
# File lib/puppet-pssh.rb, line 22
def url 
  "#{@use_ssl ? 'https' : 'http'}://#{@host}:#{@port}/"
end