Sha256: d15c6fc111bc32e49b7df554c357f95beb4a0e53a451bb2af41b149b01f590b6

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'puppet/indirector/terminus'

class Puppet::Indirector::Corl < Puppet::Indirector::Terminus

  def initialize(*args)
    node = CORL::Provisioner::Puppetnode.node

    unless node.config_initialized?
      raise "CORL terminus not supported without the CORL library"
    end
    super
  end

  #---

  def find(request)
    node         = CORL::Provisioner::Puppetnode.node

    puppet_scope = request.options[:variables]
    module_name  = nil
    module_name  = puppet_scope.source.module_name if puppet_scope.source
    contexts     = [ :param, :data_binding, request.key ]

    default_options = {
      :provisioner     => :puppetnode,
      :hiera_scope     => puppet_scope,
      :puppet_scope    => puppet_scope,
      :search          => 'core::default',
      :search_name     => false,
      :force           => true,
      :merge           => true,
      :undefined_value => :undef
    }

    if module_name
      config = CORL::Config.init({}, contexts, module_name, default_options)
    else
      config = CORL::Config.init_flat({}, contexts, default_options)
    end
    node.lookup(request.key, nil, config)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
corl-0.5.18 lib/puppet/indirector/corl.rb