Module: Puppet::DataProviders::DataFunctionSupport Private
- Included in:
- FunctionEnvDataProvider, FunctionModuleDataProvider
- Defined in:
- lib/puppet/data_providers/data_function_support.rb
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
Instance Method Details
#initialize_data(data_key, lookup_invocation) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/puppet/data_providers/data_function_support.rb', line 3 def initialize_data(data_key, lookup_invocation) name = "#{data_key}::data" scope = lookup_invocation.scope Puppet::Util::Profiler.profile("Called #{name}", [ :functions, name ]) do loader = loader(data_key, scope) if loader && func = loader.load(:function, name) # function found, call without arguments, must return a Hash # TODO: Validate the function - to ensure it does not contain unwanted side effects # That can only be done if the function is a puppet function # result = func.call(scope) unless result.is_a?(Hash) raise Puppet::Error.new("Expected '#{name}' function to return a Hash, got #{result.class}") end # validate result if block given result = yield(result) if block_given? else raise Puppet::Error.new("Cannot find the function '#{name}' - required when using 'function' data provider scheme") end result end end |