def commit_object(self): """Commit the row. This method also calls pre-and post-commit signals and handles failures. """ if self.block_converter.converter.dry_run or self.ignore: return try: modified_objects = get_modified_objects(db.session) import_event = log_event(db.session, None) cache_utils.update_memcache_before_commit( self.block_converter, modified_objects, self.block_converter.CACHE_EXPIRY_IMPORT, ) try: self.send_before_commit_signals(import_event) except StatusValidationError as exp: status_alias = self.headers.get("status", {}).get("display_name") self.add_error(errors.VALIDATION_ERROR, column_name=status_alias, message=exp.message) db.session.commit() self.block_converter._store_revision_ids(import_event) cache_utils.update_memcache_after_commit(self.block_converter) update_snapshot_index(db.session, modified_objects) except exc.SQLAlchemyError as err: db.session.rollback() logger.exception("Import failed with: %s", err.message) self.block_converter.add_errors(errors.UNKNOWN_ERROR, line=self.offset + 2) else: self.send_post_commit_signals(event=import_event)
def save_import(self): """Commit all changes in the session and update memcache.""" try: modified_objects = get_modified_objects(db.session) import_event = log_event(db.session, None) cache_utils.update_memcache_before_commit(self, modified_objects, CACHE_EXPIRY_IMPORT) for row_converter in self.row_converters: try: row_converter.send_before_commit_signals(import_event) except StatusValidationError as exp: status_alias = row_converter.headers.get( "status", {}).get("display_name") row_converter.add_error(errors.VALIDATION_ERROR, column_name=status_alias, message=exp.message) db.session.commit() self._store_revision_ids(import_event) cache_utils.update_memcache_after_commit(self) update_snapshot_index(db.session, modified_objects) return import_event except exc.SQLAlchemyError as err: db.session.rollback() logger.exception("Import failed with: %s", err.message) self.add_errors(errors.UNKNOWN_ERROR, line=self.offset + 2)
def save_import(self): """Commit all changes in the session and update memcache.""" try: modified_objects = get_modified_objects(db.session) import_event = log_event(db.session, None) update_memcache_before_commit( self, modified_objects, CACHE_EXPIRY_IMPORT) db.session.commit() update_memcache_after_commit(self) update_snapshot_index(db.session, modified_objects) return import_event except exc.SQLAlchemyError as err: db.session.rollback() logger.exception("Import failed with: %s", err.message) self.add_errors(errors.UNKNOWN_ERROR, line=self.offset + 2)
def delete_relationship(self, relationship): """Send post deletion signals.""" db.session.delete(relationship) signals.Restful.model_deleted.send( models.Relationship, obj=relationship, service=self) modified_objects = services_common.get_modified_objects(db.session) event = log_event.log_event(db.session, relationship) cache_utils.update_memcache_before_commit( self.request, modified_objects, services_common.CACHE_EXPIRY_COLLECTION) db.session.flush() services_common.update_snapshot_index(modified_objects) cache_utils.update_memcache_after_commit(flask.request) signals.Restful.model_deleted_after_commit.send( models.Relationship, obj=relationship, service=self, event=event) services_common.send_event_job(event)