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.

Reply via email to