in flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/service/AbstractFlinkService.java [318:353]
protected CancelResult cancelJob(
FlinkDeployment deployment,
SuspendMode suspendMode,
Configuration conf,
boolean deleteCluster)
throws Exception {
var status = deployment.getStatus();
String savepointPath = null;
try (var clusterClient = getClusterClient(conf)) {
switch (suspendMode) {
case SAVEPOINT:
savepointPath = savepointJobOrError(clusterClient, status, conf);
break;
case STATELESS:
if (ReconciliationUtils.isJobCancellable(status)) {
try {
cancelJobOrError(clusterClient, status, true);
} catch (Exception ex) {
// We can simply delete the deployment for stateless
}
}
break;
case CANCEL:
cancelJobOrError(clusterClient, status, false);
// This is async we need to return
return CancelResult.pending();
}
}
if (suspendMode.deleteCluster() || deleteCluster) {
deleteClusterDeployment(
deployment.getMetadata(), status, conf, suspendMode.deleteHaMeta());
}
status.getJobStatus().setState(JobStatus.FINISHED);
return CancelResult.completed(savepointPath);
}