Skip to content
Snippets Groups Projects
Commit 9b15b996 authored by OZGCloud's avatar OZGCloud
Browse files

cdr status test

parent 9054dbd6
No related merge requests found
Showing
with 146 additions and 16 deletions
...@@ -29,6 +29,13 @@ ...@@ -29,6 +29,13 @@
<!-- <artifactId>spring-boot-starter-web-services</artifactId>--> <!-- <artifactId>spring-boot-starter-web-services</artifactId>-->
<!-- </dependency>--> <!-- </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> <dependency>
<groupId>io.javaoperatorsdk</groupId> <groupId>io.javaoperatorsdk</groupId>
......
...@@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; 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.fabric8.kubernetes.client.KubernetesClient;
import io.javaoperatorsdk.operator.Operator; import io.javaoperatorsdk.operator.Operator;
import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
......
...@@ -12,9 +12,9 @@ import org.springframework.aot.hint.RuntimeHintsRegistrar; ...@@ -12,9 +12,9 @@ import org.springframework.aot.hint.RuntimeHintsRegistrar;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportRuntimeHints; import org.springframework.context.annotation.ImportRuntimeHints;
import de.ozgcloud.operator.keycloak.KeycloakUser; import de.ozgcloud.operator.keycloak.user.KeycloakUser;
import de.ozgcloud.operator.keycloak.KeycloakUserSpec; import de.ozgcloud.operator.keycloak.user.KeycloakUserSpec;
import de.ozgcloud.operator.keycloak.KeycloakUserStatus; import de.ozgcloud.operator.keycloak.user.KeycloakUserStatus;
import io.fabric8.kubernetes.api.model.KubernetesResource; import io.fabric8.kubernetes.api.model.KubernetesResource;
import io.fabric8.kubernetes.api.model.NamedCluster; import io.fabric8.kubernetes.api.model.NamedCluster;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
......
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;
}
}
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();
}
}
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) {
}
}
package de.ozgcloud.operator.keycloak; package de.ozgcloud.operator.keycloak.user;
import io.fabric8.kubernetes.api.model.Namespaced; import io.fabric8.kubernetes.api.model.Namespaced;
import io.fabric8.kubernetes.client.CustomResource; import io.fabric8.kubernetes.client.CustomResource;
......
package de.ozgcloud.operator.keycloak; package de.ozgcloud.operator.keycloak.user;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Base64; import java.util.Base64;
...@@ -31,7 +31,7 @@ public class KeycloakUserReconciler implements Reconciler<KeycloakUser> { ...@@ -31,7 +31,7 @@ public class KeycloakUserReconciler implements Reconciler<KeycloakUser> {
String namespace = crd.getMetadata().getNamespace(); String namespace = crd.getMetadata().getNamespace();
log.warning("Reconciling: " + name + "/" + namespace); log.warning("Reconciling: " + name + "/" + namespace);
log.warning("SecretTest:" + getKeycloakRealmAdminPassword(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); return UpdateControl.updateStatus(crd);
} }
......
package de.ozgcloud.operator.keycloak; package de.ozgcloud.operator.keycloak.user;
import java.util.List; import java.util.List;
......
package de.ozgcloud.operator.keycloak; package de.ozgcloud.operator.keycloak.user;
import io.javaoperatorsdk.operator.api.ObservedGenerationAwareStatus; import io.javaoperatorsdk.operator.api.ObservedGenerationAwareStatus;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -15,4 +15,6 @@ import lombok.Setter; ...@@ -15,4 +15,6 @@ import lombok.Setter;
public class KeycloakUserStatus extends ObservedGenerationAwareStatus { public class KeycloakUserStatus extends ObservedGenerationAwareStatus {
private String status; private String status;
private String phase;
} }
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();
}
}
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();
}
}
package de.ozgcloud.operator.keycloak; package de.ozgcloud.operator.keycloak.user;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.*;
...@@ -12,6 +12,8 @@ import org.mockito.InjectMocks; ...@@ -12,6 +12,8 @@ import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.Spy; 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 io.fabric8.kubernetes.client.KubernetesClient;
import lombok.SneakyThrows; import lombok.SneakyThrows;
......
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 { class KeycloakUserSpecTestFactory {
......
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 { class KeycloakUserSpecUserTestFactory {
......
package de.ozgcloud.operator.keycloak; package de.ozgcloud.operator.keycloak.user;
import de.ozgcloud.operator.keycloak.user.KeycloakUserStatus;
class KeycloakUserStatusTestFactory { class KeycloakUserStatusTestFactory {
......
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 { class KeycloakUserTestFactory {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment