class PuppetDB::Config

Public Class Methods

new(overrides = nil, load_files = false) click to toggle source
# File lib/puppetdb/config.rb, line 4
def initialize(overrides = nil, load_files = false)
  @overrides = {}
  overrides.each { |k, v| @overrides[k.to_s] = v } unless overrides.nil?

  @load_files = load_files
end

Public Instance Methods

[](key) click to toggle source
# File lib/puppetdb/config.rb, line 84
def [](key)
  @config[key]
end
config() click to toggle source
# File lib/puppetdb/config.rb, line 59
def config
  @config ||= load_config
end
default_cacert() click to toggle source
# File lib/puppetdb/config.rb, line 31
def default_cacert
  "#{puppetlabs_root}/puppet/ssl/certs/ca.pem"
end
defaults() click to toggle source
# File lib/puppetdb/config.rb, line 35
def defaults
  {
    'cacert' => default_cacert,
    'token-file' => File.join(user_root, 'token')
  }
end
global_conf() click to toggle source
# File lib/puppetdb/config.rb, line 19
def global_conf
  File.join(puppetlabs_root, 'client-tools', 'puppetdb.conf')
end
load_config() click to toggle source
# File lib/puppetdb/config.rb, line 42
def load_config
  config = defaults
  if @load_files
    if File.exist?(global_conf) && File.readable?(global_conf)
      config = config.merge(load_file(global_conf))
    end

    if @overrides['config-file']
      config = config.merge(load_file(@overrides['config-file']))
    elsif File.exist?(user_conf) && File.readable?(user_conf)
      config = config.merge(load_file(user_conf))
    end
  end

  config.merge(@overrides)
end
load_file(path) click to toggle source
# File lib/puppetdb/config.rb, line 11
def load_file(path)
  File.open(path) { |f| JSON.parse(f.read)['puppetdb'] }
end
load_token() click to toggle source
# File lib/puppetdb/config.rb, line 63
def load_token
  if @config.include?('token')
    @config['token']
  elsif File.readable?(config['token-file'])
    File.read(config['token-file']).strip
  end
end
puppetlabs_root() click to toggle source
# File lib/puppetdb/config.rb, line 15
def puppetlabs_root
  '/etc/puppetlabs'
end
server() click to toggle source
# File lib/puppetdb/config.rb, line 80
def server
  server_urls.first || {}
end
server_urls() click to toggle source
# File lib/puppetdb/config.rb, line 75
def server_urls
  return [config['server']] unless config['server'].nil?
  config['server_urls'] || []
end
token() click to toggle source
# File lib/puppetdb/config.rb, line 71
def token
  @token ||= load_token
end
user_conf() click to toggle source
# File lib/puppetdb/config.rb, line 27
def user_conf
  File.join(user_root, 'client-tools', 'puppetdb.conf')
end
user_root() click to toggle source
# File lib/puppetdb/config.rb, line 23
def user_root
  File.join(Dir.home, '.puppetlabs')
end