I just ran into an interesting scenario where I didn't know how to
scope my variables and I'd just like to share for the crowd.
Suppose you have two modules 'foo' and 'bar'. You also have two
defines, 'foo::do_stuff' and 'bar::more_stuff'.
define foo::do_stuff (
$var1 = 'a',
$var2 = 'b'
) {
bar::more_stuff { 'test': }
}
define bar::more_stuff (
$optional_var = 'ignore'
) {
file { '/tmp/test':
content => template('bar/random.erb')
}
+++ random.erb +++
var1 = <%= var1 %>
var2 = <%= var2 %>
So, here, puppet complains about the scope of var1 and var2 but what
should the correct scope be? foo::do_stuff::var1, etc...? But how does
that work with multiple define calls to foo::do_stuff?
This, of course, can be avoided by putting the template under
foo/templates and forcing the passage of content to bar::more_stuff
but I'm not quite sure *why* this isn't supposed to work and what to
do about it with the notice that 2.8 will force the scoping of all
variables.
Thanks,
Trevor
--
Trevor Vaughan
Vice President, Onyx Point, Inc
(410) 541-6699
[email protected]
-- This account not approved for unencrypted proprietary information --
--
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.