Sha256: 357a3fcbbea5b0d2a6aff492aa48bc996cddf5561233817fa5f0a9ab0687e45f

Contents?: true

Size: 1.79 KB

Versions: 58

Compression:

Stored size: 1.79 KB

Contents

require 'hiera_puppet'

module Puppet::Parser::Functions
  newfunction(:hiera_include, :arity => -2, :doc => "Assigns classes to a node
  using an array merge lookup that retrieves the value for a user-specified key
  from a Hiera data source.

  To use `hiera_include`, the following configuration is required:

  - A key name to use for classes, e.g. `classes`.
  - A line in the puppet `sites.pp` file (e.g. `/etc/puppet/manifests/sites.pp`)
    reading `hiera_include('classes')`. Note that this line must be outside any node
    definition and below any top-scope variables in use for Hiera lookups.
  - Class keys in the appropriate data sources. In a data source keyed to a node's role,
    one might have:

            ---
            classes:
              - apache
              - apache::passenger

  In addition to the required `key` argument, `hiera_include` accepts two additional
  arguments:

  - a `default` argument in the second position, providing an array to be returned
    in the absence of matches to the `key` argument
  - an `override` argument in the third position, providing a data source to consult
    for matching values, even if it would not ordinarily be part of the matched hierarchy.
    If Hiera doesn't find a matching key in the named override data source, it will continue
    to search through the rest of the hierarchy.

  More thorough examples of `hiera_include` are available at:
  <http://docs.puppetlabs.com/hiera/1/puppet.html#hiera-lookup-functions>
  ") do |*args|
    key, default, override = HieraPuppet.parse_args(args)
    if answer = HieraPuppet.lookup(key, default, self, override, :array)
      method = Puppet::Parser::Functions.function(:include)
      send(method, [answer])
    else
      raise Puppet::ParseError, "Could not find data item #{key}"
    end
  end
end

Version data entries

58 entries across 58 versions & 2 rubygems

Version Path
puppet-retrospec-0.12.2 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.12.1 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.12.0 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.11.0 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.10.0 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.9.1 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.9.0 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.8.1 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.8.0 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.7.3 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-retrospec-0.7.2 vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.4 lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.4-x86-mingw32 lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.4-x64-mingw32 lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.3 lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.3-x86-mingw32 lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.3-x64-mingw32 lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.2 lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.2-x86-mingw32 lib/puppet/parser/functions/hiera_include.rb
puppet-3.7.2-x64-mingw32 lib/puppet/parser/functions/hiera_include.rb