On Tuesday, March 12, 2013 10:53:46 AM UTC-5, phundisk wrote:
>
> I have a define which
>
> define testing1::instance (
> $hostSuffix = "-$environment",
> $testingDb = "db1$hostSuffix$dnsDomainInt",
> )
>
> In my nodes.pp I explicitly set the $environment variable. However when I
> use the property 'testingDb' in a template, it comes out as only 'db1' Is
> there something I am doing wrong in this define?
>
Yes. The default values for a definition's (or class's) parameters cannot
safely draw on the values of other parameters of the same object. It is
therefore incorrect for the default value of the $testingDb parameter to
use the $hostSuffix parameter. I would write that definition something
like this, instead:
define testing1::instance (
$hostSuffix = 'NOTSET',
$testingDb = 'NOTSET'
) {
$realHostSuffix = $hostSuffix ? {
'NOTSET' => "-${environment}",
default => $hostSuffix
}
$realTestingDb = $testingDb ? {
'NOTSET' => "db1${realHostSuffix}${dnsDomainInt}",
default => $testingDb
}
# ... use $realHostSuffix and $realTestingDb ...
}
John
--
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.