summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2008-02-29 12:04:42 -0600
committerLuke Kanies <luke@madstop.com>2008-02-29 12:04:42 -0600
commit65b72676aef2d58314f546eb31780d1b9925b9b3 (patch)
tree6d09647c1b566063e660e639e4c401b39137ceff /lib/puppet/parser
parent4c3fa7806d12f86fce01030aa5e3745e698cb3c0 (diff)
downloadpuppet-65b72676aef2d58314f546eb31780d1b9925b9b3.tar.gz
puppet-65b72676aef2d58314f546eb31780d1b9925b9b3.tar.xz
puppet-65b72676aef2d58314f546eb31780d1b9925b9b3.zip
Fixing the fact that resources that model defined resources
were getting finished multiple times, which meant they got multiple copies of metaparams.
Diffstat (limited to 'lib/puppet/parser')
-rw-r--r--lib/puppet/parser/resource.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/puppet/parser/resource.rb b/lib/puppet/parser/resource.rb
index 46be89ca2..b001e165b 100644
--- a/lib/puppet/parser/resource.rb
+++ b/lib/puppet/parser/resource.rb
@@ -82,12 +82,19 @@ class Puppet::Parser::Resource
# Do any finishing work on this object, called before evaluation or
# before storage/translation.
def finish
+ return if finished?
+ @finished = true
add_defaults()
add_metaparams()
add_scope_tags()
validate()
end
+ # Has this resource already been finished?
+ def finished?
+ defined?(@finished) and @finished
+ end
+
def initialize(options)
# Set all of the options we can.
options.each do |option, value|