Example #1
0
 def handle_exception(cls, meta, collection_id, exception):
     if isinstance(exception, SQLAlchemyError):
         log.exception(exception)
         return
     (error_type, error_message, error_details) = sys.exc_info()
     if error_type is not None:
         error_message = unicode(error_message)
         error_details = traceback.format_exc()
         log.info(error_details)
     else:
         error_message = unicode(exception)
     error_type = exception.__class__.__name__
     log.warn('Error [%s]: %s', error_type, error_message)
     try:
         db.session.rollback()
         db.session.close()
         document = Document.by_meta(collection_id, meta)
         document.type = Document.TYPE_OTHER
         document.status = Document.STATUS_FAIL
         document.error_type = error_type
         document.error_message = error_message
         document.error_details = error_details
         db.session.add(document)
         db.session.commit()
         index_document(document)
     except Exception as ex:
         log.exception(ex)
Example #2
0
 def create_document(self, meta, type=None):
     document = Document.by_meta(self.collection_id, meta)
     document.status = Document.STATUS_SUCCESS
     document.type = type or self.DOCUMENT_TYPE
     db.session.add(document)
     db.session.flush()
     return document