From 9fc3063ea954bbd49cd2b8386bc69696a4af4114 Mon Sep 17 00:00:00 2001
From: Dan Bode <dan@puppetlabs.com>
Date: Wed, 15 Aug 2012 15:57:45 -0700
Subject: Explicitly load functions used by ensure_resource

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.
---
 lib/puppet/parser/functions/ensure_resource.rb | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'lib/puppet')

diff --git a/lib/puppet/parser/functions/ensure_resource.rb b/lib/puppet/parser/functions/ensure_resource.rb
index 6a9e2ed..fba2035 100644
--- a/lib/puppet/parser/functions/ensure_resource.rb
+++ b/lib/puppet/parser/functions/ensure_resource.rb
@@ -25,9 +25,11 @@ ENDOFDOC
   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
-- 
cgit v1.2.3