def abort(self): try: for fn in self.on_before_abort: fn() # hooks for dbrow in self.tracking: row_handler = getattr(dbrow, "_on_before_abort", None) if row_handler: row_handler() for dbrow in self.tracking: row_handler = getattr(dbrow, "_on_abort", None) if row_handler: row_handler() if self.in_transaction: M.trollback() self.in_transaction = False for dbrow in self.tracking: row_handler = getattr(dbrow, "_on_after_abort", None) if row_handler: row_handler() for fn in self.on_after_abort: fn() # hooks finally: self.tracking = []
def commit(self): try: try: for fn in self.on_before_commit: fn() # hooks for dbrow in self.tracking: row_handler = getattr(dbrow, "_on_before_commit", None) if row_handler: row_handler() for dbrow in self.tracking: dbrow._on_commit() for dbrow in self.tracking: row_handler = getattr(dbrow, "_on_after_commit", None) if row_handler: row_handler() except Exception, e: M.trollback() raise if self.in_transaction: M.tcommit() for fn in self.on_after_commit: fn() # hooks