From 8cfb111faf7f054f5d1b25e6a9807a1aa35b6b49 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 26 Aug 2024 14:54:37 +0200 Subject: [PATCH] OZG-6177 refactor cleanup in reconciler --- .../OzgCloudElsterTransferUserReconciler.java | 28 ++++--------- .../OzgCloudElsterTransferUserService.java | 17 ++++++++ ...CloudElsterTransferUserReconcilerTest.java | 41 +++++++++++-------- ...OzgCloudElsterTransferUserTestFactory.java | 3 +- 4 files changed, 52 insertions(+), 37 deletions(-) diff --git a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserReconciler.java b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserReconciler.java index c696ae8..2272486 100644 --- a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserReconciler.java +++ b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserReconciler.java @@ -21,7 +21,7 @@ public class OzgCloudElsterTransferUserReconciler implements Reconciler<OzgCloud private final OzgCloudElsterTransferUserService elsterTransferUserService; private static final String CONFIG_MAP_NAME = "etr-user-config"; - private static final String DEPLOYMENT_NAME = "elster-transfer"; + private static final String ETR_DEPLOYMENT_NAME = "elster-transfer"; // todo private static final String ETR_NAMESPACE = "etr-user-creation"; @@ -33,7 +33,7 @@ public class OzgCloudElsterTransferUserReconciler implements Reconciler<OzgCloud elsterTransferUserService.updateConfigMapAndRestartDeploymentAndCreateSecret(namespace); - elsterTransferUser.setStatus(getElsterTransferUserStatus(OzgCloudCustomResourceStatus.OK, null)); + elsterTransferUser.setStatus(getElsterTransferUserStatus(OzgCloudCustomResourceStatus.OK, "Status: OK")); return UpdateControl.updateStatus(elsterTransferUser); } catch (Exception e) { LOG.warn(elsterTransferUser.getMetadata().getName() + " could not reconcile in namespace " @@ -52,27 +52,15 @@ public class OzgCloudElsterTransferUserReconciler implements Reconciler<OzgCloud public DeleteControl cleanup(OzgCloudElsterTransferUser user, Context<OzgCloudElsterTransferUser> context) { LOG.info("{} cleanup...", user.getMetadata().getName()); String namespace = user.getMetadata().getNamespace(); - if (user.getSpec().isKeepAfterDelete()) { - LOG.info("keep data"); - return DeleteControl.defaultDelete(); - } - if (!elsterTransferUserService.userExists(namespace, ETR_NAMESPACE, CONFIG_MAP_NAME)) { - return DeleteControl.defaultDelete(); - } - - return deleteUser(namespace); - } - - DeleteControl deleteUser(String userLogin) { - LOG.info("{} do cleanup...", userLogin); try { - elsterTransferUserService.deleteUser(userLogin, CONFIG_MAP_NAME); - elsterTransferUserService.restartDeployment(ETR_NAMESPACE, DEPLOYMENT_NAME); + elsterTransferUserService.deleteUserAndRestartDeploymentIfNotKeepUserAndUserExists(user); return DeleteControl.defaultDelete(); - } catch (Exception e) { - LOG.warn(userLogin + " could not delete.", e); - return DeleteControl.noFinalizerRemoval().rescheduleAfter(Config.RECONCILER_RETRY_SECONDS_ON_ERROR); } + catch (Exception e) { + LOG.warn(namespace + " could not delete.", e); + return DeleteControl.noFinalizerRemoval().rescheduleAfter(Config.RECONCILER_RETRY_SECONDS_ON_ERROR); + } } + } diff --git a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java index 1b594d1..2ca1b13 100644 --- a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java +++ b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Component; import org.yaml.snakeyaml.Yaml; import io.fabric8.kubernetes.api.model.ConfigMap; +import io.javaoperatorsdk.operator.api.reconciler.DeleteControl; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -38,6 +39,22 @@ public class OzgCloudElsterTransferUserService { } } + public void deleteUserAndRestartDeploymentIfNotKeepUserAndUserExists(OzgCloudElsterTransferUser user) { + String namespace = user.getMetadata().getNamespace(); + if (user.getSpec().isKeepAfterDelete()) { + LOG.info("keep data"); + return; + } + if (!userExists(namespace, ETR_NAMESPACE, CONFIG_MAP_NAME)) { + LOG.info("User not exists"); + return; + } + LOG.info("{} do cleanup...", user.getMetadata()); + deleteUser(user.getMetadata().getNamespace(), CONFIG_MAP_NAME); + restartDeployment(ETR_NAMESPACE,ETR_DEPLOYMENT_NAME); + } + + String updateConfigMap(String namespace, String configmapNamespace, String configMapName) { String userPassword = ""; ConfigMap configMap = remoteService.getConfigMap(configmapNamespace, configMapName); diff --git a/src/test/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserReconcilerTest.java b/src/test/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserReconcilerTest.java index a9dcd08..8d4f959 100644 --- a/src/test/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserReconcilerTest.java +++ b/src/test/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserReconcilerTest.java @@ -21,7 +21,7 @@ import io.javaoperatorsdk.operator.api.reconciler.DeleteControl; class OzgCloudElsterTransferUserReconcilerTest { - /*@Spy + @Spy @InjectMocks private OzgCloudElsterTransferUserReconciler reconciler; @@ -45,11 +45,10 @@ class OzgCloudElsterTransferUserReconcilerTest { reconciler.reconcile(user, null); - verify(service).updateConfigMap(OzgCloudElsterTransferUserTestFactory.METADATA_NAMESPACE, OzgCloudElsterTransferUserTestFactory.ETR_NAMESPACE, - OzgCloudElsterTransferUserTestFactory.CONFIG_MAP_NAME); + verify(service).updateConfigMapAndRestartDeploymentAndCreateSecret(OzgCloudElsterTransferUserTestFactory.METADATA_NAMESPACE); } - @Test + /* @Test void shouldCallRestartDeployment() { OzgCloudElsterTransferUser user = OzgCloudElsterTransferUserTestFactory.create(); @@ -69,20 +68,30 @@ class OzgCloudElsterTransferUserReconcilerTest { verify(service).createOrUpdateSecret(OzgCloudElsterTransferUserTestFactory.METADATA_NAMESPACE); } + + + @Test + void shouldCallGetElsterTransferUserStatus() { + OzgCloudElsterTransferUser user = OzgCloudElsterTransferUserTestFactory.create(); + + reconciler.reconcile(user, null); + + verify(reconciler).getElsterTransferUserStatus(any(), any()); + } + @Test + void shouldReturnUpdateStatus() { + var response = reconciler.reconcile(OzgCloudElsterTransferUserTestFactory.create(), null); + + assertThat(response.getResource()).isNotNull(); + } - @Test - void shouldReturnUpdateStatus() { - var response = reconciler.reconcile(OzgCloudElsterTransferUserTestFactory.create(), null); - - assertThat(response.getResource()).isNotNull(); - } - - @Test - void shouldSetStatusOk() { + @Test + void shouldSetStatusOk() { var response = reconciler.reconcile(OzgCloudElsterTransferUserTestFactory.create(), null); assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK); } + } @@ -172,7 +181,7 @@ class OzgCloudElsterTransferUserReconcilerTest { reconciler.cleanup(user, null); - verify(service).createOrUpdateSecret(OzgCloudElsterTransferUserTestFactory.METADATA_NAMESPACE); + verify(service).createOrUpdateSecret(OzgCloudElsterTransferUserTestFactory.METADATA_NAMESPACE,anyString(),OzgCloudElsterTransferUserTestFactory.MUK_USER_SECRET_NAME); } } @@ -210,7 +219,7 @@ class OzgCloudElsterTransferUserReconcilerTest { .isEqualTo(DeleteControl.noFinalizerRemoval().rescheduleAfter(Config.RECONCILER_RETRY_SECONDS_ON_ERROR)); } - } + }*/ } -*/ + } diff --git a/src/test/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserTestFactory.java b/src/test/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserTestFactory.java index 300e092..da99540 100644 --- a/src/test/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserTestFactory.java +++ b/src/test/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserTestFactory.java @@ -28,7 +28,8 @@ public class OzgCloudElsterTransferUserTestFactory { public static final String METADATA_NAMESPACE = "TestNamespace"; public static final String ETR_NAMESPACE = "etr-user-creation"; public static final String CONFIG_MAP_NAME = "etr-user-config"; - public static final String DEPLOYMENT_NAME = "elster-transfer"; + public static final String ETR_DEPLOYMENT_NAME = "elster-transfer"; + public static final String MUK_USER_SECRET_NAME = "muk-user-secret"; public static OzgCloudElsterTransferUser create() { return createWithSpec(OzgCloudElsterTransferUserSpecTestFactory.create()); -- GitLab