Sha256: f199c02ba2d023b49755485785c3d8ede4092ee6053cde5534871f6961e02c21

Contents?: true

Size: 1.64 KB

Versions: 5

Compression:

Stored size: 1.64 KB

Contents

require 'puppet/application/query'
require 'puppet/face'
Puppet::Face.define(:query, '1.0.0') do
  require 'puppetdb/connection'

  copyright "Puppet Labs & Erik Dalén", 2012..2013
  license   "Apache 2 license; see COPYING"


  option '--puppetdb_host PUPPETDB' do
    summary "Host running PuppetDB. "
    default_to { Puppet::Application::Query.setting[:host] }
  end

  option '--puppetdb_port PORT' do
    summary 'Port PuppetDB is running on'
    default_to { Puppet::Application::Query.setting[:port] }
  end

  action :facts do
    summary 'Serves as an interface to puppetdb allowing a user to query for a list of nodes'

    description <<-EOT
      Here is a ton of more useful information :)
    EOT

    arguments "<query>"

    option '--facts FACTS' do
      summary 'facts to return that represent each host'
      description <<-EOT
        Filter for the fact subcommand can be used to specify the facts to filter for.
        It accepts either a string or a comma delimited list of facts.
      EOT
      default_to { '' }
    end

    when_invoked do |query, options|
      puppetdb = PuppetDB::Connection.new options[:puppetdb_host], options[:puppetdb_port]
      puppetdb.facts(options[:facts].split(','), puppetdb.parse_query(query, :facts))
    end

  end

  action :nodes do

    summary 'Perform complex queries for nodes from PuppetDB'
    description <<-EOT
      Here is a ton of more useful information :)
    EOT

    arguments "<query>"

    when_invoked do |query, options|
      puppetdb = PuppetDB::Connection.new options[:puppetdb_host], options[:puppetdb_port]
      puppetdb.query(:nodes, puppetdb.parse_query(query, :nodes))
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ruby-puppetdb-1.0.1 lib/puppet/face/query.rb
ruby-puppetdb-1.0.0 lib/puppet/face/query.rb
ruby-puppetdb-1.0.0.pre5 lib/puppet/face/query.rb
ruby-puppetdb-1.0.0.pre4 lib/puppet/face/query.rb
ruby-puppetdb-1.0.0.pre2 lib/puppet/face/query.rb