diff options
Diffstat (limited to 'uploader')
-rw-r--r-- | uploader/phenotypes/views.py | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/uploader/phenotypes/views.py b/uploader/phenotypes/views.py index 00ecadb..a54e1a3 100644 --- a/uploader/phenotypes/views.py +++ b/uploader/phenotypes/views.py @@ -17,7 +17,11 @@ from pymonad.either import Left from requests.models import Response from MySQLdb.cursors import DictCursor from werkzeug.utils import secure_filename + +from gn_libs import sqlite3 +from gn_libs import jobs as gnlibs_jobs from gn_libs.mysqldb import database_connection + from flask import (flash, request, url_for, @@ -622,7 +626,33 @@ def load_data_to_database( **kwargs ):# pylint: disable=[unused-argument] """Load the data from the given QC job into the database.""" - raise NotImplemented("This feature is yet to be implemented!") + jobs_db = app.config["ASYNCHRONOUS_JOBS_SQLITE_DB"] + with (Redis.from_url(app.config["REDIS_URL"], decode_responses=True) as rconn, + sqlite3.connection(jobs_db) as conn): + qc_job = jobs.job(rconn, jobs.jobsnamespace(), request.form["data-qc-job-id"]) + load_job_id = uuid.uuid4() + command = [ + sys.executable, + "-u", + "-m", + "scripts.load_phenotypes_to_db", + jobs_db, + str(load_job_id), + "--log-level", + logging.getLevelName( + app.logger.getEffectiveLevel() + ).lower() + ] + load_job = gnlibs_jobs.launch_job( + gnlibs_jobs.initialise_job(conn, + load_job_id, + command, + "load-new-phenotypes-data", + extra_meta={}), + jobs_db, + f"{app.config['UPLOAD_FOLDER']}/job_errors", + worker_manager="gn_libs.jobs.launcher") + return str(load_job) def update_phenotype_metadata(conn, metadata: dict): @@ -996,8 +1026,6 @@ def edit_upload_phenotype_data(# pylint: disable=[unused-argument] edit_file = save_file(request.files["file-upload-bulk-edit-upload"], Path(app.config["UPLOAD_FOLDER"])) - from gn_libs import jobs as gnlibs_jobs - from gn_libs import sqlite3 jobs_db = app.config["ASYNCHRONOUS_JOBS_SQLITE_DB"] with sqlite3.connection(jobs_db) as conn: job_id = uuid.uuid4() |