Unverified Commit ebf8dcd2 authored by mvdbeek's avatar mvdbeek
Browse files

List all info level failure reasons

parent f450cf58
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -78,6 +78,21 @@ class FailureReason(str, Enum):
    unexpected_failure = "unexpected_failure"


# The reasons below are attached to the invocation and user-actionable.
# Not included are `unexpected_failure` and `expression_evaluation_failed`.
# If expression evaluation fails we're not attaching the templated
# expression to the invocation, as it could contain secrets.
# If the failure reason is not in `FAILURE_REASONS_EXPECTED` we should
# log an exception so admins can debug and/or submit bug reports.
FAILURE_REASONS_EXPECTED = (
    FailureReason.dataset_failed,
    FailureReason.collection_failed,
    FailureReason.job_failed,
    FailureReason.output_not_found,
    FailureReason.when_not_boolean,
)


class CancelReason(str, Enum):
    """Possible reasons for a cancelled workflow."""

+2 −4
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ from galaxy.model.base import (
)
from galaxy.schema.invocation import (
    CancelReason,
    FAILURE_REASONS_EXPECTED,
    FailureReason,
    InvocationCancellationHistoryDeleted,
    InvocationFailureCollectionFailed,
@@ -252,10 +253,7 @@ class WorkflowInvoker:
                self.progress.mark_step_outputs_delayed(step, why=de.why)
            except Exception as e:
                log_function = log.exception
                if isinstance(e, modules.FailWorkflowEvaluation) and e.why.reason not in (
                    "unexpected_failure",
                    "expression_evaluation_failed",
                ):
                if isinstance(e, modules.FailWorkflowEvaluation) and e.why.reason in FAILURE_REASONS_EXPECTED:
                    log_function = log.info
                log_function(
                    "Failed to schedule %s for %s, problem occurred on %s.",