in packages/cdk/lib/wes_adapter/amazon_genomics/wes/adapters/BatchAdapter.py [0:0]
def batch_job_wes_state(job_status, job_status_reason) -> State:
"""
Derive WES job state from AWS Batch job description (of workflow job)
:param job_status: Job status as given by AWS Batch.
See: https://docs.aws.amazon.com/batch/latest/userguide/job_states.html
:param job_status_reason: Status reason used to distinguish CANCELED from FAILED run status for WES
See: https://docs.aws.amazon.com/batch/latest/APIReference/API_JobSummary.html
:return: WES Job status equivalent.
See: https://ga4gh.github.io/workflow-execution-service-schemas/docs/#operation/GetRunStatus
"""
#
if job_status in ("SUBMITTED", "PENDING", "RUNNABLE"):
return State.QUEUED
elif job_status == "STARTING":
return State.INITIALIZING
elif job_status == "RUNNING":
return State.RUNNING
elif job_status == "SUCCEEDED":
return State.COMPLETE
elif job_status == "FAILED":
if job_status_reason == USER_CANCELLATION_REASON:
return State.CANCELED
# TODO: detect SYSTEM_ERROR (probably, anything but "Essential container in task exited")
return State.EXECUTOR_ERROR
else:
return State.UNKNOWN