blob: bdb02623a66b3b610d93438f713e87894a222191 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.streampark.console.core.enums;
import org.apache.streampark.flink.kubernetes.enums.FlinkJobStateEnum;
import lombok.Getter;
import scala.Enumeration;
/** Describe the status of Flink Application */
@Getter
public enum FlinkAppStateEnum {
/** Added new job to database. */
ADDED(0),
/**
* The job has been received by the Dispatcher, and is waiting for the job manager to be created.
*/
INITIALIZING(1),
/** Job is newly created, no task has started to run. */
CREATED(2),
/** Application which is currently running. */
STARTING(3),
/** Application which is currently running. */
RESTARTING(4),
/** Some tasks are scheduled or running, some may be pending, some may be finished. */
RUNNING(5),
/** The job has failed and is currently waiting for the cleanup to complete. */
FAILING(6),
/** The job has failed with a non-recoverable task failure. */
FAILED(7),
/** Job is being cancelled. */
CANCELLING(8),
/** Job has been cancelled. */
CANCELED(9),
/** All the job's tasks have successfully finished. */
FINISHED(10),
/**
* The job has been suspended which means that it has been stopped but not been removed from a
* potential HA job store.
*/
SUSPENDED(11),
/** The job is currently reconciling and waits for task execution report to recover state. */
RECONCILING(12),
/** Loss of mapping. */
LOST(13),
/** Mapping. */
MAPPING(14),
/** Other statuses. */
OTHER(15),
/** Has rollback. */
REVOKED(16),
/**
* Lost track of flink job temporarily. A complete loss of flink job tracking translates into LOST
* state.
*/
@Deprecated
SILENT(17),
/** Flink job has terminated vaguely, maybe FINISHED, CANCELED or FAILED. */
TERMINATED(18),
/** Flink job has terminated vaguely, maybe FINISHED, CANCELED or FAILED. */
@Deprecated
POS_TERMINATED(19),
/** Job SUCCEEDED on yarn. */
SUCCEEDED(20),
/** Job auto Health probe */
PROBING(21),
/** Has killed in Yarn. */
KILLED(-9);
private final int value;
FlinkAppStateEnum(int value) {
this.value = value;
}
public static FlinkAppStateEnum of(Integer state) {
for (FlinkAppStateEnum appState : values()) {
if (appState.value == state) {
return appState;
}
}
return FlinkAppStateEnum.OTHER;
}
public static FlinkAppStateEnum of(String name) {
for (FlinkAppStateEnum appState : values()) {
if (appState.name().equals(name)) {
return appState;
}
}
return FlinkAppStateEnum.OTHER;
}
public static boolean isEndState(Integer appState) {
FlinkAppStateEnum flinkAppStateEnum = FlinkAppStateEnum.of(appState);
return FlinkAppStateEnum.CANCELED == flinkAppStateEnum
|| FlinkAppStateEnum.FAILED == flinkAppStateEnum
|| FlinkAppStateEnum.KILLED == flinkAppStateEnum
|| FlinkAppStateEnum.FINISHED == flinkAppStateEnum
|| FlinkAppStateEnum.SUCCEEDED == flinkAppStateEnum
|| FlinkAppStateEnum.LOST == flinkAppStateEnum
|| FlinkAppStateEnum.TERMINATED == flinkAppStateEnum;
}
public static boolean isLost(Integer appState) {
FlinkAppStateEnum flinkAppStateEnum = FlinkAppStateEnum.of(appState);
return FlinkAppStateEnum.LOST == flinkAppStateEnum;
}
/**
* Type conversion bridging Deprecated, see {@link
* org.apache.streampark.console.core.utils.FlinkK8sDataTypeConverter}
*/
@Deprecated
public static class Bridge {
/** covert from org.apache.streampark.flink.k8s.enums.FlinkJobState */
public static FlinkAppStateEnum fromK8sFlinkJobState(Enumeration.Value flinkJobState) {
if (FlinkJobStateEnum.K8S_INITIALIZING() == flinkJobState) {
return INITIALIZING;
}
return of(flinkJobState.toString());
}
/** covert to org.apache.streampark.flink.k8s.enums.FlinkJobState */
public static Enumeration.Value toK8sFlinkJobState(FlinkAppStateEnum flinkAppStateEnum) {
return FlinkJobStateEnum.of(flinkAppStateEnum.name());
}
}
}