diff options
| author | Jesse Wolfe <jes5199@gmail.com> | 2011-04-20 15:41:52 -0700 |
|---|---|---|
| committer | Jesse Wolfe <jes5199@gmail.com> | 2011-04-20 15:50:18 -0700 |
| commit | 6981ee5f526e00f46f6b5460662bf09cddf832ef (patch) | |
| tree | df6e1abd75d206e620f3171192cb41931fc25923 /lib/puppet/parser | |
| parent | cdcff98b6ba4de967ecab0d6de9f1dd527e1f9c6 (diff) | |
| download | puppet-6981ee5f526e00f46f6b5460662bf09cddf832ef.tar.gz puppet-6981ee5f526e00f46f6b5460662bf09cddf832ef.tar.xz puppet-6981ee5f526e00f46f6b5460662bf09cddf832ef.zip | |
Maint: Fix a #4655 introduced log inconsistency
When we moved code from the compiler to parser/resource, we lost
a conditional that prevented defined resources from gaining containment
edges to stages. Adding a stage to a defined resource was usually
harmless, but it violated the invariant of "resources should only have
exactly one container as their direct parent", producing a 50% chance of
a malformed containment path in log messages.
Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
Diffstat (limited to 'lib/puppet/parser')
| -rw-r--r-- | lib/puppet/parser/resource.rb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/puppet/parser/resource.rb b/lib/puppet/parser/resource.rb index cd0e8c742..3bb5f8601 100644 --- a/lib/puppet/parser/resource.rb +++ b/lib/puppet/parser/resource.rb @@ -66,6 +66,8 @@ class Puppet::Parser::Resource < Puppet::Resource # is drawn from the class to the stage. The stage for containment # defaults to main, if none is specified. def add_edge_to_stage + return unless self.type.to_s.downcase == "class" + unless stage = catalog.resource(:stage, self[:stage] || (scope && scope.resource && scope.resource[:stage]) || :main) raise ArgumentError, "Could not find stage #{self[:stage] || :main} specified by #{self}" end |
