summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/transaction.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/puppet/transaction.rb b/lib/puppet/transaction.rb
index 9e5a0fe30..2e726df0b 100644
--- a/lib/puppet/transaction.rb
+++ b/lib/puppet/transaction.rb
@@ -113,7 +113,7 @@ class Transaction
#---------------------------------------------------------------
def rollback
- @changes.each { |change|
+ events = @changes.collect { |change|
if change.is_a?(Puppet::StateChange)
next unless change.run
#change.transaction = self
@@ -135,6 +135,11 @@ class Transaction
else
raise "Transactions cannot handle objects of type %s" % child.class
end
+ }.flatten.reject { |e| e.nil? }
+
+ events.each { |event|
+ object = event.source
+ object.propagate(event)
}
end
#---------------------------------------------------------------