diff options
| author | Frederick Muriuki Muriithi | 2026-01-13 10:54:11 -0600 |
|---|---|---|
| committer | Frederick Muriuki Muriithi | 2026-01-13 10:55:13 -0600 |
| commit | 9d117b8dd7bf26cfeeec8c28be0ee40883ff36cf (patch) | |
| tree | 2a877bf94cffec5d883beb98d2e31ddc7e67049c /uploader/samples | |
| parent | 3ab8cf02cf072f83e377e5509967a46c4ad42c2c (diff) | |
| download | gn-uploader-9d117b8dd7bf26cfeeec8c28be0ee40883ff36cf.tar.gz | |
Diffstat (limited to 'uploader/samples')
| -rw-r--r-- | uploader/samples/views.py | 77 |
1 files changed, 3 insertions, 74 deletions
diff --git a/uploader/samples/views.py b/uploader/samples/views.py index 8555588..f318bf0 100644 --- a/uploader/samples/views.py +++ b/uploader/samples/views.py @@ -12,9 +12,8 @@ from flask import (flash, current_app as app) from gn_libs import sqlite3 -from gn_libs import jobs as gnlibsjobs +from gn_libs import jobs as jobs -from uploader import jobs from uploader import session from uploader.files import save_file from uploader.flask_extensions import url_for @@ -160,8 +159,8 @@ def upload_samples(species_id: int, population_id: int):#pylint: disable=[too-ma _jobs_db = app.config["ASYNCHRONOUS_JOBS_SQLITE_DB"] with sqlite3.connection(_jobs_db) as conn: - job = gnlibsjobs.launch_job( - gnlibsjobs.initialise_job( + job = jobs.launch_job( + jobs.initialise_job( conn, str(uuid.uuid4()), [ @@ -184,73 +183,3 @@ def upload_samples(species_id: int, population_id: int):#pylint: disable=[too-ma app.logger.getEffectiveLevel()).lower()) return redirect( url_for("background-jobs.job_status", job_id=job["job_id"])) - - -@samplesbp.route("<int:species_id>/populations/<int:population_id>/" - "upload-samples/status/<uuid:job_id>", - methods=["GET"]) -@require_login -@with_population(species_redirect_uri="species.populations.samples.index", - redirect_uri="species.populations.samples.select_population") -def upload_status(species: dict, population: dict, job_id: uuid.UUID, **kwargs):# pylint: disable=[unused-argument] - """Check on the status of a samples upload job.""" - job = with_redis_connection(lambda rconn: jobs.job( - rconn, jobs.jobsnamespace(), job_id)) - if job: - status = job["status"] - if status == "success": - return render_template("samples/upload-success.html", - job=job, - species=species, - population=population,) - - if status == "error": - return redirect(url_for( - "species.populations.samples.upload_failure", - species_id=species["SpeciesId"], - population_id=population["Id"], - job_id=job_id)) - - error_filename = Path(jobs.error_filename( - job_id, f"{app.config['UPLOAD_FOLDER']}/job_errors")) - if error_filename.exists(): - stat = os.stat(error_filename) - if stat.st_size > 0: - return redirect(url_for( - "samples.upload_failure", job_id=job_id)) - - return render_template("samples/upload-progress.html", - species=species, - population=population, - job=job) # maybe also handle this? - - return render_template("no_such_job.html", - job_id=job_id, - species=species, - population=population), 400 - - -@samplesbp.route("<int:species_id>/populations/<int:population_id>/" - "upload-samples/failure/<uuid:job_id>", - methods=["GET"]) -@require_login -@with_population(species_redirect_uri="species.populations.samples.index", - redirect_uri="species.populations.samples.select_population") -def upload_failure(species: dict, population: dict, job_id: uuid.UUID, **kwargs):# pylint: disable=[unused-argument] - """Display the errors of the samples upload failure.""" - job = with_redis_connection(lambda rconn: jobs.job( - rconn, jobs.jobsnamespace(), job_id)) - if not bool(job): - return render_template("no_such_job.html", job_id=job_id), 400 - - error_filename = Path(jobs.error_filename( - job_id, f"{app.config['UPLOAD_FOLDER']}/job_errors")) - if error_filename.exists(): - stat = os.stat(error_filename) - if stat.st_size > 0: - return render_template("worker_failure.html", job_id=job_id) - - return render_template("samples/upload-failure.html", - species=species, - population=population, - job=job) |
