diff --git a/app/auth/routes.py b/app/auth/routes.py index d14d03d7c05677fc6e3526a7496bc430da03c997..5cce4f00c988b1eeac666b9c15080fbc918f0333 100644 --- a/app/auth/routes.py +++ b/app/auth/routes.py @@ -1,5 +1,6 @@ from datetime import datetime -from flask import abort, flash, redirect, render_template, request, url_for +from flask import (abort, current_app, flash, redirect, render_template, + request, url_for) from flask_login import current_user, login_user, login_required, logout_user from sqlalchemy import or_ from . import bp @@ -8,7 +9,6 @@ from .forms import (LoginForm, ResetPasswordForm, ResetPasswordRequestForm, from .. import db from ..email import create_message, send from ..models import User -import logging import os @@ -68,7 +68,9 @@ def register(): try: os.makedirs(user.path) except OSError: - logging.error('Make dir {} led to an OSError!'.format(user.path)) + current_app.logger.error( + 'Make dir {} led to an OSError!'.format(user.path) + ) db.session.delete(user) db.session.commit() abort(500) diff --git a/app/corpora/routes.py b/app/corpora/routes.py index 40ada4bdaf825e63ac6743729c418f10427db3cb..eff1be5587d454a8ba07273a090453e788474575 100644 --- a/app/corpora/routes.py +++ b/app/corpora/routes.py @@ -1,4 +1,4 @@ -from flask import (abort, flash, make_response, redirect, request, +from flask import (abort, current_app, flash, make_response, redirect, request, render_template, url_for, send_from_directory) from flask_login import current_user, login_required from . import bp @@ -11,7 +11,6 @@ from jsonschema import validate from .. import db from ..models import Corpus, CorpusFile, QueryResult import json -import logging import os import shutil import glob @@ -34,7 +33,9 @@ def add_corpus(): try: os.makedirs(corpus.path) except OSError: - logging.error('Make dir {} led to an OSError!'.format(corpus.path)) + current_app.logger.error( + 'Make dir {} led to an OSError!'.format(corpus.path) + ) db.session.rollback() abort(500) else: @@ -61,7 +62,9 @@ def import_corpus(): try: os.makedirs(corpus.path) except OSError: - logging.error('Make dir {} led to an OSError!'.format(corpus.path)) + current_app.logger.error( + 'Make dir {} led to an OSError!'.format(corpus.path) + ) db.session.rollback() flash('Internal Server Error', 'error') return make_response( @@ -318,7 +321,9 @@ def add_query_result(): try: os.makedirs(os.path.dirname(query_result.path)) except OSError: - logging.error('Make dir {} led to an OSError!'.format(query_result.path)) # noqa + current_app.logger.error( + 'Make dir {} led to an OSError!'.format(query_result.path) + ) db.session.rollback() flash('Internal Server Error', 'error') return make_response( diff --git a/app/models.py b/app/models.py index 5f79cb5934cdc756d20473db187a0c520710b473..91a812b6ba2308a679a64d47c665024eb433d496 100644 --- a/app/models.py +++ b/app/models.py @@ -7,7 +7,6 @@ from werkzeug.security import generate_password_hash, check_password_hash import xml.etree.ElementTree as ET from . import db, login import base64 -import logging import os import shutil @@ -530,7 +529,9 @@ class CorpusFile(db.Model): try: os.remove(self.path) except OSError: - logging.error('Removing {} led to an OSError!'.format(self.path)) + current_app.logger.error( + 'Removing {} led to an OSError!'.format(self.path) + ) pass db.session.delete(self) self.corpus.status = 'unprepared' diff --git a/app/services/routes.py b/app/services/routes.py index b69c4e100ff91bfb9629c674e45155719bd17127..fc7b0aa7966b243156f6305d80c44228443a4756 100644 --- a/app/services/routes.py +++ b/app/services/routes.py @@ -1,5 +1,5 @@ -from flask import (abort, flash, make_response, render_template, request, - url_for) +from flask import (abort, current_app, flash, make_response, render_template, + request, url_for) from flask_login import current_user, login_required from werkzeug.utils import secure_filename from . import bp @@ -8,7 +8,6 @@ from .. import db from .forms import AddJobForms from ..models import Job, JobInput import json -import logging import os @@ -56,7 +55,9 @@ def service(service): try: os.makedirs(job.path) except OSError: - logging.error('Make dir {} led to an OSError!'.format(job.path)) + current_app.logger.error( + 'Make dir {} led to an OSError!'.format(job.path) + ) db.session.rollback() flash('Internal Server Error', 'error') return make_response( diff --git a/app/tasks/corpus_utils.py b/app/tasks/corpus_utils.py index 3c7aeaa737b034aa525084abc068f1ab10d0cb96..5bee8848b48dea53b57fdcbada487d07f2a6fbf4 100644 --- a/app/tasks/corpus_utils.py +++ b/app/tasks/corpus_utils.py @@ -1,7 +1,6 @@ from flask import current_app from ..models import Corpus import docker -import logging import os import shutil @@ -78,7 +77,7 @@ class CheckCorporaMixin: restart_policy=restart_policy ) except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Create "{}" service raised '.format(name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) @@ -91,20 +90,20 @@ class CheckCorporaMixin: try: service = self.docker.services.get(service_name) except docker.errors.NotFound: - logging.error( + current_app.logger.error( 'Get "{}" service raised '.format(service_name) + '"docker.errors.NotFound" The service does not exist. ' + '(corpus.status: {} -> failed)'.format(corpus.status) ) corpus.status = 'failed' except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Get "{}" service raised '.format(service_name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) ) except docker.errors.InvalidVersion: - logging.error( + current_app.logger.error( 'Get "{}" service raised '.format(service_name) + '"docker.errors.InvalidVersion" One of the arguments is ' + 'not supported with the current API version.' @@ -121,7 +120,7 @@ class CheckCorporaMixin: try: service.remove() except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Remove "{}" service raised '.format(service_name) + '"docker.errors.APIError" The server returned an error. ' # noqa + 'Details: {}'.format(e) @@ -162,7 +161,7 @@ class CheckCorporaMixin: except docker.errors.NotFound: pass except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Get "{}" container raised '.format(name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) @@ -172,7 +171,7 @@ class CheckCorporaMixin: try: container.remove(force=True) except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Remove "{}" container raised '.format(name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) @@ -184,21 +183,21 @@ class CheckCorporaMixin: network=network) except docker.errors.ContainerError: # This case should not occur, because detach is True. - logging.error( + current_app.logger.error( 'Run "{}" container raised '.format(name) + '"docker.errors.ContainerError" The container exits with a ' + 'non-zero exit code and detach is False.' ) corpus.status = 'failed' except docker.errors.ImageNotFound: - logging.error( + current_app.logger.error( 'Run "{}" container raised '.format(name) + '"docker.errors.ImageNotFound" The specified image does not ' + 'exist.' ) corpus.status = 'failed' except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Run "{}" container raised '.format(name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) @@ -211,10 +210,12 @@ class CheckCorporaMixin: try: self.docker.containers.get(container_name) except docker.errors.NotFound: - logging.error('Could not find "{}" but the corpus state is "analysing".') # noqa + current_app.logger.error( + 'Could not find "{}" but the corpus state is "analysing".' + ) corpus.status = 'prepared' except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Get "{}" container raised '.format(container_name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) @@ -228,7 +229,7 @@ class CheckCorporaMixin: except docker.errors.NotFound: pass except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Get "{}" container raised '.format(container_name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) @@ -238,7 +239,7 @@ class CheckCorporaMixin: try: container.remove(force=True) except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Remove "{}" container raised '.format(container_name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) diff --git a/app/tasks/job_utils.py b/app/tasks/job_utils.py index 2c374d39ce89e0b57acc56d88bbcb6c2c142e861..47424a812dee95369e4057c31e8f300874bc102d 100644 --- a/app/tasks/job_utils.py +++ b/app/tasks/job_utils.py @@ -5,7 +5,6 @@ from .. import db from ..models import Job, JobResult import docker import json -import logging import os import shutil @@ -96,7 +95,7 @@ class CheckJobsMixin: restart_policy=restart_policy ) except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Create "{}" service raised '.format(name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) @@ -110,21 +109,21 @@ class CheckJobsMixin: try: service = self.docker.services.get(service_name) except docker.errors.NotFound: - logging.error( + current_app.logger.error( 'Get "{}" service raised '.format(service_name) + '"docker.errors.NotFound" The service does not exist. ' + '(job.status: {} -> failed)'.format(job.status) ) job.status = 'failed' except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Get "{}" service raised '.format(service_name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) ) return except docker.errors.InvalidVersion: - logging.error( + current_app.logger.error( 'Get "{}" service raised '.format(service_name) + '"docker.errors.InvalidVersion" One of the arguments is ' + 'not supported with the current API version.' @@ -141,7 +140,7 @@ class CheckJobsMixin: try: service.remove() except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Remove "{}" service raised '.format(service_name) + '"docker.errors.APIError" The server returned an error. ' # noqa + 'Details: {}'.format(e) @@ -167,14 +166,14 @@ class CheckJobsMixin: except docker.errors.NotFound: job.status = 'canceled' except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Get "{}" service raised '.format(service_name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) ) return except docker.errors.InvalidVersion: - logging.error( + current_app.logger.error( 'Get "{}" service raised '.format(service_name) + '"docker.errors.InvalidVersion" One of the arguments is ' + 'not supported with the current API version.' @@ -184,7 +183,7 @@ class CheckJobsMixin: try: service.update(mounts=None) except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Update "{}" service raised '.format(service_name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e) @@ -193,7 +192,7 @@ class CheckJobsMixin: try: service.remove() except docker.errors.APIError as e: - logging.error( + current_app.logger.error( 'Remove "{}" service raised '.format(service_name) + '"docker.errors.APIError" The server returned an error. ' + 'Details: {}'.format(e)