summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-12-27 19:42:30 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-12-27 19:42:30 +0000
commitd3a7c28ac7ea9a68a024d89cf39f1f6502b0a900 (patch)
tree95ef150b6df7f5a3f99100f269f7a4a77718cda3
parent1d057396de46eab64f757d79c7996d0ca0245043 (diff)
downloadpuppet-d3a7c28ac7ea9a68a024d89cf39f1f6502b0a900.tar.gz
puppet-d3a7c28ac7ea9a68a024d89cf39f1f6502b0a900.tar.xz
puppet-d3a7c28ac7ea9a68a024d89cf39f1f6502b0a900.zip
Fixing #386.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1974 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--lib/puppet/transaction.rb2
-rwxr-xr-xtest/other/transactions.rb9
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/puppet/transaction.rb b/lib/puppet/transaction.rb
index a7862aea2..d115fbfe7 100644
--- a/lib/puppet/transaction.rb
+++ b/lib/puppet/transaction.rb
@@ -159,6 +159,7 @@ class Transaction
if children = resource.eval_generate
copy_relationships(resource, children)
@generated += children
+ children.each { |child| child.finish }
return children
end
end
@@ -313,6 +314,7 @@ class Transaction
@resources.add_vertex!(res)
newlist << res
@generated << res
+ res.finish
end
end
end
diff --git a/test/other/transactions.rb b/test/other/transactions.rb
index 1b9257dec..5feec5c96 100755
--- a/test/other/transactions.rb
+++ b/test/other/transactions.rb
@@ -13,9 +13,15 @@ class TestTransactions < Test::Unit::TestCase
include PuppetTest::Support::Resources
def mkgenerator(&block)
+ $finished = []
+ cleanup { $finished = nil }
+
# Create a bogus type that generates new instances with shorter
type = Puppet::Type.newtype(:generator) do
newparam(:name, :namevar => true)
+ def finish
+ $finished << self.name
+ end
end
if block
type.class_eval(&block)
@@ -590,6 +596,7 @@ class TestTransactions < Test::Unit::TestCase
%w{ya ra y r}.each do |name|
assert(trans.resources.vertex?(Puppet::Type.type(:generator)[name]),
"Generated %s was not a vertex" % name)
+ assert($finished.include?(name), "%s was not finished" % name)
end
# Now make sure that cleanup gets rid of those generated types.
@@ -649,6 +656,7 @@ class TestTransactions < Test::Unit::TestCase
assert(res, "Did not generate %s" % name)
assert(trans.relgraph.vertex?(res),
"Did not add %s to rel_graph" % name)
+ assert($finished.include?("y"), "y was not finished")
end
assert_nothing_raised("failed to eval_generate with nil response") do
@@ -664,6 +672,7 @@ class TestTransactions < Test::Unit::TestCase
assert(ra, "Did not generate ra")
assert(trans.relgraph.vertex?(ra),
"Did not add ra to rel_graph" % name)
+ assert($finished.include?("ra"), "y was not finished")
# Now make sure this generated resource has the same relationships as
# the generating resource