protected CancelResult cancelJob()

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);
    }