The ensure_resource function actually calls two
other functions, create_resources and defined_with_param.
When calling Puppet functions from Ruby, you sometimes have
to load the functions manually if they have not been called
before.
This commit explicitly loads the functions that ensure_resource
depends on from within the function.
raise(ArgumentError, 'Must specify a type') unless type
raise(ArgumentError, 'Must specify a title') unless title
params ||= {}
+ Puppet::Parser::Functions.function(:defined_with_params)
if function_defined_with_params(["#{type}[#{title}]", params])
Puppet.debug("Resource #{type}[#{title}] not created b/c it already exists")
else
+ Puppet::Parser::Functions.function(:create_resources)
function_create_resources([type.capitalize, { title => params }])
end
end