Greetings,
I could use some clarity on node scope, class scope, and best practices. I
have the following:
# Node definition
if $hostname == 'mynode-dev' {
$app_version = '1.0'
include robin_dev
}
# Class definition
class robin_dev {
if $app_version == undef {
$app_version = '0.5'
}
include robin_dev::install
}
class robin_dev::install {
package {
"app_name": ensure =>
$robin_dev::app_version;
}
}
My intent is to set $app_version within my node definition. If
$app_version is not set there, I 'd like it to default to a version that is
set within class robin_dev itself, which is 0.5 in the above example.
While the above example works as I just described, i'm not understanding
how $robin_dev::app_version referenced in class robin_dev::install returns
"1.0" when I its assigned in the node definition. I initially assumed
that
class robin_dev would need to re-assign the variable within the class
itself like this:
# Class definition
class robin_dev {
if $app_version == undef {
$version = '0.5'
} else {
$version = $app_version
include robin_dev::install
}
class robin_dev::install {
package {
"app_name": ensure =>
$robin_dev::version;
}
}
Any insights would be appreciated. Thank you.
--
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 puppet-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/c51f4240-200f-425e-b6b5-abb3347bc9cf%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.