Sha256: 949f51af6d3b4b4902e6b5b9f294347c0c645133c204a43e9adb5954b5448cc6
Contents?: true
Size: 1.14 KB
Versions: 6
Compression:
Stored size: 1.14 KB
Contents
require 'puppet/indirector/code' require 'hiera/scope' class Puppet::DataBinding::Hiera < Puppet::Indirector::Code desc "Retrieve data using Hiera." def initialize(*args) if ! Puppet.features.hiera? raise "Hiera terminus not supported without hiera library" end super end if defined?(::Psych::SyntaxError) DataBindingExceptions = [::StandardError, ::Psych::SyntaxError] else DataBindingExceptions = [::StandardError] end def find(request) hiera.lookup(request.key, nil, Hiera::Scope.new(request.options[:variables]), nil, nil) rescue *DataBindingExceptions => detail raise Puppet::DataBinding::LookupError.new(detail.message, detail) end private def self.hiera_config hiera_config = Puppet.settings[:hiera_config] config = {} if Puppet::FileSystem::File.exist?(hiera_config) config = Hiera::Config.load(hiera_config) else Puppet.warning "Config file #{hiera_config} not found, using Hiera defaults" end config[:logger] = 'puppet' config end def self.hiera @hiera ||= Hiera.new(:config => hiera_config) end def hiera self.class.hiera end end
Version data entries
6 entries across 6 versions & 1 rubygems