From c9e231c5fcbc01d00ee5cdd4458ece8fcaf6d39c Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Fri, 20 May 2022 09:25:28 +0300 Subject: Handle errors Implement code to handle errors in the processing of files. --- qc_app/parse.py | 16 ++++++---------- qc_app/templates/parse_failure.html | 26 ++++++++++++++++++++++++++ qc_app/templates/worker_failure.html | 24 ++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 qc_app/templates/parse_failure.html create mode 100644 qc_app/templates/worker_failure.html diff --git a/qc_app/parse.py b/qc_app/parse.py index d2fa030..c97f078 100644 --- a/qc_app/parse.py +++ b/qc_app/parse.py @@ -109,21 +109,17 @@ def results(job_id: str): def fail(job_id: str): """Handle parsing failure""" with Redis.from_url(app.config["REDIS_URL"], decode_responses=True) as rconn: - old_job = jobs.job(rconn, job_id) + job = jobs.job(rconn, job_id) - if old_job: + if job: error_filename = jobs.error_filename( job_id, f"{app.config['UPLOAD_FOLDER']}/job_errors") if os.path.exists(error_filename): stat = os.stat(error_filename) if stat.st_size > 0: - with open(error_filename) as errorfile: - return errorfile.read() - - # job_id = old_job["job_id"] - progress = old_job["progress"] - status = old_job["status"] - results = old_job["results"] - filename = old_job["filename"] + return render_template( + "worker_failure.html", job_id=job_id) + + return render_template("parse_failure.html", job=job) return render_template("no_such_job.html", job_id=job_id) diff --git a/qc_app/templates/parse_failure.html b/qc_app/templates/parse_failure.html new file mode 100644 index 0000000..31f6be8 --- /dev/null +++ b/qc_app/templates/parse_failure.html @@ -0,0 +1,26 @@ +{%extends "base.html"%} + +{%block title%}Worker Failure{%endblock%} + +{%block contents%} +

Worker Failure

+ +

+ There was an error while parsing your file. +

+ +

+ Please notify the developers of this issue when you encounter it, + providing the information below. +

+ +

Debugging Information

+ + + +{%endblock%} diff --git a/qc_app/templates/worker_failure.html b/qc_app/templates/worker_failure.html new file mode 100644 index 0000000..b65b140 --- /dev/null +++ b/qc_app/templates/worker_failure.html @@ -0,0 +1,24 @@ +{%extends "base.html"%} + +{%block title%}Worker Failure{%endblock%} + +{%block contents%} +

Worker Failure

+ +

+ There was a critical failure launching the job to parse your file. + This is our fault and (probably) has nothing to do with the file you uploaded. +

+ +

+ Please notify the developers of this issue when you encounter it, + providing the link to this page, or the information below. +

+ +

Debugging Information

+ + + +{%endblock%} -- cgit v1.2.3