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.

Reply via email to