From 120a66e7c7a934b0ed6c06a17a3384e40e8e264e Mon Sep 17 00:00:00 2001 From: chausman <chausman@nrao.edu> Date: Mon, 20 May 2024 10:53:17 -0600 Subject: [PATCH] fix messaging and state setting for restarted and iteration limited workflows --- .../workflow/services/workflow_service.py | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/shared/workspaces/workspaces/workflow/services/workflow_service.py b/shared/workspaces/workspaces/workflow/services/workflow_service.py index c2658874d..a972390c8 100644 --- a/shared/workspaces/workspaces/workflow/services/workflow_service.py +++ b/shared/workspaces/workspaces/workflow/services/workflow_service.py @@ -991,7 +991,7 @@ class WorkflowMessageHandler: request.htcondor_iterations = request.htcondor_iterations + 1 if request.htcondor_iterations > self.ITERATION_LIMIT: - status = WorkflowRequestState.Error + status = WorkflowRequestState.Error.name user_message = ( f"Found possible infinite rescheduling loop in " f"request #{request.workflow_request_id}, HTCondor iteration " @@ -1000,6 +1000,7 @@ class WorkflowMessageHandler: logger.error(user_message) url = self.url + f"/workflows/requests/{request.workflow_request_id}/abort" requests.post(url) + self._post_workflow_cleanup(message, request, "failed") else: status = WorkflowRequestState.Running.name user_message = ( @@ -1009,15 +1010,16 @@ class WorkflowMessageHandler: ) logger.warning(user_message) - # update UI - iterations_msg = WorkflowMessageArchitect( - request=request, - json_payload={ - "htcondor_iterations": request.htcondor_iterations, - "user_warning_message": user_message, - }, - ).compose_message("update_wf_metadata") - self.messenger.send_message(**iterations_msg) + if request.controller == "WS": + # update UI, but don't try sending for externally initiated workflows + iterations_msg = WorkflowMessageArchitect( + request=request, + json_payload={ + "htcondor_iterations": request.htcondor_iterations, + "user_warning_message": user_message, + }, + ).compose_message("update_wf_metadata") + self.messenger.send_message(**iterations_msg) elif message["type"] == "workflow-complete": request = self.info.refresh_request(request) -- GitLab