class PuppetPSSH::List

Public Instance Methods

execute() click to toggle source
# File lib/puppet-pssh.rb, line 134
def execute
  begin
    get_nodes(puppetmaster).each do |n| 
      next unless n =~ /#{match}/
      if all_facts?
        pp JSON.parse(Excon.get(master_url + "facts/#{n}").body)
      elsif fact
        value = JSON.parse(
          Excon.get(master_url + "facts/#{n}").body
        )['facts'][fact] || 'fact_not_found'
        puts n 
        puts "  #{fact.yellow}: " + value
      elsif with_facts
        facts = JSON.parse(
          Excon.get(master_url + "facts/#{n}").body
        )['facts']
        keys = facts.keys
        with_facts.split(',').each do |f|
          if keys.include?(f)
            puts n
            break
          end
        end
      elsif status?
        puts n
        status = node_status(n)
        puts "  #{'name:'.ljust(20).yellow} #{n}"
        if status['deactivated']
          puts "  #{'deactivated:'.ljust(20).yellow} " +
             "yes (#{status['deactivated']})"
        else
          puts "  #{'deactivated:'.ljust(20).yellow} no"
        end
        puts "  #{'catalog_timestamp:'.ljust(20).yellow} " + 
             "#{status['catalog_timestamp']}"
        puts "  #{'facts_timestamp:'.ljust(20).yellow} " + 
             "#{status['facts_timestamp']}"
      else
        puts n 
      end
    end
  rescue Exception => e
    Log.error e.message
    Log.debug e.backtrace
    exit 1
  end
end