in flink-kubernetes-operator-api/src/main/java/org/apache/flink/kubernetes/operator/api/status/CommonStatus.java [62:100]
public ResourceLifecycleState getLifecycleState() {
if (ResourceLifecycleState.DELETING == lifecycleState
|| ResourceLifecycleState.DELETED == lifecycleState) {
return lifecycleState;
}
var reconciliationStatus = getReconciliationStatus();
if (reconciliationStatus.isBeforeFirstDeployment()) {
return StringUtils.isEmpty(error)
? ResourceLifecycleState.CREATED
: ResourceLifecycleState.FAILED;
}
switch (reconciliationStatus.getState()) {
case UPGRADING:
return ResourceLifecycleState.UPGRADING;
case ROLLING_BACK:
return ResourceLifecycleState.ROLLING_BACK;
}
var lastReconciledSpec = reconciliationStatus.deserializeLastReconciledSpec();
if (lastReconciledSpec.getJob() != null
&& lastReconciledSpec.getJob().getState() == JobState.SUSPENDED) {
return ResourceLifecycleState.SUSPENDED;
}
if (getJobStatus().getState() == org.apache.flink.api.common.JobStatus.FAILED) {
return ResourceLifecycleState.FAILED;
}
if (reconciliationStatus.getState() == ReconciliationState.ROLLED_BACK) {
return ResourceLifecycleState.ROLLED_BACK;
} else if (reconciliationStatus.isLastReconciledSpecStable()) {
return ResourceLifecycleState.STABLE;
}
return ResourceLifecycleState.DEPLOYED;
}