From a1121f92a7c99838313ec5b64e111c1c0df9ef07 Mon Sep 17 00:00:00 2001 From: kshitijrajsharma Date: Mon, 20 Nov 2023 09:00:57 +0545 Subject: [PATCH] Added folder structure scanning for hdx and enabled started status tracking for tasks --- API/api_worker.py | 7 +++++-- API/tasks.py | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/API/api_worker.py b/API/api_worker.py index d63ff99e..5ec4846d 100644 --- a/API/api_worker.py +++ b/API/api_worker.py @@ -25,6 +25,7 @@ celery.conf.task_serializer = "pickle" celery.conf.result_serializer = "pickle" celery.conf.accept_content = ["application/json", "application/x-python-serialize"] +celery.conf.task_track_started = True @celery.task(bind=True, name="process_raw_data") @@ -83,6 +84,7 @@ def process_raw_data(self, params): if use_s3_to_upload: file_transfer_obj = S3FileTransfer() upload_name = exportname if params.uuid else f"Recurring/{exportname}" + logging.error(exportname) if exportname.startswith("hotosm_project"): # TM if not params.uuid: pattern = r"(hotosm_project_)(\d+)" @@ -94,12 +96,13 @@ def process_raw_data(self, params): upload_name = f"TM/{project_number}/{exportname}" elif exportname.startswith("hotosm_"): # HDX if not params.uuid: - pattern = r"hotosm_([A-Z]{3})_(\w+)" + pattern = r"hotosm_([A-Za-z]{3})_(\w+)" match = re.match(pattern, exportname) + if match: iso3countrycode = match.group(1) if iso3countrycode: - upload_name = f"HDX/{iso3countrycode}/{exportname}" + upload_name = f"HDX/{iso3countrycode.upper()}/{exportname}" download_url = file_transfer_obj.upload( upload_file_path, diff --git a/API/tasks.py b/API/tasks.py index 1ef70a5a..03a7c903 100644 --- a/API/tasks.py +++ b/API/tasks.py @@ -50,10 +50,10 @@ def revoke_task(task_id, user: AuthUser = Depends(staff_required)): task_id (_type_): task id of raw data task Returns: - status: status of revoked task + id: id of revoked task """ - revoked_task = celery.control.revoke(task_id=task_id, terminate=True) - return JSONResponse({"id": task_id, "status": revoked_task}) + celery.control.revoke(task_id=task_id, terminate=True) + return JSONResponse({"id": task_id}) @router.get("/inspect/")