diff options
Diffstat (limited to 'code/environments/production/modules/stdlib/lib/puppet/parser/functions/getparam.rb')
-rw-r--r-- | code/environments/production/modules/stdlib/lib/puppet/parser/functions/getparam.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/code/environments/production/modules/stdlib/lib/puppet/parser/functions/getparam.rb b/code/environments/production/modules/stdlib/lib/puppet/parser/functions/getparam.rb new file mode 100644 index 0000000..d73650b --- /dev/null +++ b/code/environments/production/modules/stdlib/lib/puppet/parser/functions/getparam.rb @@ -0,0 +1,36 @@ +# Test whether a given class or definition is defined +require 'puppet/parser/functions' + +Puppet::Parser::Functions.newfunction(:getparam, + :type => :rvalue, + :doc => <<-'DOC' + Takes a resource reference and name of the parameter and + returns value of resource's parameter. + + *Examples:* + + define example_resource($param) { + } + + example_resource { "example_resource_instance": + param => "param_value" + } + + getparam(Example_resource["example_resource_instance"], "param") + + Would return: param_value + DOC + ) do |vals| + reference, param = vals + raise(ArgumentError, 'Must specify a reference') unless reference + raise(ArgumentError, 'Must specify name of a parameter') unless param && param.instance_of?(String) + + return '' if param.empty? + + resource = findresource(reference.to_s) + if resource + return resource[param] unless resource[param].nil? + end + + return '' +end |