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 c696ae80470fd035ee9829c11911ba5ee67fcab3..22724865d3005f82db9b25b597c689a9f88b7ad5 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 1b594d14495ca47cfacc9a65883d81a3506bd16f..2ca1b1372a0b3091983950c38ad1e2cbe6de4519 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 a9dcd0874010ee7b07035a169c9217a3dc136011..8d4f959e86c281cca322c2486c7e8fdc9fc4a17e 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 300e092db41db602801042115d0c88826f31fcab..da99540fbf217b56d9784603ef9e18dc9f5f39cd 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());