On Fri, 7 Oct 2011 05:55:34 -0700 (PDT)
jcbollinger jcbollinger wrote:
Hi John,
> You are misunderstanding that Puppet variables' values can never be
> reassigned. Once a variable has a value, it never changes throughout
> the compilation of that catalog. This is an aspect of Puppet DSL's
> declarative nature.
>
> As to how to accomplish what you ask, the usual way would be to use
> the parameter and any other data you want to select the value of a
> *different* variable, and then use that second variable. The same
> thing is fairly common practice in defined types:
>
> class common::nrpe($ensure='absent') {
> [...]
>
> if ($::kernel=='Linux') and ($::lsbmajdistrelease=='6') {
> $really_ensure = 'present'
> } else {
> $really_ensure = $ensure
> }
>
> [...]
>
> }
Ok, I solved the issue with something like that but I thought it was
some kind of ugly workaround... but if it's common I feel better with my
code.
> While I'm on this topic, I'll throw in that I would find it terribly
> confusing if a class or definition failed to honor my specification
> for a parameter named 'ensure'.
Sorry John, but I don't understand this point.
> I'd also find it confusing, though
> less so, for the default value of an 'ensure' parameter to be
> 'absent'. I recommend that you tweak your design a bit so as to not
> leave little traps like those for yourself and others to stumble over
> later. Or at least document the wazoo out of that thing.
I'm playing with this class. First time I do something like above.
Our production services have a default present, but this one is still
in test and I'd like to test it only on Linux 6., so I was playing with
logic inside new class :-)
> John
Many thanks for your reply,
Arnau
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.