Please review pull request #617: (#13567) Fix create_resources name parameter bug opened by (marut)
Description:
Previously, the create_resources function would inconsistently override name parameters provided by the user, setting the name parameter equal to the resource title. This commit modifies create_resources such that when provided, user-supplied name parameters are used correctly and consistently.
See http://projects.puppetlabs.com/issues/13567 for full description.
- Opened: Sat Mar 31 22:35:12 UTC 2012
- Based on: puppetlabs:master (ba112e94619e6d35ca1d2d89975f787e537fe1e3)
- Requested merge: marut:13567_fix_create_resources_name_parameter_bug (ff0607108f5896d7ddeedf84f1688b80fd964bb4)
Diff follows:
diff --git a/lib/puppet/parser/functions/create_resources.rb b/lib/puppet/parser/functions/create_resources.rb
index 3c91b41..4fa3316 100644
--- a/lib/puppet/parser/functions/create_resources.rb
+++ b/lib/puppet/parser/functions/create_resources.rb
@@ -51,14 +51,15 @@
# iterate through the resources to create
defaults = args[2] || {}
args[1].each do |title, params|
- raise ArgumentError, 'params should not contain title' if(params['title'])
params = defaults.merge(params)
+ params = params.inject({}) { |hash, (k,v)| hash[k.to_sym] = v; hash }
+ raise ArgumentError, 'params should not contain title' if(params[:title])
case type_of_resource
# JJM The only difference between a type and a define is the call to instantiate_resource
# for a defined type.
when :type, :define
p_resource = Puppet::Parser::Resource.new(type_name, title, :scope => self, :source => resource)
- params.merge(:name => title).each do |k,v|
+ {:name => title}.merge(params).each do |k,v|
p_resource.set_parameter(k,v)
end
if type_of_resource == :define then
-- You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
