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 puppet-dev+unsubscr...@googlegroups.com. 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.