From 914a168dec8ed30c9dd79fc0f53cbac15b10a95c Mon Sep 17 00:00:00 2001 From: Mike Cantelon Date: Tue, 26 Mar 2024 17:48:52 -0700 Subject: [PATCH] work --- AIPscan/Aggregator/task_helpers.py | 4 ++-- AIPscan/Aggregator/tasks.py | 14 +++++++++----- AIPscan/Aggregator/tests/test_task_helpers.py | 6 +++++- AIPscan/Aggregator/tests/test_tasks.py | 6 ++++-- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/AIPscan/Aggregator/task_helpers.py b/AIPscan/Aggregator/task_helpers.py index a706d665..312cac4c 100644 --- a/AIPscan/Aggregator/task_helpers.py +++ b/AIPscan/Aggregator/task_helpers.py @@ -162,10 +162,10 @@ def write_mets(http_response, package_uuid, subdir): return download_file -def store_fetch_job_error_infomation(fetch_job_id, message): +def store_fetch_job_error_infomation(fetch_job_id, location, err): fetch_error = FetchJobError() fetch_error.fetch_job_id = fetch_job_id - fetch_error.message = message + fetch_error.message = f"{location}: {err}" db.session.add(fetch_error) db.session.commit() diff --git a/AIPscan/Aggregator/tasks.py b/AIPscan/Aggregator/tasks.py index 60499790..771ae672 100644 --- a/AIPscan/Aggregator/tasks.py +++ b/AIPscan/Aggregator/tasks.py @@ -70,7 +70,9 @@ def start_mets_task( current_location, storage_service ) except Exception as err: - store_fetch_job_error_infomation(fetch_job_id, str(err)) + store_fetch_job_error_infomation( + fetch_job_id, "create_or_update_storage_location", err + ) return @@ -79,7 +81,7 @@ def start_mets_task( origin_pipeline, storage_service ) except Exception as err: - store_fetch_job_error_infomation(fetch_job_id, str(err)) + store_fetch_job_error_infomation(fetch_job_id, "create_or_update_pipeline", err) return @@ -180,10 +182,12 @@ def workflow_coordinator( break if isinstance(package_lists_task.info, TaskError): - store_fetch_job_error_infomation(fetch_job_id, str(package_lists_task.info)) + store_fetch_job_error_infomation( + fetch_job_id, "package_lists_request", package_lists_task.info + ) # Re-raise. - raise (package_lists_task.info) + raise package_lists_task.info total_package_lists = package_lists_task.info["totalPackageLists"] @@ -341,7 +345,7 @@ def get_mets( package_list_no, ) except Exception as e: - store_fetch_job_error_infomation(fetch_job_id, str(e)) + store_fetch_job_error_infomation(fetch_job_id, "download_mets", e) return diff --git a/AIPscan/Aggregator/tests/test_task_helpers.py b/AIPscan/Aggregator/tests/test_task_helpers.py index 17438414..52aa0e03 100644 --- a/AIPscan/Aggregator/tests/test_task_helpers.py +++ b/AIPscan/Aggregator/tests/test_task_helpers.py @@ -319,7 +319,10 @@ def test_store_fetch_job_error_info(app_instance): assert fetch_job_error is None # Attempt to store fetch job error and make sure it ends up in the database - task_helpers.store_fetch_job_error_infomation(fetch_job.id, "Test") + test_exception = Exception("Test exception") + task_helpers.store_fetch_job_error_infomation( + fetch_job.id, "Test location", test_exception + ) fetch_job_error = models.FetchJobError.query.filter_by( fetch_job_id=fetch_job.id @@ -327,3 +330,4 @@ def test_store_fetch_job_error_info(app_instance): assert fetch_job_error is not None assert fetch_job_error.fetch_job_id == fetch_job.id + assert fetch_job_error.message == "Test location: Test exception" diff --git a/AIPscan/Aggregator/tests/test_tasks.py b/AIPscan/Aggregator/tests/test_tasks.py index 83fd4dce..704ca964 100644 --- a/AIPscan/Aggregator/tests/test_tasks.py +++ b/AIPscan/Aggregator/tests/test_tasks.py @@ -312,7 +312,9 @@ def test_store_fetch_job_error_during_get_mets(app_instance, tmpdir): fetch_job_error = FetchJobError.query.filter_by(fetch_job_id=fetch_job.id).first() assert fetch_job_error is not None - assert fetch_job_error.message == "Non-200 HTTP code from METS download" + assert ( + fetch_job_error.message == "download_mets: Non-200 HTTP code from METS download" + ) assert fetch_job_error.fetch_job_id == fetch_job.id @@ -446,5 +448,5 @@ class MockPackageListsRequestAsyncResult: fetch_job_error = FetchJobError.query.filter_by(fetch_job_id=fetch_job.id).first() assert fetch_job_error is not None - assert fetch_job_error.message == "Task error" + assert fetch_job_error.message == "package_lists_request: Task error" assert fetch_job_error.fetch_job_id == fetch_job.id