<snip> It is incorrect to make that relationship declaration (via the chain > operator) if there are any nodes that do not declare the specified anchor, > because top-level declarations in *any* manifest file apply to all > nodes. It is poor practice to make declarations at top level like that > other than class and defined-type definitions, however, except sometimes in > site.pp and manifests 'import'ed by it. When they appear in other places, > Puppet may or may not see them during any given catalog run, but you must > not assume that Puppet will fail to see them under any given circumstances. >
I absolutely agree. I was not recommending this as something to do, merely stating that I've seen the exhibited behavior in that circumstance. > > Thus, manifest files that are intended to be autoloaded should contain > exactly one thing at top-level: the definition of the class or defined type > that is the autoloading target. > > > On the other hand, I would be surprised if a top-level dependency > declaration caused a referenced class to be declared when it otherwise was > not declared. That's not an issue in the example because a declaration of > the class involved occurs in the same manifest, at the same level as the > chain, so the class (but not necessarily the anchor) will always be > declared if the relationship is declared. That could point to the actual > problem, though: there may somewhere be just such a top-level declaration > of class 'base::firewall'. Otherwise, it must be that class 'monitoring' > declares class 'base::firewall', either directly or indirectly. > I have actually seen an error arise on a node with the cause being an ordering declaration occurring in a non-included class file, but outside the scope of that class. I suspect it may be a bug, however I've only encountered it while utilizing this antipattern. > > 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 puppet-users+unsubscr...@googlegroups.com. > To post to this group, send email to puppet-users@googlegroups.com. > Visit this group at http://groups.google.com/group/puppet-users. > > For more options, visit https://groups.google.com/groups/opt_out. > > > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.