829626f6cb
This commit changes the terminus configuration to use the new root prefix for PuppetDB and changes the connection validator to do the same. This commit also adds the terminus package name changes `terminus` to `termini` and tries to be smart about the default, checking to see what version of PuppetDB was passed in and defaulting off of that value.
45 lines
1.7 KiB
Ruby
45 lines
1.7 KiB
Ruby
require 'puppet/network/http_pool'
|
|
|
|
module Puppet
|
|
module Util
|
|
# Validator class, for testing that PuppetDB is alive
|
|
class PuppetdbValidator
|
|
attr_reader :puppetdb_server
|
|
attr_reader :puppetdb_port
|
|
attr_reader :use_ssl
|
|
attr_reader :test_path
|
|
attr_reader :test_headers
|
|
|
|
def initialize(puppetdb_server, puppetdb_port, use_ssl=true, test_path = "/pdb/meta/v1/version")
|
|
@puppetdb_server = puppetdb_server
|
|
@puppetdb_port = puppetdb_port
|
|
@use_ssl = use_ssl
|
|
@test_path = test_path
|
|
@test_headers = { "Accept" => "application/json" }
|
|
end
|
|
|
|
# Utility method; attempts to make an http/https connection to the puppetdb server.
|
|
# This is abstracted out into a method so that it can be called multiple times
|
|
# for retry attempts.
|
|
#
|
|
# @return true if the connection is successful, false otherwise.
|
|
def attempt_connection
|
|
# All that we care about is that we are able to connect successfully via
|
|
# http(s), so here we're simpling hitting a somewhat arbitrary low-impact URL
|
|
# on the puppetdb server.
|
|
conn = Puppet::Network::HttpPool.http_instance(puppetdb_server, puppetdb_port, use_ssl)
|
|
|
|
response = conn.get(test_path, test_headers)
|
|
unless response.kind_of?(Net::HTTPSuccess)
|
|
Puppet.notice "Unable to connect to puppetdb server (http#{use_ssl ? "s" : ""}://#{puppetdb_server}:#{puppetdb_port}): [#{response.code}] #{response.msg}"
|
|
return false
|
|
end
|
|
return true
|
|
rescue Exception => e
|
|
Puppet.notice "Unable to connect to puppetdb server (http#{use_ssl ? "s" : ""}://#{puppetdb_server}:#{puppetdb_port}): #{e.message}"
|
|
return false
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|