Sha256: cfdde7c17bdaf757ba802eb0237beb2dfbfffe1ba51c8e9935f5ad6e481d0613

Contents?: true

Size: 1.74 KB

Versions: 18

Compression:

Stored size: 1.74 KB

Contents

#
# module_param.rb
#
# This function performs a lookup for a variable value in various locations
# following this order
# - Hiera backend, if present (modulename prefix)
# - ::corl::default::{modulename}::{varname} (configurable!!)
# - ::{modulename}::default::{varname}
# - {default parameter}
#
module Puppet::Parser::Functions
  newfunction(:module_param, :type => :rvalue, :doc => <<-EOS
This function performs a lookup for a variable value in various locations following this order:
- Hiera backend, if present (modulename prefix)
- ::data::default::{modulename}_{varname} (configurable!!)
- ::{modulename}::default::{varname}
- {default parameter}
If no value is found in the defined sources, it returns an empty string ('')
    EOS
) do |args|
    
    value = nil
    CORL.run do
      raise(Puppet::ParseError, "module_param(): Define at least the variable name " +
        "given (#{args.size} for 1)") if args.size < 1
      
      var_name = args[0]
      default  = ( args.size > 1 ? args[1] : '' )
      options  = ( args.size > 2 ? args[2] : {} )
    
      module_name = parent_module_name
      node        = CORL::Provisioner::Puppetnode.node
      
      if module_name
        module_var_name = "#{module_name}::#{var_name}"
        
        config = CORL::Config.init(options, [ :param, :module_param, var_name ], module_name, {
          :provisioner     => :puppetnode,
          :hiera_scope     => self,
          :puppet_scope    => self,
          :search          => 'core::default',
          :search_name     => false,
          :force           => true,
          :merge           => true,
          :undefined_value => :undef
        })
        value = node.lookup(module_var_name, default, config)
      end
    end
    return value
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
corl-0.5.17 lib/puppet/parser/functions/module_param.rb
corl-0.5.16 lib/puppet/parser/functions/module_param.rb
corl-0.5.15 lib/puppet/parser/functions/module_param.rb
corl-0.5.14 lib/puppet/parser/functions/module_param.rb
corl-0.5.13 lib/puppet/parser/functions/module_param.rb
corl-0.5.12 lib/puppet/parser/functions/module_param.rb
corl-0.5.11 lib/puppet/parser/functions/module_param.rb
corl-0.5.10 lib/puppet/parser/functions/module_param.rb
corl-0.5.9 lib/puppet/parser/functions/module_param.rb
corl-0.5.8 lib/puppet/parser/functions/module_param.rb
corl-0.5.7 lib/puppet/parser/functions/module_param.rb
corl-0.5.6 lib/puppet/parser/functions/module_param.rb
corl-0.5.5 lib/puppet/parser/functions/module_param.rb
corl-0.5.4 lib/puppet/parser/functions/module_param.rb
corl-0.5.3 lib/puppet/parser/functions/module_param.rb
corl-0.5.2 lib/puppet/parser/functions/module_param.rb
corl-0.5.1 lib/puppet/parser/functions/module_param.rb
corl-0.5.0 lib/puppet/parser/functions/module_param.rb