mark workflow run failed if parameter creation failed (#1031)

This commit is contained in:
Shuchang Zheng
2024-10-24 09:03:38 -07:00
committed by GitHub
parent 1b635d6a79
commit 4d87b83b59

View File

@@ -121,30 +121,34 @@ class WorkflowService:
# Create all the workflow run parameters, AWSSecretParameter won't have workflow run parameters created. # Create all the workflow run parameters, AWSSecretParameter won't have workflow run parameters created.
all_workflow_parameters = await self.get_workflow_parameters(workflow_id=workflow.workflow_id) all_workflow_parameters = await self.get_workflow_parameters(workflow_id=workflow.workflow_id)
workflow_run_parameters = [] try:
for workflow_parameter in all_workflow_parameters: for workflow_parameter in all_workflow_parameters:
if workflow_request.data and workflow_parameter.key in workflow_request.data: if workflow_request.data and workflow_parameter.key in workflow_request.data:
request_body_value = workflow_request.data[workflow_parameter.key] request_body_value = workflow_request.data[workflow_parameter.key]
workflow_run_parameter = await self.create_workflow_run_parameter( await self.create_workflow_run_parameter(
workflow_run_id=workflow_run.workflow_run_id, workflow_run_id=workflow_run.workflow_run_id,
workflow_parameter=workflow_parameter, workflow_parameter=workflow_parameter,
value=request_body_value, value=request_body_value,
) )
elif workflow_parameter.default_value is not None: elif workflow_parameter.default_value is not None:
workflow_run_parameter = await self.create_workflow_run_parameter( await self.create_workflow_run_parameter(
workflow_run_id=workflow_run.workflow_run_id, workflow_run_id=workflow_run.workflow_run_id,
workflow_parameter=workflow_parameter, workflow_parameter=workflow_parameter,
value=workflow_parameter.default_value, value=workflow_parameter.default_value,
) )
else: else:
await self.mark_workflow_run_as_failed(workflow_run_id=workflow_run.workflow_run_id) raise MissingValueForParameter(
raise MissingValueForParameter( parameter_key=workflow_parameter.key,
parameter_key=workflow_parameter.key, workflow_id=workflow.workflow_id,
workflow_id=workflow.workflow_id, workflow_run_id=workflow_run.workflow_run_id,
workflow_run_id=workflow_run.workflow_run_id, )
) except Exception as e:
LOG.exception(
workflow_run_parameters.append(workflow_run_parameter) f"Error while setting up workflow run {workflow_run.workflow_run_id}",
workflow_run_id=workflow_run.workflow_run_id,
)
await self.mark_workflow_run_as_failed(workflow_run_id=workflow_run.workflow_run_id)
raise e
return workflow_run return workflow_run