aboutsummaryrefslogtreecommitdiff
path: root/uploader
diff options
context:
space:
mode:
Diffstat (limited to 'uploader')
-rw-r--r--uploader/phenotypes/views.py34
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()