From e6f6209e0175e1ce6705574dd3f205c98eb74f8e Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Sat, 26 Aug 2023 13:10:59 +0200
Subject: [PATCH] OZG-3961 differs scheduleDuration

---
 .../operator/keycloak/user/KeycloakUserReconciler.java |  5 +++--
 .../keycloak/user/UserUpdateControlBuilder.java        | 10 ++++++----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java
index 9f0b654..2647a00 100644
--- a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java
+++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java
@@ -28,6 +28,7 @@ import java.util.logging.Level;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import de.ozgcloud.operator.Config;
 import de.ozgcloud.operator.keycloak.OzgCustomResourceStatus;
 import io.javaoperatorsdk.operator.api.reconciler.Cleaner;
 import io.javaoperatorsdk.operator.api.reconciler.Context;
@@ -64,7 +65,7 @@ public class KeycloakUserReconciler implements Reconciler<OzgKeycloakUser>, Clea
 				return UserUpdateControlBuilder.fromResource(resource)
 						.withStatus(OzgCustomResourceStatus.IN_PROGRESS)
 						.withMessage(errorMessage)
-						.withReschedule()
+						.withReschedule(Config.RECONCILER_RETRY_SECONDS)
 						.build();
 			}
 
@@ -80,7 +81,7 @@ public class KeycloakUserReconciler implements Reconciler<OzgKeycloakUser>, Clea
 			return UserUpdateControlBuilder.fromResource(resource)
 					.withStatus(OzgCustomResourceStatus.ERROR)
 					.withMessage(errorMessage)
-					.withReschedule()
+					.withReschedule(Config.RECONCILER_RETRY_SECONDS_ON_ERROR)
 					.build();
 		}
 	}
diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java b/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
index f5a083f..e8d877a 100644
--- a/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
+++ b/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
@@ -1,8 +1,8 @@
 package de.ozgcloud.operator.keycloak.user;
 
+import java.time.Duration;
 import java.util.Optional;
 
-import de.ozgcloud.operator.Config;
 import de.ozgcloud.operator.keycloak.OzgCustomResourceStatus;
 import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
 
@@ -11,7 +11,8 @@ class UserUpdateControlBuilder {
 	private OzgKeycloakUser resource;
 	private OzgCustomResourceStatus status;
 	private Optional<String> message = Optional.empty();
-	private boolean reschedule;
+	private boolean reschedule = false;
+	private Duration scheduleDuration;
 
 	public UserUpdateControlBuilder(OzgKeycloakUser resource) {
 		this.resource = resource;
@@ -31,8 +32,9 @@ class UserUpdateControlBuilder {
 		return this;
 	}
 
-	public UserUpdateControlBuilder withReschedule() {
+	public UserUpdateControlBuilder withReschedule(Duration duration) {
 		this.reschedule = true;
+		this.scheduleDuration = duration;
 		return this;
 	}
 
@@ -50,7 +52,7 @@ class UserUpdateControlBuilder {
 
 	private UpdateControl<OzgKeycloakUser> buildUpdateControl() {
 		if (reschedule) {
-			UpdateControl.updateStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
+			UpdateControl.updateStatus(resource).rescheduleAfter(scheduleDuration);
 		}
 		return UpdateControl.updateStatus(resource);
 	}
-- 
GitLab