I don't know the "right" way to do this but I've worked on a couple of composite namevar types at least enough that I've seen that kind of error before.
In effect, when using a composite namevar you must manually specify how to extract individual parameters from the resource title. It is assumed that the default title pattern is insufficient. What happens if for a given resource, no pattern in your title_patterns matches? Maybe that's what you're running into? Here are a few other title_patterns examples. https://github.com/puppetlabs/puppetlabs-java_ks/blob/master/lib/puppet/type/java_ks.rb#L140 https://github.com/reidmv/puppet-module-yamlfile/blob/master/lib/puppet/type/yaml_setting.rb#L166 On Thursday, January 23, 2014 12:36:38 PM UTC-8, Leonard Smith wrote: > > To all, > > I am on puppet 2.7.3 and I'm working on a custom RabbitMQ type, that will > use composite namevar. I did not see any work out there already for > managing rabbitMQ bindings so I've started on one and I'm running into > problems with the composite namevar. I have a very basic type ( below ) but > when I run the puppet as an agent I still get the error "Error 400 on > SERVER: Could not render to pson: you must specify title patterns when > there are two or more key attributes" > > Any help or pointers would be appreciated. > > #Puppet Manifest: > > rabbitmq_binding { 'testing': > > source => "src", > > destination => "dest", > > } > > # Puppet Type > > Puppet::Type.newtype(:rabbitmq_binding) do > > desc 'rabbitmq_binding creates a puppet type for managing rabbitMQ > binding' > > def self.title_patterns > > [ [ > > /^(.*):(.*)$/, # pattern to parse <source>:<destination> > > [ > > [:source, lambda{|x| x} ], > > [:destination, lambda{|x| x} ] > > ] ] > > ] > > end > > newparam( :source ) do > > isnamevar > > end > > newparam( :destination ) do > > isnamevar > > end > > end > -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/59f4c397-fa7b-4c15-9bde-509fba2f8e4e%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
