On Tuesday, July 31, 2012 2:05:28 PM UTC-7, ZJE wrote:
>
> Is it possible to access @resource variables inside a type?
>
> I would like to make some decisions on parameters based on other 
> parameters that may have already been set.
>
> For example,
> ---
>   newparam(:param1) do
>     Puppet.debug "Found drivesperarray parameter"
>     desc "parameter 1"
>     validate do |value|
>       if resource[:otherparam] then
>         #dosomething
>       else
>         resource[:param1] = 0
>       end
>     end
>     Puppet.debug "Parameter 1 is: #{@resource[:param1]}"
>   end
> ---
>
> But I keep getting messages like "undefined method `[]' for nil:NilClass" 
>
> Anyone have experience with this? I've tried searching around for example 
> without much luck...
>
>
It sounds like what you actually want is a munge block, which is used to 
change the value of the parameter.

munge do |value|
  if resource[:otherparam] then
    #dosomething
  else
    0
  end
end

validate should be used only to raise an exception if the value is invalid. 
Puppet will call validate and then munge. Also, parameters are set in the 
order they're defined in the type/<type>.rb file, and validated/munged 
before moving on to the next parameter. So a parameter can only depend on 
the values of parameters that come *before* it.
 

> Thanks!
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/vNg7G08OxowJ.
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