From 9b15b996b936d7ba12732b4bf3c4afd624a63d6f Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Fri, 16 Jun 2023 09:51:41 +0200 Subject: [PATCH] cdr status test --- pom.xml | 7 ++++ .../java/de/ozgcloud/operator/Config.java | 2 +- .../operator/SpringNativeConfiguration.java | 6 ++-- .../operator/keycloak/KeycloakClient.java | 33 +++++++++++++++++++ .../user/KeycloakClientUserRemoteService.java | 19 +++++++++++ .../user/KeycloakClientUserService.java | 15 +++++++++ .../keycloak/{ => user}/KeycloakUser.java | 2 +- .../{ => user}/KeycloakUserReconciler.java | 4 +-- .../keycloak/{ => user}/KeycloakUserSpec.java | 2 +- .../{ => user}/KeycloakUserStatus.java | 4 ++- .../keycloak/client/KeycloakClientTest.java | 14 ++++++++ .../KeycloakClientUserRemoteServiceTest.java | 31 +++++++++++++++++ .../KeycloakUserReconcilerTest.java | 4 ++- .../KeycloakUserSpecTestFactory.java | 5 +-- .../KeycloakUserSpecUserTestFactory.java | 4 +-- .../KeycloakUserStatusTestFactory.java | 4 ++- .../{ => user}/KeycloakUserTestFactory.java | 6 +++- 17 files changed, 146 insertions(+), 16 deletions(-) create mode 100644 src/main/java/de/ozgcloud/operator/keycloak/KeycloakClient.java create mode 100644 src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserRemoteService.java create mode 100644 src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserService.java rename src/main/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUser.java (89%) rename src/main/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUserReconciler.java (94%) rename src/main/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUserSpec.java (97%) rename src/main/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUserStatus.java (84%) create mode 100644 src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientTest.java create mode 100644 src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserRemoteServiceTest.java rename src/test/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUserReconcilerTest.java (86%) rename src/test/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUserSpecTestFactory.java (66%) rename src/test/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUserSpecUserTestFactory.java (72%) rename src/test/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUserStatusTestFactory.java (69%) rename src/test/java/de/ozgcloud/operator/keycloak/{ => user}/KeycloakUserTestFactory.java (66%) diff --git a/pom.xml b/pom.xml index 9b17e3e..04d90dc 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,13 @@ <!-- <artifactId>spring-boot-starter-web-services</artifactId>--> <!-- </dependency>--> +<!-- https://mvnrepository.com/artifact/org.keycloak/keycloak-admin-client --> +<dependency> + <groupId>org.keycloak</groupId> + <artifactId>keycloak-admin-client</artifactId> + <version>21.1.1</version> +</dependency> + <dependency> <groupId>io.javaoperatorsdk</groupId> diff --git a/src/main/java/de/ozgcloud/operator/Config.java b/src/main/java/de/ozgcloud/operator/Config.java index a24156d..bb7a11e 100644 --- a/src/main/java/de/ozgcloud/operator/Config.java +++ b/src/main/java/de/ozgcloud/operator/Config.java @@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import de.ozgcloud.operator.keycloak.KeycloakUserReconciler; +import de.ozgcloud.operator.keycloak.user.KeycloakUserReconciler; import io.fabric8.kubernetes.client.KubernetesClient; import io.javaoperatorsdk.operator.Operator; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; diff --git a/src/main/java/de/ozgcloud/operator/SpringNativeConfiguration.java b/src/main/java/de/ozgcloud/operator/SpringNativeConfiguration.java index ea9651c..b55cfe1 100644 --- a/src/main/java/de/ozgcloud/operator/SpringNativeConfiguration.java +++ b/src/main/java/de/ozgcloud/operator/SpringNativeConfiguration.java @@ -12,9 +12,9 @@ import org.springframework.aot.hint.RuntimeHintsRegistrar; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportRuntimeHints; -import de.ozgcloud.operator.keycloak.KeycloakUser; -import de.ozgcloud.operator.keycloak.KeycloakUserSpec; -import de.ozgcloud.operator.keycloak.KeycloakUserStatus; +import de.ozgcloud.operator.keycloak.user.KeycloakUser; +import de.ozgcloud.operator.keycloak.user.KeycloakUserSpec; +import de.ozgcloud.operator.keycloak.user.KeycloakUserStatus; import io.fabric8.kubernetes.api.model.KubernetesResource; import io.fabric8.kubernetes.api.model.NamedCluster; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakClient.java b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakClient.java new file mode 100644 index 0000000..cc9f184 --- /dev/null +++ b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakClient.java @@ -0,0 +1,33 @@ +package de.ozgcloud.operator.keycloak; + +import org.keycloak.admin.client.Keycloak; +import org.keycloak.admin.client.KeycloakBuilder; +import org.keycloak.representations.idm.UserRepresentation; +import org.springframework.stereotype.Component; + +import lombok.extern.java.Log; + +@Log +@Component +public class KeycloakClient { + + public Keycloak getKeycloak() { + + Keycloak keycloak = KeycloakBuilder.builder() // + .serverUrl("https://sso.dev.by.ozg-cloud.de/") // + .realm("master") // +// .grantType(OAuth2Constants.PASSWORD) // + .username("admin") // + .password(" ") // + .clientId("admin-cli") + .build(); + + log.info(keycloak.realms().findAll().toString()); + + UserRepresentation user = new UserRepresentation(); + user.setUsername("helge"); + keycloak.realm("by-torsten-ozg-operator-dev").users().create(user); + + return keycloak; + } +} diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserRemoteService.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserRemoteService.java new file mode 100644 index 0000000..63ce46f --- /dev/null +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserRemoteService.java @@ -0,0 +1,19 @@ +package de.ozgcloud.operator.keycloak.user; + +import org.keycloak.representations.account.UserRepresentation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import de.ozgcloud.operator.keycloak.KeycloakClient; + +@Component +public class KeycloakClientUserRemoteService { + + @Autowired + private KeycloakClient keycloakClient; + + void createUser(UserRepresentation user) { + + keycloakClient.getKeycloak(); + } +} diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserService.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserService.java new file mode 100644 index 0000000..a87f0ed --- /dev/null +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserService.java @@ -0,0 +1,15 @@ +package de.ozgcloud.operator.keycloak.user; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class KeycloakClientUserService { + + @Autowired + KeycloakClientUserRemoteService remoteService; + + void addUser(KeycloakUserSpec userSpec) { + + } +} diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUser.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUser.java similarity index 89% rename from src/main/java/de/ozgcloud/operator/keycloak/KeycloakUser.java rename to src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUser.java index bb3a997..5badf37 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUser.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUser.java @@ -1,4 +1,4 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; import io.fabric8.kubernetes.api.model.Namespaced; import io.fabric8.kubernetes.client.CustomResource; diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java similarity index 94% rename from src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserReconciler.java rename to src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java index d1155f9..3aff0f6 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java @@ -1,4 +1,4 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; import java.time.LocalDate; import java.util.Base64; @@ -31,7 +31,7 @@ public class KeycloakUserReconciler implements Reconciler<KeycloakUser> { String namespace = crd.getMetadata().getNamespace(); log.warning("Reconciling: " + name + "/" + namespace); log.warning("SecretTest:" + getKeycloakRealmAdminPassword(namespace)); - crd.setStatus(KeycloakUserStatus.builder().status("Updated status for " + name + LocalDate.now().toString()).build()); + crd.setStatus(KeycloakUserStatus.builder().status("Updated status for " + name + LocalDate.now().toString()).phase("Pending").build()); return UpdateControl.updateStatus(crd); } diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserSpec.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpec.java similarity index 97% rename from src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserSpec.java rename to src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpec.java index e8c6beb..0c0ef4e 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserSpec.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpec.java @@ -1,4 +1,4 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; import java.util.List; diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserStatus.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserStatus.java similarity index 84% rename from src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserStatus.java rename to src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserStatus.java index 4d4dfd3..7e83e84 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserStatus.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserStatus.java @@ -1,4 +1,4 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; import io.javaoperatorsdk.operator.api.ObservedGenerationAwareStatus; import lombok.AllArgsConstructor; @@ -15,4 +15,6 @@ import lombok.Setter; public class KeycloakUserStatus extends ObservedGenerationAwareStatus { private String status; + + private String phase; } diff --git a/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientTest.java b/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientTest.java new file mode 100644 index 0000000..17303f7 --- /dev/null +++ b/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientTest.java @@ -0,0 +1,14 @@ +package de.ozgcloud.operator.keycloak.client; + +import org.junit.jupiter.api.Test; + +import de.ozgcloud.operator.keycloak.KeycloakClient; + +class KeycloakClientTest { + + @Test + void test() { + KeycloakClient kc = new KeycloakClient(); +// kc.test(); + } +} diff --git a/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserRemoteServiceTest.java b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserRemoteServiceTest.java new file mode 100644 index 0000000..86cd6ff --- /dev/null +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakClientUserRemoteServiceTest.java @@ -0,0 +1,31 @@ +package de.ozgcloud.operator.keycloak.user; + +import static org.mockito.Mockito.*; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.junit.jupiter.MockitoExtension; + +import de.ozgcloud.operator.keycloak.KeycloakClient; + +@ExtendWith(MockitoExtension.class) +class KeycloakClientUserRemoteServiceTest { + + @Spy + @InjectMocks + KeycloakClientUserRemoteService userRemoteService; + + @Mock + KeycloakClient keycloakClient; + + @Test + void test() { + + userRemoteService.createUser(null); + + verify(keycloakClient).getKeycloak(); + } +} diff --git a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserReconcilerTest.java b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconcilerTest.java similarity index 86% rename from src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserReconcilerTest.java rename to src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconcilerTest.java index 12a66bf..9c66f82 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserReconcilerTest.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconcilerTest.java @@ -1,4 +1,4 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; @@ -12,6 +12,8 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import de.ozgcloud.operator.keycloak.user.KeycloakUser; +import de.ozgcloud.operator.keycloak.user.KeycloakUserReconciler; import io.fabric8.kubernetes.client.KubernetesClient; import lombok.SneakyThrows; diff --git a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserSpecTestFactory.java b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpecTestFactory.java similarity index 66% rename from src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserSpecTestFactory.java rename to src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpecTestFactory.java index 847bde3..cd0c9d0 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserSpecTestFactory.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpecTestFactory.java @@ -1,6 +1,7 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; -import de.ozgcloud.operator.keycloak.KeycloakUserSpec.KeycloakUserSpecUser; +import de.ozgcloud.operator.keycloak.user.KeycloakUserSpec; +import de.ozgcloud.operator.keycloak.user.KeycloakUserSpec.KeycloakUserSpecUser; class KeycloakUserSpecTestFactory { diff --git a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserSpecUserTestFactory.java b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpecUserTestFactory.java similarity index 72% rename from src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserSpecUserTestFactory.java rename to src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpecUserTestFactory.java index e61e787..d388671 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserSpecUserTestFactory.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserSpecUserTestFactory.java @@ -1,6 +1,6 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; -import de.ozgcloud.operator.keycloak.KeycloakUserSpec.KeycloakUserSpecUser; +import de.ozgcloud.operator.keycloak.user.KeycloakUserSpec.KeycloakUserSpecUser; class KeycloakUserSpecUserTestFactory { diff --git a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserStatusTestFactory.java b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserStatusTestFactory.java similarity index 69% rename from src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserStatusTestFactory.java rename to src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserStatusTestFactory.java index d756b40..89d42fb 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserStatusTestFactory.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserStatusTestFactory.java @@ -1,4 +1,6 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; + +import de.ozgcloud.operator.keycloak.user.KeycloakUserStatus; class KeycloakUserStatusTestFactory { diff --git a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserTestFactory.java b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserTestFactory.java similarity index 66% rename from src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserTestFactory.java rename to src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserTestFactory.java index 8e4f870..fd3a9fb 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/KeycloakUserTestFactory.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserTestFactory.java @@ -1,4 +1,8 @@ -package de.ozgcloud.operator.keycloak; +package de.ozgcloud.operator.keycloak.user; + +import de.ozgcloud.operator.keycloak.user.KeycloakUser; +import de.ozgcloud.operator.keycloak.user.KeycloakUserSpec; +import de.ozgcloud.operator.keycloak.user.KeycloakUserStatus; class KeycloakUserTestFactory { -- GitLab