Skip to content
Snippets Groups Projects
Commit 59f4f461 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-3961 refactoring

parent c0076332
No related branches found
No related tags found
No related merge requests found
......@@ -50,54 +50,40 @@ public class KeycloakUserReconciler implements Reconciler<OzgKeycloakUser>, Clea
@Override
public UpdateControl<OzgKeycloakUser> reconcile(OzgKeycloakUser resource, Context<OzgKeycloakUser> context) {
try {
log.info(String.format("Reconciling user %s...", resource.getMetadata().getName()));
var userName = resource.getMetadata().getName();
var namespace = resource.getMetadata().getNamespace();
log.info(String.format("Reconciling user %s...", userName));
try {
var preconditionError = preconditionService.getPreconditionErrors(resource);
if (preconditionError.isPresent()) {
return buildStatusInProgress(resource, preconditionError.get());
}
var errorMessage = preconditionError.get();
keycloakUserService.createOrUpdateUser(resource.getSpec(), resource.getMetadata().getNamespace());
log.warning(String.format("Could not reconcile user %s in namespace %s: %s", userName, namespace, errorMessage));
resource.setStatus(buildOzgKeycloakUserOkStatus());
return UpdateControl.updateStatus(resource);
} catch (Exception e) {
log.log(Level.SEVERE, String.format("Could not reconcile user %s for namespace %s: %s", resource.getMetadata().getName(),
resource.getMetadata().getNamespace(), e.getMessage()), e);
resource.setStatus(buildOzgKeycloakUserErrorStatus(e.getMessage()));
return createRescheduleUpdateControl(resource);
}
}
private OzgKeycloakUserStatus buildOzgKeycloakUserOkStatus() {
return buildOzgKeycloakUserStatus(OzgCustomResourceStatus.OK, null);
}
private OzgKeycloakUserStatus buildOzgKeycloakUserErrorStatus(String message) {
return buildOzgKeycloakUserStatus(OzgCustomResourceStatus.ERROR, message);
}
return UserUpdateControlBuilder.fromResource(resource)
.withStatus(OzgCustomResourceStatus.IN_PROGRESS)
.withMessage(errorMessage)
.withReschedule(Config.RECONCILER_RETRY_SECONDS)
.build();
}
private UpdateControl<OzgKeycloakUser> buildStatusInProgress(OzgKeycloakUser resource, String errorMessage) {
log.log(Level.WARNING, String.format("Could not reconcile user %s in namespace %s: %s", resource.getMetadata().getName(),
resource.getMetadata().getNamespace(), errorMessage));
keycloakUserService.createOrUpdateUser(resource.getSpec(), namespace);
resource.setStatus(buildOzgKeycloakUserInProgressStatus(errorMessage));
return createRescheduleUpdateControl(resource);
}
return UserUpdateControlBuilder.fromResource(resource).withStatus(OzgCustomResourceStatus.OK).build();
private OzgKeycloakUserStatus buildOzgKeycloakUserInProgressStatus(String message) {
return buildOzgKeycloakUserStatus(OzgCustomResourceStatus.IN_PROGRESS, message);
}
} catch (Exception e) {
var errorMessage = e.getMessage();
private OzgKeycloakUserStatus buildOzgKeycloakUserStatus(OzgCustomResourceStatus status, String message) {
return OzgKeycloakUserStatus.builder().status(status).message(message).build();
}
log.log(Level.SEVERE, String.format("Could not reconcile user %s for namespace %s: %s", userName, namespace, errorMessage), e);
private UpdateControl<OzgKeycloakUser> createRescheduleUpdateControl(OzgKeycloakUser userResource) {
return UpdateControl.updateStatus(userResource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
return UserUpdateControlBuilder.fromResource(resource)
.withStatus(OzgCustomResourceStatus.ERROR)
.withMessage(errorMessage)
.withReschedule(Config.RECONCILER_RETRY_SECONDS_ON_ERROR)
.build();
}
}
@Override
......
......@@ -13,7 +13,7 @@ import io.fabric8.kubernetes.client.extension.ResourceAdapter;
class UserSecretService {
@Autowired
private UserNameConverter userNameMapper;
private UserNameConverter userNameConverter;
@Autowired
private UserSecretBuilder secretBuilder;
@Autowired
......@@ -24,7 +24,7 @@ class UserSecretService {
}
public void create(OzgKeycloakUserSpec userSpec, String namespace) {
var secretName = userNameMapper.toSecretName(userSpec.getKeycloakUser());
var secretName = userNameConverter.toSecretName(userSpec.getKeycloakUser());
var credentialsSecret = secretBuilder.build(secretName, userSpec.getKeycloakUser(), namespace);
......@@ -37,7 +37,7 @@ class UserSecretService {
}
Resource<Secret> getUserSecret(OzgKeycloakUserSpec userSpec, String namespace) {
var secretName = userNameMapper.toSecretName(userSpec.getKeycloakUser());
var secretName = userNameConverter.toSecretName(userSpec.getKeycloakUser());
return kubernetesRemoteService.getSecret(namespace, secretName);
}
......
......@@ -42,7 +42,7 @@ class UserUpdateControlBuilder {
public UpdateControl<OzgKeycloakUser> build() {
resource.setStatus(buildOzgKeycloakUserStatus());
return buildUpdateControl();
}
......@@ -55,7 +55,7 @@ class UserUpdateControlBuilder {
private UpdateControl<OzgKeycloakUser> buildUpdateControl() {
if (reschedule) {
UpdateControl.updateStatus(resource).rescheduleAfter(scheduleDuration);
return UpdateControl.updateStatus(resource).rescheduleAfter(scheduleDuration);
}
return UpdateControl.updateStatus(resource);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment