This is an automated email from the ASF dual-hosted git repository.

gyfora pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-kubernetes-operator.git


The following commit(s) were added to refs/heads/main by this push:
     new 5e03a61  [FLINK-28233] Clear error status correctly for stable 
deployments
5e03a61 is described below

commit 5e03a618b22ac8d77fe3e7886fd20be8ab518f75
Author: Gyula Fora <[email protected]>
AuthorDate: Thu Jun 23 17:46:02 2022 +0200

    [FLINK-28233] Clear error status correctly for stable deployments
---
 .../apache/flink/kubernetes/operator/crd/status/CommonStatus.java | 2 +-
 .../operator/observer/deployment/AbstractDeploymentObserver.java  | 2 +-
 .../flink/kubernetes/operator/reconciler/ReconciliationUtils.java | 2 +-
 .../reconciler/deployment/AbstractDeploymentReconciler.java       | 3 ++-
 .../operator/controller/FlinkDeploymentControllerTest.java        | 4 ++--
 .../apache/flink/kubernetes/operator/controller/RollbackTest.java | 8 ++++----
 6 files changed, 11 insertions(+), 10 deletions(-)

diff --git 
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/crd/status/CommonStatus.java
 
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/crd/status/CommonStatus.java
index 5cb39ce..2a41c5f 100644
--- 
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/crd/status/CommonStatus.java
+++ 
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/crd/status/CommonStatus.java
@@ -37,7 +37,7 @@ public abstract class CommonStatus<SPEC extends 
AbstractFlinkSpec> {
     private JobStatus jobStatus = new JobStatus();
 
     /** Error information about the FlinkDeployment/FlinkSessionJob. */
-    private String error;
+    private String error = "";
 
     /** Status of the last reconcile operation. */
     public abstract ReconciliationStatus<SPEC> getReconciliationStatus();
diff --git 
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/observer/deployment/AbstractDeploymentObserver.java
 
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/observer/deployment/AbstractDeploymentObserver.java
index 4a2d08c..48fa2e0 100644
--- 
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/observer/deployment/AbstractDeploymentObserver.java
+++ 
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/observer/deployment/AbstractDeploymentObserver.java
@@ -224,7 +224,7 @@ public abstract class AbstractDeploymentObserver implements 
Observer<FlinkDeploy
         if (status.getJobManagerDeploymentStatus() != 
JobManagerDeploymentStatus.ERROR
                 && 
!JobStatus.FAILED.name().equals(dep.getStatus().getJobStatus().getState())
                 && reconciliationStatus.isLastReconciledSpecStable()) {
-            status.setError(null);
+            status.setError("");
         }
     }
 
diff --git 
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/ReconciliationUtils.java
 
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/ReconciliationUtils.java
index 8fd2485..63d0f15 100644
--- 
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/ReconciliationUtils.java
+++ 
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/ReconciliationUtils.java
@@ -76,7 +76,7 @@ public class ReconciliationUtils {
         var spec = target.getSpec();
 
         ReconciliationStatus<SPEC> reconciliationStatus = 
status.getReconciliationStatus();
-        status.setError(null);
+        status.setError("");
 
         // For application deployments we update the taskmanager info
         if (target instanceof FlinkDeployment && spec.getJob() != null) {
diff --git 
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/deployment/AbstractDeploymentReconciler.java
 
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/deployment/AbstractDeploymentReconciler.java
index 350ff2e..16d7b44 100644
--- 
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/deployment/AbstractDeploymentReconciler.java
+++ 
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/reconciler/deployment/AbstractDeploymentReconciler.java
@@ -32,6 +32,7 @@ import 
org.apache.flink.kubernetes.operator.utils.EventRecorder;
 import io.fabric8.kubernetes.client.KubernetesClient;
 import io.javaoperatorsdk.operator.api.reconciler.Context;
 import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -66,7 +67,7 @@ public abstract class AbstractDeploymentReconciler implements 
Reconciler<FlinkDe
         ReconciliationStatus<?> reconciliationStatus = 
status.getReconciliationStatus();
         if (reconciliationStatus.getState() != 
ReconciliationState.ROLLING_BACK) {
             LOG.warn("Preparing to roll back to last stable spec.");
-            if (status.getError() == null) {
+            if (StringUtils.isEmpty(status.getError())) {
                 status.setError(
                         "Deployment is not ready within the configured 
timeout, rolling back.");
             }
diff --git 
a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/FlinkDeploymentControllerTest.java
 
b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/FlinkDeploymentControllerTest.java
index ffae61f..22ec612 100644
--- 
a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/FlinkDeploymentControllerTest.java
+++ 
b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/FlinkDeploymentControllerTest.java
@@ -106,7 +106,7 @@ public class FlinkDeploymentControllerTest {
         // Validate reconciliation status
         ReconciliationStatus<FlinkDeploymentSpec> reconciliationStatus =
                 appCluster.getStatus().getReconciliationStatus();
-        assertNull(appCluster.getStatus().getError());
+        assertEquals("", appCluster.getStatus().getError());
         assertEquals(appCluster.getSpec(), 
reconciliationStatus.deserializeLastReconciledSpec());
         
assertNull(appCluster.getStatus().getReconciliationStatus().getLastStableSpec());
 
@@ -679,7 +679,7 @@ public class FlinkDeploymentControllerTest {
         assertEquals(
                 JobManagerDeploymentStatus.READY,
                 appCluster.getStatus().getJobManagerDeploymentStatus());
-        assertNull(appCluster.getStatus().getError());
+        assertEquals("", appCluster.getStatus().getError());
 
         assertEquals(
                 
appCluster.getStatus().getReconciliationStatus().getLastReconciledSpec(),
diff --git 
a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/RollbackTest.java
 
b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/RollbackTest.java
index fa216e4..1f53a50 100644
--- 
a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/RollbackTest.java
+++ 
b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/RollbackTest.java
@@ -315,7 +315,7 @@ public class RollbackTest {
         assertEquals(
                 ReconciliationState.DEPLOYED,
                 deployment.getStatus().getReconciliationStatus().getState());
-        assertNull(deployment.getStatus().getError());
+        assertEquals("", deployment.getStatus().getError());
 
         deployment.getSpec().setRestartNonce(456L);
         triggerRollback.run();
@@ -347,7 +347,7 @@ public class RollbackTest {
             assertEquals(
                     ReconciliationState.DEPLOYED,
                     
deployment.getStatus().getReconciliationStatus().getState());
-            assertNull(deployment.getStatus().getError());
+            assertEquals("", deployment.getStatus().getError());
 
             deployment.getSpec().getJob().setState(JobState.RUNNING);
             testController.reconcile(deployment, context);
@@ -360,7 +360,7 @@ public class RollbackTest {
             assertEquals(
                     ReconciliationState.DEPLOYED,
                     
deployment.getStatus().getReconciliationStatus().getState());
-            assertNull(deployment.getStatus().getError());
+            assertEquals("", deployment.getStatus().getError());
 
             // Verify suspending a rolled back job
             triggerRollback.run();
@@ -378,7 +378,7 @@ public class RollbackTest {
             assertEquals(
                     ReconciliationState.DEPLOYED,
                     
deployment.getStatus().getReconciliationStatus().getState());
-            assertNull(deployment.getStatus().getError());
+            assertEquals("", deployment.getStatus().getError());
         }
     }
 }

Reply via email to