summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/parser/functions/defined_with_params.rb4
-rw-r--r--spec/functions/defined_with_params_spec.rb1
-rw-r--r--spec/functions/ensure_resource_spec.rb1
3 files changed, 5 insertions, 1 deletions
diff --git a/lib/puppet/parser/functions/defined_with_params.rb b/lib/puppet/parser/functions/defined_with_params.rb
index e09e41c..d7df306 100644
--- a/lib/puppet/parser/functions/defined_with_params.rb
+++ b/lib/puppet/parser/functions/defined_with_params.rb
@@ -20,7 +20,9 @@ ENDOFDOC
) do |vals|
reference, params = vals
raise(ArgumentError, 'Must specify a reference') unless reference
- params ||= {}
+ if (! params) || params == ''
+ params = {}
+ end
ret = false
if resource = findresource(reference.to_s)
matches = params.collect do |key, value|
diff --git a/spec/functions/defined_with_params_spec.rb b/spec/functions/defined_with_params_spec.rb
index 21c08a0..f995b67 100644
--- a/spec/functions/defined_with_params_spec.rb
+++ b/spec/functions/defined_with_params_spec.rb
@@ -26,6 +26,7 @@ describe 'defined_with_params' do
should run.with_params('User[dan]', {'ensure' => 'present'}).and_return(true)
should run.with_params('User[dan]', {'ensure' => 'present', 'managehome' => false}).and_return(true)
should run.with_params('User[dan]', {'ensure' => 'absent', 'managehome' => false}).and_return(false)
+ should run.with_params('User[dan]', '').and_return(true)
end
end
end
diff --git a/spec/functions/ensure_resource_spec.rb b/spec/functions/ensure_resource_spec.rb
index e45a6d0..e03efda 100644
--- a/spec/functions/ensure_resource_spec.rb
+++ b/spec/functions/ensure_resource_spec.rb
@@ -26,6 +26,7 @@ describe 'ensure_resource' do
it do
# these first three should not fail
should run.with_params('User', 'dan', {})
+ should run.with_params('User', 'dan', '')
should run.with_params('User', 'dan', {'ensure' => 'present'})
should run.with_params('User', 'dan', {'ensure' => 'present', 'managehome' => false})
# test that this fails