Sha256: fdb43496799661611a9b91a64cc9a2e969bcd6e618d040f271f62397ca61f501

Contents?: true

Size: 1.59 KB

Versions: 13

Compression:

Stored size: 1.59 KB

Contents

class Hiera
module Backend
class << self
  #
  # NOTE: This function is overridden so we can collect accumulated hiera
  # parameters and their values on a particular provisioning run for reporting 
  # purposes.
  #
  def lookup(key, default, scope, order_override, resolution_type)
    @backends ||= {}
    answer = nil

    Config[:backends].each do |backend|
      if constants.include?("#{backend.capitalize}_backend") || constants.include?("#{backend.capitalize}_backend".to_sym)
        @backends[backend] ||= Backend.const_get("#{backend.capitalize}_backend").new
        new_answer = @backends[backend].lookup(key, scope, order_override, resolution_type)

        if not new_answer.nil?
          case resolution_type
          when :array
            raise Exception, "Hiera type mismatch: expected Array and got #{new_answer.class}" unless new_answer.kind_of? Array or new_answer.kind_of? String
            answer ||= []
            answer << new_answer
          when :hash
            raise Exception, "Hiera type mismatch: expected Hash and got #{new_answer.class}" unless new_answer.kind_of? Hash
            answer ||= {}
            answer = merge_answer(new_answer,answer)
          else
            answer = new_answer
            break
          end
        end
      end
    end

    answer = resolve_answer(answer, resolution_type) unless answer.nil?
    answer = parse_string(default, scope) if answer.nil? and default.is_a?(String)
    answer = default if answer.nil?
        
    CORL::Config.set_property(key, answer) # This is why we override this function!!
    return answer
  end
end
end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
corl-0.4.16 lib/core/mod/hiera_backend.rb
corl-0.4.15 lib/core/mod/hiera_backend.rb
corl-0.4.14 lib/core/mod/hiera_backend.rb
corl-0.4.13 lib/core/mod/hiera_backend.rb
corl-0.4.12 lib/core/mod/hiera_backend.rb
corl-0.4.11 lib/core/mod/hiera_backend.rb
corl-0.4.10 lib/core/mod/hiera_backend.rb
corl-0.4.9 lib/core/mod/hiera_backend.rb
corl-0.4.8 lib/core/mod/hiera_backend.rb
corl-0.4.7 lib/core/mod/hiera_backend.rb
corl-0.4.6 lib/core/mod/hiera_backend.rb
corl-0.4.5 lib/core/mod/hiera_backend.rb
corl-0.4.4 lib/core/mod/hiera_backend.rb