class PuppetPSSH::BaseCommand

Public Instance Methods

get_nodes(puppetmaster, include_deactivated = false) click to toggle source
# File lib/puppet-pssh.rb, line 94
def get_nodes(puppetmaster, include_deactivated = false)
  query = URI.encode '["=", ["node", "active"], true]'
  url = "#{use_ssl? ? 'https' : 'http'}://#{puppetmaster}:#{puppetmaster_port}/nodes?query=#{query}"
  Log.debug "Puppet master host: #{puppetmaster}"
  Log.debug "Puppet master url: #{url}"

  nodes = []
  begin
    out = Excon.get url
    JSON.parse(out.body).each do |n| 
      next unless  n =~ /#{match}/
      nodes << n 
    end
    # IF --deactivated, include also deactivated nodes
    if deactivated?
      query = URI.encode '["=", ["node", "active"], false]'
      url = "#{use_ssl? ? 'https' : 'http'}://#{puppetmaster}:#{puppetmaster_port}/nodes?query=#{query}"
      out = Excon.get url
      JSON.parse(out.body).each do |n| 
        next unless  n =~ /#{match}/
        nodes << n 
      end
    end
  rescue TypeError => e
    raise Exception.new "Error retrieving node list from master host: #{puppetmaster}"
  rescue Excon::Errors::SocketError => e
    raise Exception.new "Could not connect to the puppet master host: #{puppetmaster}"
  end
  nodes
end
master_url() click to toggle source
# File lib/puppet-pssh.rb, line 84
def master_url
  "#{use_ssl? ? 'https' : 'http'}://#{puppetmaster}:#{puppetmaster_port}/"
end
node_status(node) click to toggle source
# File lib/puppet-pssh.rb, line 88
def node_status(node)
  JSON.parse(
    Excon.get(master_url + "status/nodes/#{node}").body
  )
end