From bd9272edb5523b1e3b2c4d14e5e77c490ae6fe4e Mon Sep 17 00:00:00 2001 From: csviri Date: Mon, 14 Mar 2022 09:49:48 +0100 Subject: [PATCH 1/3] fix: integration test --- .../operator/SubResourceUpdateIT.java | 13 ++++++++----- .../SubResourceTestCustomReconciler.java | 5 ++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java index 75597643bf..b3a39bc493 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java @@ -20,6 +20,7 @@ class SubResourceUpdateIT { + public static final int WAIT_AFTER_EXECUTION = 1000; @RegisterExtension OperatorExtension operator = OperatorExtension.builder() @@ -34,7 +35,7 @@ void updatesSubResourceStatus() { awaitStatusUpdated(resource.getMetadata().getName()); // wait for sure, there are no more events - waitXms(200); + waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(2); @@ -49,7 +50,7 @@ void updatesSubResourceStatusNoFinalizer() { awaitStatusUpdated(resource.getMetadata().getName()); // wait for sure, there are no more events - waitXms(200); + waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(2); @@ -64,7 +65,7 @@ void ifNoFinalizerPresentFirstAddsTheFinalizerThenExecutesControllerAgain() { awaitStatusUpdated(resource.getMetadata().getName()); // wait for sure, there are no more events - waitXms(200); + waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(2); @@ -81,13 +82,15 @@ void updateCustomResourceAfterSubResourceChange() { SubResourceTestCustomResource resource = createTestCustomResource("1"); operator.create(SubResourceTestCustomResource.class, resource); + // waits that the resorce + waitXms(200); resource.getSpec().setValue("new value"); operator.resources(SubResourceTestCustomResource.class).createOrReplace(resource); awaitStatusUpdated(resource.getMetadata().getName()); // wait for sure, there are no more events - waitXms(500); + waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(3); @@ -121,7 +124,7 @@ public SubResourceTestCustomResource createTestCustomResource(String id) { return resource; } - private void waitXms(int x) { + public static void waitXms(int x) { try { Thread.sleep(x); } catch (InterruptedException e) { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java index 081100beb3..16a735ee9c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java @@ -12,6 +12,8 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; +import static io.javaoperatorsdk.operator.support.TestUtils.waitXms; + @ControllerConfiguration(generationAwareEventProcessing = false) public class SubResourceTestCustomReconciler implements Reconciler, TestExecutionInfoProvider { @@ -22,6 +24,7 @@ public class SubResourceTestCustomReconciler LoggerFactory.getLogger(SubResourceTestCustomReconciler.class); private final AtomicInteger numberOfExecutions = new AtomicInteger(0); + @Override public UpdateControl reconcile( SubResourceTestCustomResource resource, Context context) { @@ -33,7 +36,7 @@ public UpdateControl reconcile( ensureStatusExists(resource); resource.getStatus().setState(SubResourceTestCustomResourceStatus.State.SUCCESS); - + waitXms(500); return UpdateControl.updateStatus(resource); } From 234d02be829eabcb6fba031deb2537f3058fcd20 Mon Sep 17 00:00:00 2001 From: csviri Date: Mon, 14 Mar 2022 09:53:45 +0100 Subject: [PATCH 2/3] fix: improvements --- .../io/javaoperatorsdk/operator/SubResourceUpdateIT.java | 9 ++++++--- .../subresource/SubResourceTestCustomReconciler.java | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java index b3a39bc493..d2d5d9f5db 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java @@ -20,7 +20,10 @@ class SubResourceUpdateIT { - public static final int WAIT_AFTER_EXECUTION = 1000; + public static final int WAIT_AFTER_EXECUTION = 500; + public static final int RECONCILER_MIN_EXEC_TIME = 300; + public static final int EVENT_RECEIVE_WAIT = 200; + @RegisterExtension OperatorExtension operator = OperatorExtension.builder() @@ -82,8 +85,8 @@ void updateCustomResourceAfterSubResourceChange() { SubResourceTestCustomResource resource = createTestCustomResource("1"); operator.create(SubResourceTestCustomResource.class, resource); - // waits that the resorce - waitXms(200); + // waits for the resource to start processing + waitXms(EVENT_RECEIVE_WAIT); resource.getSpec().setValue("new value"); operator.resources(SubResourceTestCustomResource.class).createOrReplace(resource); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java index 16a735ee9c..6353fed16c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java @@ -12,6 +12,7 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; +import static io.javaoperatorsdk.operator.SubResourceUpdateIT.RECONCILER_MIN_EXEC_TIME; import static io.javaoperatorsdk.operator.support.TestUtils.waitXms; @ControllerConfiguration(generationAwareEventProcessing = false) @@ -36,7 +37,7 @@ public UpdateControl reconcile( ensureStatusExists(resource); resource.getStatus().setState(SubResourceTestCustomResourceStatus.State.SUCCESS); - waitXms(500); + waitXms(RECONCILER_MIN_EXEC_TIME); return UpdateControl.updateStatus(resource); } From a720d95c2016780fafca0199a539839ff824ceb8 Mon Sep 17 00:00:00 2001 From: csviri Date: Mon, 14 Mar 2022 09:58:48 +0100 Subject: [PATCH 3/3] fix: improvements --- .../java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java | 1 - .../sample/subresource/SubResourceTestCustomReconciler.java | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java index d2d5d9f5db..2757ca156b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java @@ -21,7 +21,6 @@ class SubResourceUpdateIT { public static final int WAIT_AFTER_EXECUTION = 500; - public static final int RECONCILER_MIN_EXEC_TIME = 300; public static final int EVENT_RECEIVE_WAIT = 200; @RegisterExtension diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java index 6353fed16c..8bfe6dd67d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java @@ -12,13 +12,14 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; -import static io.javaoperatorsdk.operator.SubResourceUpdateIT.RECONCILER_MIN_EXEC_TIME; import static io.javaoperatorsdk.operator.support.TestUtils.waitXms; @ControllerConfiguration(generationAwareEventProcessing = false) public class SubResourceTestCustomReconciler implements Reconciler, TestExecutionInfoProvider { + public static final int RECONCILER_MIN_EXEC_TIME = 300; + public static final String FINALIZER_NAME = ReconcilerUtils.getDefaultFinalizerName(SubResourceTestCustomResource.class); private static final Logger log =