Hi,

please note that this is a very unusual structure. Properties that are
not assigned a desired value will just be left as is by the agent. Upon
creating a new resource on the managed system, the *ensure* property can
impose a default value.

Are you sure that you want to force the user to supply a property value
that Puppet will keep enforcing?

If so, your code is almost correct, assuming that :absent is not a valid
value for your property. If it is, you may want to pick another default
such as :foo.

newproperty(:bp) do
  defaultto do :absent end
  validate do |value|
    if value == :absent
      raise ArgumentError, "'bp' property is mandatory"
    end
  end
end

HTH,
Felix

On 02/10/2015 11:15 AM, Angel L. Mateo wrote:
> Hello,
>
>     I'm trying to create my own custom type according to guide at
> http://garylarizza.com/blog/2013/12/15/seriously-what-is-this-provider-doing/.
>
>
>     My problem is that I want one of the resource's properties to be
> mandatory and failed if the property is not defined. So in the type I
> have:
>
> newproperty(:bp) do
>   defaultto do :absent end
>   validate do |value|
>     raise ArgumentError, "'bp' property is mandatory"
>   end
> end
>
>     With this code, evertyhing seems fine when I'm programming puppet
> and if I try to create a resource without a "bp" property, I get the
> error message.
>
>     But my problem is that with this code, I can't use "puppet
> resource" order, because I get the error too when it tries to get the
> list of resources already defined.
>
>     Any help? 

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" 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-users/54F39AA9.2000009%40Alumni.TU-Berlin.de.
For more options, visit https://groups.google.com/d/optout.

Reply via email to