Puppet Function: getvar
- Defined in:
- puppet/modules/stdlib/lib/puppet/parser/functions/getvar.rb
- Function type:
- Ruby 3.x API
Overview
Lookup a variable in a remote namespace.
For example:
$foo = getvar('site::data::foo')
# Equivalent to $foo = $site::data::foo
This is useful if the namespace itself is stored in a string:
$datalocation = 'site::data'
$bar = getvar("${datalocation}::bar")
# Equivalent to $bar = $site::data::bar
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'puppet/modules/stdlib/lib/puppet/parser/functions/getvar.rb', line 3 newfunction(:getvar, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| Lookup a variable in a remote namespace. For example: $foo = getvar('site::data::foo') # Equivalent to $foo = $site::data::foo This is useful if the namespace itself is stored in a string: $datalocation = 'site::data' $bar = getvar("${datalocation}::bar") # Equivalent to $bar = $site::data::bar ENDHEREDOC unless args.length == 1 raise Puppet::ParseError, ("getvar(): wrong number of arguments (#{args.length}; must be 1)") end begin result = nil catch(:undefined_variable) do result = self.lookupvar("#{args[0]}") end # avoid relying on incosistent behaviour around ruby return values from catch result rescue Puppet::ParseError # Eat the exception if strict_variables = true is set end end |