summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorJesse Wolfe <jes5199@gmail.com>2011-04-20 15:41:52 -0700
committerJesse Wolfe <jes5199@gmail.com>2011-04-20 15:54:53 -0700
commit34f9f41628273d1554760f85414eb326aaea605e (patch)
treef772da027951451763c75cff95426ab8fcb08991 /lib/puppet
parent6b18f8f01f12b6123f3c7eae58817b10d41b2391 (diff)
downloadpuppet-34f9f41628273d1554760f85414eb326aaea605e.tar.gz
puppet-34f9f41628273d1554760f85414eb326aaea605e.tar.xz
puppet-34f9f41628273d1554760f85414eb326aaea605e.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')
-rw-r--r--lib/puppet/parser/resource.rb2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/puppet/parser/resource.rb b/lib/puppet/parser/resource.rb
index b98bc0b80..e4f913013 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