class Pupmin::Reports

shortcuts for some useful report information

Public Class Methods

by_status(status: 'changed', latest: true, options: {}) click to toggle source

Get a list of reports by their status; defaults to just latest report

# File lib/pupmin/reports.rb, line 10
def self.by_status(status: 'changed', latest: true, options: {})
  query = [
    'AND',
    ['=', 'status', status.to_s],
    ['=', 'latest_report?', latest.to_s]
  ]

  call_query(query, options)
end
call_query(query, options = {}, endpoint = 'reports') click to toggle source
# File lib/pupmin/reports.rb, line 4
def self.call_query(query, options = {}, endpoint = 'reports')
  puppetdb = Pupmin::PuppetDB.build
  puppetdb.request(endpoint, query, options)
end
get_aged(threshold: 7200, options: {}) click to toggle source

Get a list of “aged” agents, i.e servers that last submitted a

report > threshold
# File lib/pupmin/reports.rb, line 22
def self.get_aged(threshold: 7200, options: {})
  query = ['in', 'certname', ['extract', 'certname', ['select_nodes', ['<', 'catalog_timestamp', Pupmin::Util.make_timestamp(threshold.to_i)]]]]
  call_query(query, options, 'facts/fqdn')
end