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.

Reply via email to