Puppet Function: params_lookup
- Defined in:
- lib/puppet/parser/functions/params_lookup.rb
- Function type:
- Ruby 3.x API
Overview
This fuction looks for the given variable name in a set of different sources:
-
::varname (if is_global is true)
-
::classname_subclass_varname
-
::modulename_varname
-
::modulename::params::varname
If no value is found in the defined sources, it returns an empty string (”)
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/puppet/parser/functions/params_lookup.rb', line 22 newfunction(:params_lookup, :type => :rvalue, :doc => <<-EOS This fuction looks for the given variable name in a set of different sources: - ::varname (if is_global is true) - ::classname_subclass_varname - ::modulename_varname - ::modulename::params::varname If no value is found in the defined sources, it returns an empty string ('') EOS ) do |arguments| raise(Puppet::ParseError, "params_lookup(): Define at least the variable name " + "given (#{arguments.size} for 1)") if arguments.size < 1 value = '' var_name = arguments[0] is_global = arguments[1] default_value = arguments[2] module_name = parent_module_name classname = self.resource.name.downcase loaded_classes = catalog.classes # Top Scope Variable ::class_[sub_]_varname value = lookupvar("::#{classname.gsub('::','_')}_#{var_name}") return value if (not value.nil?) && (value != :undefined) && (value != '') # self::params class lookup for default value if loaded_classes.include?("#{classname}::params") value = lookupvar("::#{classname}::params::#{var_name}") return value if (not value.nil?) && (value != :undefined) && (value != '') end # Top Scope Variable Lookup (::modulename_varname) value = lookupvar("::#{module_name}_#{var_name}") return value if (not value.nil?) && (value != :undefined) && (value != '') # Params class lookup for default value if loaded_classes.include?("#{module_name}::params") value = lookupvar("::#{module_name}::params::#{var_name}") return value if (not value.nil?) && (value != :undefined) && (value != '') end # Look up ::varname (if we've set is_global to true) if is_global value = lookupvar("::#{var_name}") return value if (not value.nil?) && (value != :undefined) && (value != '') end # Return our passed in default return default_value if ( not default_value.nil? ) && (default_value != :undefined) # Return the empty string return '' end |