Issue #9848 has been updated by Vincent Janelle.
Also, something weird I just noticed
define foo::test (
$var = 1,
$var_x = "test_${$var}",
) {
notice($var_x)
}
foo::test { 'test': }
foo::test { 'test2':
var => 2,
}
Will produce:
puppet apply x.pp
Notice: Scope(Foo::Test[test]): test_
Notice: Scope(Foo::Test[test2]): test_2
----------------------------------------
Bug #9848: Variable interpolation in class parameters seems random
https://projects.puppetlabs.com/issues/9848#change-87508
* Author: Carlos Sanchez
* Status: Accepted
* Priority: Normal
* Assignee:
* Category: parameterized classes
* Target version: 3.x
* Affected Puppet version: 2.7.1
* Keywords: parameter variable class interpolation evaluation BD
* Branch:
----------------------------------------
In class parameters, things like x="x", y="y${x}" don't always evaluate right
(y="yx"), seems random. I'm using 2.7.1
<pre>
class test1(
$servicex = "sonar",
$logfoldera = "${homex}/logs",
$logfoldere = "${homey}/logs",
$logfolderh = "${homez}/logs",
$logfolder = "${homex}/logs",
$homex = "/var/${servicex}",
$homey = "/var/${servicex}",
$homez = "/var/${servicex}") {
notice($homex)
notice($homey)
notice($homez)
notice("-----")
notice($logfoldera)
notice($logfoldere)
notice($logfolderh)
}
</pre>
output :
<pre>
notice: Scope(Class[Test1]): /var/sonar
notice: Scope(Class[Test1]): /var/sonar
notice: Scope(Class[Test1]): /var/sonar
notice: Scope(Class[Test1]): -----
notice: Scope(Class[Test1]): /var/sonar/logs
notice: Scope(Class[Test1]): /logs
notice: Scope(Class[Test1]): /logs
</pre>
Note the last two messages should print "/var/sonar/logs"
Ordering the paramenters in the order they are needed gets the same result.
Just by changing the name of the parameters from class test1 to test2 I get
different evaluations of the variables, one is right and two are wrong, you can
see that in [this gist](https://gist.github.com/1250837)
Commented on [the user
list](https://groups.google.com/d/topic/puppet-users/x_BCxE6SQcM/discussion)
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" 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-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.