aboutsummaryrefslogtreecommitdiff
import uuid

from flask import request, Blueprint, render_template, current_app as app

from gn_libs import jobs
from gn_libs.jobs.jobs import JobNotFound
from gn_libs import sqlite3

from uploader.authorisation import require_login

background_jobs_bp = Blueprint("background-jobs", __name__)

@background_jobs_bp.route("/status/<uuid:job_id>")
@require_login
def job_status(job_id: uuid.UUID):
    """View the job status."""
    with sqlite3.connection(app.config["ASYNCHRONOUS_JOBS_SQLITE_DB"]) as conn:
        try:
            job = jobs.job(conn, job_id, fulldetails=True)
            stdout = ""
            stderr = ""
            # with (open(job["metadata"]["stdout-file"], encoding="utf-8") as stdout_file,
            #       open(job["metadata"]["stderr-file"], encoding="utf-8") as stderr_file):
            #     stdout = stdout_file.read()
            #     stderr = stderr_file.read()

            return render_template(
                f"jobs/job-status.html",
                job=job,
                stdout=stdout,
                stderr=stderr)
        except JobNotFound as jnf:
            return render_template(
                "jobs/job-not-found.html",
                job_id=job_id)