NLeSC / cwl-compute-service-api

API definition for generic compute service of workflows (most likely CWL workflows)
0 stars 0 forks source link

Workflow results #2

Closed LourensVeen closed 8 years ago

LourensVeen commented 8 years ago

According to the CWL spec, workflows can end in either success, temporaryFailure, or permanentFailure. We now have Waiting, Running, Success, Canceled, TemporaryFailure, Failed, and SystemError. Those should be reconciled somehow.

LourensVeen commented 8 years ago

I think we need to know what these things really mean first. It seems that there are four things here: the state of the workflow execution, the result of the workflow execution, the reason for failure, and whether it makes sense to retry the job unchanged:

State

Result

Reason

Run again

CWL specifies that permanentFailure is returned for e.g. invalid expressions in the workflow document. How to interpret the return value of a command line tool can be specified by the creator of the workflow. So I think if we're using CWL for the workflows, then we need at least Success, PermanentFailure and TemporaryFailure as possibilities, otherwise we'd be incompatible with some workflows. If the job ends due to some external circumstance, then we can have additional error messages. And we'd like to combine things into a single list.

So that leads to

Which can then be simplified to

So I propose replacing Failure with PermanentFailure, and using the above semantics to determine when to return what.

LourensVeen commented 8 years ago

Oh by the way, Cancelled with double-l seems to be the common spelling :-).

LourensVeen commented 8 years ago

Slightly better meanings:

How's this?

nielsdrost commented 8 years ago

Fixed with fc531a74a04f7a8943079b9ffcb1454c9b01ac1e