I think I have a misunderstanding of variable scope in classes. Wy isn''t tfel4_ClusterDbType set in the elements::tfel4::elements class? It''s set in elements::tfel4::defaults but then goes *poof* when elements::tfel4::elements tries to access it. class elements::tfel4::defaults { if ( !$tfel4_ClusterDbType ) { $tfel4_ClusterDbType = "oracle" } notice("(1)tfel4_ClusterDbType = ${tfel4_ClusterDbType}") } class elements::tfel4::elements { include elements::tfel4::jboss include elements::tfel4::defaults notice("(2)tfel4_ClusterDbType = ${tfel4_ClusterDbType}") } Doug. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On 2010-06-20 14:55, Douglas Garstang wrote:> I think I have a misunderstanding of variable scope in classes. > > Wy isn''t tfel4_ClusterDbType set in the elements::tfel4::elements > class? It''s set in elements::tfel4::defaults but then goes *poof* when > elements::tfel4::elements tries to access it. > > class elements::tfel4::defaults { > if ( !$tfel4_ClusterDbType ) { > $tfel4_ClusterDbType = "oracle" > } > notice("(1)tfel4_ClusterDbType = ${tfel4_ClusterDbType}") > } > > class elements::tfel4::elements { > include elements::tfel4::jboss > include elements::tfel4::defaults > notice("(2)tfel4_ClusterDbType = ${tfel4_ClusterDbType}") > } >Each class is able to access the scopes of its parents but not of its siblings. so, in the case of the elements::tfel4::defaults class, it will see variables from elements::tfel4 , elements, :: (global scope), in that order of precendence -- e.g. the global variables being accessed only if the variables are not "redefined" or modified in the parents. so, for your case, the tfel4_ClusterDbType variable could be defined in elements::tfel4 -- Gabriel Filion -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
I believe you can do class elements::tfel4::elements { include elements::tfel4::jboss include elements::tfel4::defaults notice("(2)tfel4_ClusterDbType = $ {elements::tfel4::defaults::tfel4_ClusterDbType}") } On Jun 20, 2:48 pm, Gabriel Filion <lelu...@gmail.com> wrote:> On 2010-06-20 14:55, Douglas Garstang wrote: > > > > > I think I have a misunderstanding of variable scope in classes. > > > Wy isn''t tfel4_ClusterDbType set in the elements::tfel4::elements > > class? It''s set in elements::tfel4::defaults but then goes *poof* when > > elements::tfel4::elements tries to access it. > > > class elements::tfel4::defaults { > > if ( !$tfel4_ClusterDbType ) { > > $tfel4_ClusterDbType = "oracle" > > } > > notice("(1)tfel4_ClusterDbType = ${tfel4_ClusterDbType}") > > } > > > class elements::tfel4::elements { > > include elements::tfel4::jboss > > include elements::tfel4::defaults > > notice("(2)tfel4_ClusterDbType = ${tfel4_ClusterDbType}") > > } > > Each class is able to access the scopes of its parents but not of its > siblings. so, in the case of the elements::tfel4::defaults class, it > will see variables from elements::tfel4 , elements, :: (global scope), > in that order of precendence -- e.g. the global variables being accessed > only if the variables are not "redefined" or modified in the parents. > > so, for your case, the tfel4_ClusterDbType variable could be defined in > elements::tfel4 > > -- > Gabriel Filion-- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.