527: def rollback
528: @targets.clear
529: @triggered.clear
530: allevents = @changes.reverse.collect { |change|
531:
532: unless change.changed
533: Puppet.debug "%s was not changed" % change.to_s
534: next
535: end
536: begin
537: events = change.backward
538: rescue => detail
539: Puppet.err("%s rollback failed: %s" % [change,detail])
540: if Puppet[:trace]
541: puts detail.backtrace
542: end
543: next
544:
545:
546:
547:
548:
549:
550: end
551:
552:
553: relationship_graph.matching_edges(events).each do |edge|
554: @targets[edge.target] << edge
555: end
556:
557:
558:
559:
560: trigger(change.property.resource)
561:
562:
563: events
564: }.flatten.reject { |e| e.nil? }
565: end