On Fri, Jan 21, 2011 at 8:31 AM, Dick Davies <rasput...@hellooperator.net>wrote:

> I've almost finished a pretty simple type/provider to manage
> RabbitMQ users and virtual hosts.
> I'm using the 'ensurable' keyword in my type to save a bit of boilerplate.
>
> Type is below (the provider is just a wrapper around the 'rabbitmqctl'
> command.
>
> Have a feeling there's a developer guide somewhere I haven't found
> (been working from the puppetlabs site and @kartars blog).
> Couple of basic questions:
>
> 1. how can I set the type to default to 'ensure => present, isadmin =>
> false' ?
>     Not sure if the ensurable mechanism is causing the first to be hard,
>     but I can't see a way to set defaults in general
>

you can call the defaultto method in the param/property.


> 2. is there a way to mark attributes as required?
>

unfortunately not in the param/property blocks, there is supposed to be a
method called isrequired,but it does not work. You can do this with the
validate method on the type



> I've provided a validation for the initial_password parameter, but it only
> seems to fire if the parameter is there;
> it doesn't get checked if the parameter is absent.
>
>
>

> =======================================================
> # cat lib/puppet/type/rabbitmq_user.rb
> Puppet::Type.newtype(:rabbitmq_user) do
>   @doc = "Manage RabbitMQ users"
>
>   ensurable
>
>   newparam(:name) do
>     desc "The name of the user"
>
>     validate do |n|
>       raise ArgumentError, "cannot be empty" if n.empty?
>       raise ArgumentError, "can't contain spaces" if ( n =~ %r(\s+) )
>       resource[:provider] = :rabbitmq_user
>     end
>
>     isnamevar
>   end
>
>   newparam(:initial_password) do
>     desc "the password for the user - only set on creation time"
>
>         defaultto 'foo'


>     validate do |n|
>       raise ArgumentError, "cannot be empty" if (n.empty? or n.nil?)
>       resource[:provider] = :rabbitmq_user
>     end
>   end
>

      validate do
        raise ArgumentError "initial_password is a required param" unless
self[:initial_password]
      end

>  end
>
> ===================================================
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-users+unsubscr...@googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to