From 82f69025dea812c58a8a69fb3023e723483e6f86 Mon Sep 17 00:00:00 2001 From: Peter Wilton Date: Tue, 5 Jan 2021 11:39:02 -0600 Subject: [PATCH 1/3] First attempt at fixing DB error propagation --- services/metadata_service/api/artifact.py | 27 +++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/services/metadata_service/api/artifact.py b/services/metadata_service/api/artifact.py index f7b5aed2..c59bd198 100644 --- a/services/metadata_service/api/artifact.py +++ b/services/metadata_service/api/artifact.py @@ -136,10 +136,13 @@ async def get_artifacts_by_task(self, request): flow_name, run_number, step_name, task_id ) - filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) + if artifacts.response_code == 200: + body = ArtificatsApi._filter_artifacts_by_attempt_id( + artifacts.body) + else: + body = artifacts.body return web.Response( - status=artifacts.response_code, body=json.dumps(filtered_body) + status=artifacts.response_code, body=json.dumps(body) ) async def get_artifacts_by_step(self, request): @@ -180,10 +183,13 @@ async def get_artifacts_by_step(self, request): flow_name, run_number, step_name ) - filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) + if artifacts.response_code == 200: + body = ArtificatsApi._filter_artifacts_by_attempt_id( + artifacts.body) + else: + body = artifacts.body return web.Response( - status=artifacts.response_code, body=json.dumps(filtered_body) + status=artifacts.response_code, body=json.dumps(body) ) async def get_artifacts_by_run(self, request): @@ -215,10 +221,13 @@ async def get_artifacts_by_run(self, request): run_number = request.match_info.get("run_number") artifacts = await self._async_table.get_artifacts_in_runs(flow_name, run_number) - filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) + if artifacts.response_code == 200: + body = ArtificatsApi._filter_artifacts_by_attempt_id( + artifacts.body) + else: + body = artifacts.body return web.Response( - status=artifacts.response_code, body=json.dumps(filtered_body) + status=artifacts.response_code, body=json.dumps(body) ) async def create_artifacts(self, request): From d967eab7121669d8cb05f9ed373f393bcd96f256 Mon Sep 17 00:00:00 2001 From: Peter Wilton Date: Tue, 5 Jan 2021 11:39:11 -0600 Subject: [PATCH 2/3] Revert "First attempt at fixing DB error propagation" This reverts commit 82f69025dea812c58a8a69fb3023e723483e6f86. --- services/metadata_service/api/artifact.py | 27 ++++++++--------------- 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/services/metadata_service/api/artifact.py b/services/metadata_service/api/artifact.py index c59bd198..f7b5aed2 100644 --- a/services/metadata_service/api/artifact.py +++ b/services/metadata_service/api/artifact.py @@ -136,13 +136,10 @@ async def get_artifacts_by_task(self, request): flow_name, run_number, step_name, task_id ) - if artifacts.response_code == 200: - body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) - else: - body = artifacts.body + filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( + artifacts.body) return web.Response( - status=artifacts.response_code, body=json.dumps(body) + status=artifacts.response_code, body=json.dumps(filtered_body) ) async def get_artifacts_by_step(self, request): @@ -183,13 +180,10 @@ async def get_artifacts_by_step(self, request): flow_name, run_number, step_name ) - if artifacts.response_code == 200: - body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) - else: - body = artifacts.body + filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( + artifacts.body) return web.Response( - status=artifacts.response_code, body=json.dumps(body) + status=artifacts.response_code, body=json.dumps(filtered_body) ) async def get_artifacts_by_run(self, request): @@ -221,13 +215,10 @@ async def get_artifacts_by_run(self, request): run_number = request.match_info.get("run_number") artifacts = await self._async_table.get_artifacts_in_runs(flow_name, run_number) - if artifacts.response_code == 200: - body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) - else: - body = artifacts.body + filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( + artifacts.body) return web.Response( - status=artifacts.response_code, body=json.dumps(body) + status=artifacts.response_code, body=json.dumps(filtered_body) ) async def create_artifacts(self, request): From 456540d722894b09963b8a8b2363abba8a7a9b0f Mon Sep 17 00:00:00 2001 From: Peter Wilton Date: Tue, 5 Jan 2021 11:42:41 -0600 Subject: [PATCH 3/3] Second version of fixing DB response --- services/metadata_service/api/artifact.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/metadata_service/api/artifact.py b/services/metadata_service/api/artifact.py index f7b5aed2..22977596 100644 --- a/services/metadata_service/api/artifact.py +++ b/services/metadata_service/api/artifact.py @@ -137,7 +137,7 @@ async def get_artifacts_by_task(self, request): ) filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) + artifacts) return web.Response( status=artifacts.response_code, body=json.dumps(filtered_body) ) @@ -181,7 +181,7 @@ async def get_artifacts_by_step(self, request): ) filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) + artifacts) return web.Response( status=artifacts.response_code, body=json.dumps(filtered_body) ) @@ -216,7 +216,7 @@ async def get_artifacts_by_run(self, request): artifacts = await self._async_table.get_artifacts_in_runs(flow_name, run_number) filtered_body = ArtificatsApi._filter_artifacts_by_attempt_id( - artifacts.body) + artifacts) return web.Response( status=artifacts.response_code, body=json.dumps(filtered_body) ) @@ -352,9 +352,11 @@ def _get_latest_attempt_id(artifacts): @staticmethod def _filter_artifacts_by_attempt_id(artifacts): - attempt_id = ArtificatsApi._get_latest_attempt_id(artifacts) + if artifacts.response_code != 200: + return artifacts.body + attempt_id = ArtificatsApi._get_latest_attempt_id(artifacts.body) result = [] - for artifact in artifacts: + for artifact in artifacts.body: if artifact['attempt_id'] == attempt_id: result.append(artifact)