def undo_reference(self, data, handle, db_map): """ Helper method to undo a reference map entry """ try: if data is None: db_map.delete(handle, txn=self.txn) else: db_map.put(handle, data, txn=self.txn) except DBERRS, msg: self.db._log_error() raise Errors.DbError(msg)
def try_(self, *args, **kwargs): try: with BSDDBTxn(self.db.env) as txn: self.txn = self.db.txn = txn.txn status = func(self, *args, **kwargs) if not status: txn.abort() self.db.txn = None return status except DBERRS, msg: self.db._log_error() raise Errors.DbError(msg)
def undo_data(self, data, handle, db_map, emit, signal_root): """ Helper method to undo/redo the changes made """ try: if data is None: emit(signal_root + '-delete', ([handle],)) db_map.delete(handle, txn=self.txn) else: ex_data = db_map.get(handle, txn=self.txn) if ex_data: signal = signal_root + '-update' else: signal = signal_root + '-add' db_map.put(handle, data, txn=self.txn) emit(signal, ([handle],)) except DBERRS, msg: self.db._log_error() raise Errors.DbError(msg)