class TrainPlugins::PuppetDBInterface::Connection

Public Class Methods

new(options) click to toggle source
Calls superclass method
# File lib/train-puppetdb/connection.rb, line 9
def initialize(options)
        if options.nil? || options[:server].nil?
                raise Train::TransportError, "You must set a PuppetDB server."
        end

        super(options)

        @tmp_dir = Dir.mktmpdir

        # Check if target is reachable
        begin
                @client = PuppetDB::Client.new({
                        :server => options[:server],
                        :pem => {
                                'key' => sanitize_cert("key", options[:key]),
                                'cert' => sanitize_cert("cert", options[:cert]),
                                'ca_file' => sanitize_cert("ca", options[:cacert]),
                        }
                })

                @client.request('nodes', [:'~', 'certname', '.*'], {:limit => 1})
        rescue => e
                raise Train::TransportError, e.response
        end
end

Public Instance Methods

local?() click to toggle source
# File lib/train-puppetdb/connection.rb, line 35
def local?
        false
end
puppetdb_client() click to toggle source
# File lib/train-puppetdb/connection.rb, line 43
def puppetdb_client
        @client
end
uri() click to toggle source
# File lib/train-puppetdb/connection.rb, line 39
def uri
        'puppetdb://'
end

Private Instance Methods

sanitize_cert(filename, cert) click to toggle source
# File lib/train-puppetdb/connection.rb, line 49
def sanitize_cert(filename, cert)
        if cert.start_with?("-----")
                File.write("#{@tmp_dir}/#{filename}", cert)
                return "#{@tmp_dir}/#{filename}"
        else
                return cert
        end
end