Sha256: d8cbb0b6260b65fbba14066736d009f43d141afb7f6bba7a8ab738841fab8064

Contents?: true

Size: 1.24 KB

Versions: 3

Compression:

Stored size: 1.24 KB

Contents

#
# module_array.rb
#
module Puppet::Parser::Functions
  newfunction(:module_array, :type => :rvalue, :doc => <<-EOS
This function performs a lookup for a variable value in various locations:
See: module_params()
If no value is found in the defined sources, it returns an empty array ([])
    EOS
) do |args|
    
    value = nil
    CORL.run do
      raise(Puppet::ParseError, "module_array(): Define at least the variable name " +
        "given (#{args.size} for 1)") if args.size < 1

      var_name      = args[0]
      default_value = ( args.size > 1 ? args[1] : [] )
      options       = ( args.size > 2 ? args[2] : {} )

      module_name      = self.source.module_name
      module_var_name  = "#{module_name}::#{var_name}"
      default_var_name = "#{module_name}::default::#{var_name}"
      
      config = CORL::Config.init(options, [ :param, :module_array ], module_name, {
        :hiera_scope  => self,
        :puppet_scope => self,
        :search       => 'core::default',
        :search_name  => false,
        :init_fact    => 'hiera_ready',
        :force        => true,
        :merge        => true
      })
      value = CORL::Config.lookup_array([ module_var_name, default_var_name ], default, config)
    end
    return value
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
corl-0.4.2 lib/puppet/parser/functions/module_array.rb
corl-0.4.1 lib/puppet/parser/functions/module_array.rb
corl-0.4.0 lib/puppet/parser/functions/module_array.rb