static

in maestro-common/src/main/java/com/netflix/maestro/models/Actions.java [126:227]


  static {
    WORKFLOW_INSTANCE_STATUS_TO_ACTION_MAP = new EnumMap<>(WorkflowInstance.Status.class);
    WORKFLOW_INSTANCE_STATUS_TO_ACTION_MAP.put(
        WorkflowInstance.Status.CREATED,
        Arrays.asList(WorkflowInstanceAction.STOP, WorkflowInstanceAction.KILL));
    WORKFLOW_INSTANCE_STATUS_TO_ACTION_MAP.put(
        WorkflowInstance.Status.IN_PROGRESS,
        Arrays.asList(WorkflowInstanceAction.STOP, WorkflowInstanceAction.KILL));
    WORKFLOW_INSTANCE_STATUS_TO_ACTION_MAP.put(
        WorkflowInstance.Status.PAUSED,
        Arrays.asList(WorkflowInstanceAction.STOP, WorkflowInstanceAction.KILL));
    WORKFLOW_INSTANCE_STATUS_TO_ACTION_MAP.put(
        WorkflowInstance.Status.TIMED_OUT,
        Collections.singletonList(WorkflowInstanceAction.RESTART));
    WORKFLOW_INSTANCE_STATUS_TO_ACTION_MAP.put(
        WorkflowInstance.Status.STOPPED, Collections.singletonList(WorkflowInstanceAction.RESTART));
    WORKFLOW_INSTANCE_STATUS_TO_ACTION_MAP.put(
        WorkflowInstance.Status.FAILED,
        Arrays.asList(WorkflowInstanceAction.RESTART, WorkflowInstanceAction.UNBLOCK));
    WORKFLOW_INSTANCE_STATUS_TO_ACTION_MAP.put(
        WorkflowInstance.Status.SUCCEEDED,
        Collections.singletonList(WorkflowInstanceAction.RESTART));

    STEP_INSTANCE_STATUS_TO_ACTION_MAP = new EnumMap<>(StepInstance.Status.class);
    // not support SKIP action for CREATED status because maestro_step_satisfied is uninitialized
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.CREATED,
        Arrays.asList(StepInstanceAction.PAUSE, StepInstanceAction.STOP, StepInstanceAction.KILL));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.INITIALIZED,
        Arrays.asList(
            StepInstanceAction.PAUSE,
            StepInstanceAction.STOP,
            StepInstanceAction.KILL,
            StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.PAUSED,
        Arrays.asList(
            StepInstanceAction.RESUME,
            StepInstanceAction.STOP,
            StepInstanceAction.KILL,
            StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.WAITING_FOR_SIGNALS,
        Arrays.asList(
            StepInstanceAction.STOP,
            StepInstanceAction.KILL,
            StepInstanceAction.SKIP,
            StepInstanceAction.BYPASS_STEP_DEPENDENCIES));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.EVALUATING_PARAMS,
        Arrays.asList(StepInstanceAction.STOP, StepInstanceAction.KILL, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.WAITING_FOR_PERMITS,
        Arrays.asList(StepInstanceAction.STOP, StepInstanceAction.KILL, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.STARTING,
        Arrays.asList(StepInstanceAction.STOP, StepInstanceAction.KILL, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.RUNNING,
        Arrays.asList(StepInstanceAction.STOP, StepInstanceAction.KILL, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.FINISHING,
        Arrays.asList(StepInstanceAction.STOP, StepInstanceAction.KILL, StepInstanceAction.SKIP));

    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.DISABLED, Collections.singletonList(StepInstanceAction.RESTART));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.UNSATISFIED, Collections.singletonList(StepInstanceAction.RESTART));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.SKIPPED,
        Arrays.asList(StepInstanceAction.RESTART, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.SUCCEEDED,
        Arrays.asList(StepInstanceAction.RESTART, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.COMPLETED_WITH_ERROR,
        Arrays.asList(StepInstanceAction.RESTART, StepInstanceAction.SKIP));

    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.USER_FAILED,
        Arrays.asList(StepInstanceAction.STOP, StepInstanceAction.KILL, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.PLATFORM_FAILED,
        Arrays.asList(StepInstanceAction.STOP, StepInstanceAction.KILL, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.TIMEOUT_FAILED,
        Arrays.asList(StepInstanceAction.STOP, StepInstanceAction.KILL, StepInstanceAction.SKIP));

    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.FATALLY_FAILED,
        Arrays.asList(StepInstanceAction.RESTART, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.INTERNALLY_FAILED,
        Arrays.asList(StepInstanceAction.RESTART, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.STOPPED,
        Arrays.asList(StepInstanceAction.RESTART, StepInstanceAction.SKIP));
    STEP_INSTANCE_STATUS_TO_ACTION_MAP.put(
        StepInstance.Status.TIMED_OUT,
        Arrays.asList(StepInstanceAction.RESTART, StepInstanceAction.SKIP));
  }