diff --git a/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java index 1fd55ffb887c99a5d45ae085ffe3db396caeee3e..3f45f3945f94fb95ad7d66b88894204cea3ab4cc 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java @@ -35,9 +35,9 @@ public class KeycloakClientReconciler implements Reconciler<OzgKeycloakClient>, log.info("Reconcile KeycloakClient " + crdName); - Optional<String> preconditionErrors = preconditionService.getReconcilePreconditionErrors(resource); - if (preconditionErrors.isPresent()) { - return buildStatusInProgress(resource, preconditionErrors); + Optional<String> preconditionError = preconditionService.getReconcilePreconditionErrors(resource); + if (preconditionError.isPresent()) { + return buildStatusInProgress(resource, preconditionError.get()); } service.createOrUpdateClient(resource.getSpec(), resource.getMetadata().getNamespace()); @@ -50,10 +50,11 @@ public class KeycloakClientReconciler implements Reconciler<OzgKeycloakClient>, return UpdateControl.updateStatus(resource); } - private UpdateControl<OzgKeycloakClient> buildStatusInProgress(OzgKeycloakClient resource, Optional<String> preconditionErrors) { + private UpdateControl<OzgKeycloakClient> buildStatusInProgress(OzgKeycloakClient resource, String errorMessage) { log.log(Level.INFO, - "Could not yet reconcile user " + resource.getMetadata().getName() + " in namespace " + resource.getMetadata().getNamespace()); - resource.setStatus(OzgKeycloakClientStatus.builder().status(OzgCustomResourceStatus.IN_PROGRESS).message(preconditionErrors.get()).build()); + "Could not yet reconcile client " + resource.getMetadata().getName() + " in namespace " + resource.getMetadata().getNamespace() + ":" + + errorMessage); + resource.setStatus(OzgKeycloakClientStatus.builder().status(OzgCustomResourceStatus.IN_PROGRESS).message(errorMessage).build()); return UpdateControl.updateStatus(resource).rescheduleAfter(Duration.ofSeconds(Config.RECONCILER_RETRY_SECONDS)); } diff --git a/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java index 8b4acd13f2625e5664d45324a536cc1ea6de3285..d9f34e414b3ea8872f4449e79be824f4ff4c9904 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java @@ -35,9 +35,9 @@ public class KeycloakGroupReconciler implements Reconciler<OzgKeycloakGroup>, Er log.info("Reconcile KeycloakGroup " + crdName); - Optional<String> preconditionErrors = preconditionService.getReconcilePreconditionErrors(resource); - if (preconditionErrors.isPresent()) { - return buildStatusInProgress(resource, preconditionErrors); + Optional<String> preconditionError = preconditionService.getReconcilePreconditionErrors(resource); + if (preconditionError.isPresent()) { + return buildStatusInProgress(resource, preconditionError.get()); } service.createGroup(resource.getSpec(), resource.getMetadata().getNamespace()); @@ -50,10 +50,11 @@ public class KeycloakGroupReconciler implements Reconciler<OzgKeycloakGroup>, Er return UpdateControl.updateStatus(resource); } - UpdateControl<OzgKeycloakGroup> buildStatusInProgress(OzgKeycloakGroup resource, Optional<String> preconditionErrors) { + UpdateControl<OzgKeycloakGroup> buildStatusInProgress(OzgKeycloakGroup resource, String errorMessage) { log.log(Level.INFO, - "Could not yet reconcile group " + resource.getMetadata().getName() + " in namespace " + resource.getMetadata().getNamespace()); - resource.setStatus(OzgKeycloakGroupStatus.builder().status(OzgCustomResourceStatus.IN_PROGRESS).message(preconditionErrors.get()).build()); + "Could not yet reconcile group " + resource.getMetadata().getName() + " in namespace " + resource.getMetadata().getNamespace() + ": " + + errorMessage); + resource.setStatus(OzgKeycloakGroupStatus.builder().status(OzgCustomResourceStatus.IN_PROGRESS).message(errorMessage).build()); return UpdateControl.updateStatus(resource).rescheduleAfter(Duration.ofSeconds(Config.RECONCILER_RETRY_SECONDS)); } 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 4fe892dda732eb799c82baffe291089a86e53e60..0c9b5cc9fad6df82d75123edb59b0f95f97b8159 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java @@ -36,9 +36,9 @@ public class KeycloakUserReconciler implements Reconciler<OzgKeycloakUser>, Clea log.info("Reconciling KeycloakUser " + resource.getMetadata().getName()); String namespace = resource.getMetadata().getNamespace(); - Optional<String> preconditionErrors = preconditionService.getReconcilePreconditionErrors(resource); - if (preconditionErrors.isPresent()) { - return buildStatusInProgress(resource, preconditionErrors); + Optional<String> preconditionError = preconditionService.getReconcilePreconditionErrors(resource); + if (preconditionError.isPresent()) { + return buildStatusInProgress(resource, preconditionError.get()); } keycloakUserService.createOrUpdateUser(resource.getSpec(), namespace); @@ -62,10 +62,11 @@ public class KeycloakUserReconciler implements Reconciler<OzgKeycloakUser>, Clea return UpdateControl.updateStatus(resource); } - private UpdateControl<OzgKeycloakUser> buildStatusInProgress(OzgKeycloakUser resource, Optional<String> preconditionErrors) { + private UpdateControl<OzgKeycloakUser> buildStatusInProgress(OzgKeycloakUser resource, String errorMessage) { log.log(Level.INFO, - "Could not yet reconcile user " + resource.getMetadata().getName() + " in namespace " + resource.getMetadata().getNamespace()); - resource.setStatus(OzgKeycloakUserStatus.builder().status(OzgCustomResourceStatus.IN_PROGRESS).message(preconditionErrors.get()).build()); + "Could not yet reconcile user " + resource.getMetadata().getName() + " in namespace " + resource.getMetadata().getNamespace() + ": " + + errorMessage); + resource.setStatus(OzgKeycloakUserStatus.builder().status(OzgCustomResourceStatus.IN_PROGRESS).message(errorMessage).build()); return UpdateControl.updateStatus(resource).rescheduleAfter(Duration.ofSeconds(Config.RECONCILER_RETRY_SECONDS)); } diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteService.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteService.java index 86d18e63d7131690973664d9661c03b800c6ea88..417d77ecedc6235db98a432c98feee97a4dc5604 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteService.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteService.java @@ -47,7 +47,7 @@ class KeycloakUserRemoteService { user.getClientRoles().get(clientId).stream() .map(clientRoleName -> keycloakGenericRemoteService.getClientRole(clientRoleName, appClient.getId(), realm) .orElseThrow(() -> new KeycloakException( - "Role " + clientRoleName + " not found for client with clientId " + clientId))) + "Role " + clientRoleName + " not found for client with clientId " + clientId + " in realm " + realm))) .forEach(clientRole -> addClientRoleToUser(clientRole, realmResource, userId, appClient)); }); diff --git a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteServiceTest.java b/src/test/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteServiceTest.java index 6251f271090e2cac650e3badbde8d5e4dadbc55b..96afcc95fe57718e9169351bc76084b2c176c852 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteServiceTest.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteServiceTest.java @@ -145,9 +145,6 @@ class KeycloakGenericRemoteServiceTest { when(keycloak.realm(REALM)).thenReturn(realmResource); when(realmResource.clients()).thenReturn(clientsResource); when(clientsResource.get(REAL_CLIENT_ID)).thenReturn(clientResource); - -// doReturn(Optional.of(clientRepresentation)).when(service).getByClientId(CLIENT_ID, REALM); -// when(clientRepresentation.getId()).thenReturn(CLIENT_ID); } @Test