Hi John,

Thanks for the response. They variables are only used in the template, as 
the NRPE daemon is manged by flat files. I will do some research into hiera.

--George

On Tuesday, September 25, 2012 11:28:31 AM UTC-4, jcbollinger wrote:
>
>
>
> On Monday, September 24, 2012 11:47:31 AM UTC-5, George Shammas wrote:
>>
>> I am trying to override variables in a class that is defined in the 
>> default node profile. I want parent class to be included in every single 
>> node, but override its variables in others. I have tried 
>> it several different ways now, and every single time the variables either 
>> become unset (undefined) or are set to the value of the first if statement.
>
>
> You cannot override class variables.  You especially cannot override class 
> parameters.  You can override only resource properties (and classes are not 
> resources, appearances notwithstanding).
>
> Moreover, subclasses do not set parameters for their parent classes, even 
> if they themselves have parameters of the same names.  Therefore, it is 
> usually a bad idea to inherit from a parametrized class (in fact, the v 2.7 
> docs say it's not supported).  If you do so, then you must explicitly 
> declare the parent class on every node for which you want to set 
> non-default parameters, whether or not you also declare the child class.
>
> Since you don't actually use the variables in question in your example, I 
> can't guess what your larger purpose may be, therefore it is difficult for 
> me to advise you.  Nevertheless, at the low level we are focused on, you 
> can achieve something similar to what you have asked by employing a data 
> hierarchy instead of a class hierarchy.  That is what the Hiera module is 
> all about.  Since hiera will be integrated into Puppet 3, getting started 
> with it now is also forward-looking.
>
> Once you install hiera and set up your data, the Puppet side could be as 
> simple as this:
>
> class nrpe::load { # no parameters
>     package { 'nagios-plugins-load': ensure => installed }
>
>     $warn_real = hiera('nrpe::warn')
>     $crit_real = hiera('nrpe::crit')
>
>     # alternatively, load $warn and $crit via hiera,
>     # and retain the original logic for setting
>     # $warn_real and $crit_real
>
>     file { "/etc/nagios/command.d/load.cfg":
>         owner   => root,
>         group   => root,
>         mode    => 640,
>         content => template("nrpe/load.cfg.erb"),
>         notify => Service[nrpe]
>     }
> }
>
> node "somenode.tld" inherits basenode {
>   # no subclass involved
> }
>
>
> John
>
>

-- 
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/-/0C5HzeVgMZoJ.
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