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

OZG-4453 enhance logging

parent 43e34b12
No related branches found
No related tags found
No related merge requests found
package de.ozgcloud.operator;
import java.util.Base64;
import java.util.logging.Level;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Component;
......@@ -14,9 +13,9 @@ import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import lombok.RequiredArgsConstructor;
import lombok.extern.java.Log;
import lombok.extern.log4j.Log4j2;
@Log
@Log4j2
@RequiredArgsConstructor
@ControllerConfiguration
@Component
......@@ -28,25 +27,22 @@ public class ElasticsearchReconciler implements Reconciler<OzgCloudElasticsearch
public UpdateControl<OzgCloudElasticsearchCustomResource> reconcile(OzgCloudElasticsearchCustomResource resource,
Context<OzgCloudElasticsearchCustomResource> context) {
try {
log.log(Level.INFO, "Reconcile user {0} ", resource.getCRDName());
LOG.info("{0}: Reconcile user", resource.getCRDName());
var namespace = resource.getMetadata().getNamespace();
var secret = service.getOrCreateCredentialSecret(resource, context);
service.createIndexIfMissing(namespace);
service.createSecurityRoleIfMissing(namespace);
service.createSecurityUserIfMissing(namespace, getPassword(secret));
service.createCertificateIfMissing(namespace);
log.log(Level.INFO, "Reconcile user {0} successful.", resource.getCRDName());
LOG.info("{0}: Reconcile user successful.", resource.getCRDName());
return OzgCloudElasticsearchUpdateControlBuilder.fromResource(resource).withStatus(CustomResourceStatus.OK).build();
} catch (Exception exception) {
log.log(Level.WARNING, "Reconcile user " + resource.getCRDName() + " failed.", exception);
LOG.warn(resource.getCRDName() + ": Reconcile user failed.", exception);
return buildExceptionUpdateControl(resource, exception);
}
}
String getPassword(Secret secret) {
log.info("get password for elastic user...");
log.info(String.format("from secret string map: %s", secret.getStringData()));
log.info(String.format("from secret data map: %s", secret.getData()));
return decode(MapUtils.getString(secret.getData(), OzgCloudElasticsearchSecretHelper.CREDENTIAL_SECRET_PASSWORD_FIELD));
}
......@@ -77,7 +73,7 @@ public class ElasticsearchReconciler implements Reconciler<OzgCloudElasticsearch
service.deleteIndexIfExists(namespace);
return DeleteControl.defaultDelete();
} catch (Exception e) {
log.log(Level.INFO, String.format("Could not cleanup elasticsearch resource in namespace %s. %n %s", namespace, e));
LOG.warn(resource.getCRDName() + ": Could not cleanup elasticsearch resource.", e);
return DeleteControl.defaultDelete();
}
}
......
package de.ozgcloud.operator;
import java.util.Objects;
import java.util.logging.Level;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Component;
......@@ -14,9 +13,9 @@ import io.fabric8.kubernetes.client.dsl.Resource;
import io.fabric8.kubernetes.client.extension.ResourceAdapter;
import io.javaoperatorsdk.operator.api.reconciler.Context;
import lombok.RequiredArgsConstructor;
import lombok.extern.java.Log;
import lombok.extern.log4j.Log4j2;
@Log
@Log4j2
@RequiredArgsConstructor
@Component
public class OzgCloudElasticsearchService {
......@@ -30,19 +29,18 @@ public class OzgCloudElasticsearchService {
public Secret getOrCreateCredentialSecret(OzgCloudElasticsearchCustomResource resource, Context<OzgCloudElasticsearchCustomResource> context) {
try {
log.log(Level.INFO, "{0}: Get or create secret.", resource.getCRDName());
LOG.debug("{0}: Get or create secret.", resource.getCRDName());
var namespace = resource.getMetadata().getNamespace();
var secretResource = getCredentialsSecretResource(namespace);
if (Objects.isNull(secretResource.get())) {
log.log(Level.INFO, "{0}: Secret not exists, create one ...", resource.getCRDName());
LOG.info("{0}: Secret not exists, create one ...", resource.getCRDName());
createCredentialSecret(secretResource, namespace);
log.info("Secret creation successful.");
LOG.info("{0}: Secret creation successful.", resource.getCRDName());
}
log.info("secret...");
return secretResource.get();
} catch (Exception e) {
log.info("Secret creation failed: " + e);
LOG.warn(resource.getCRDName() + ": Secret creation failed: ", e);
throw e;
}
}
......@@ -56,19 +54,17 @@ public class OzgCloudElasticsearchService {
}
public void createIndexIfMissing(String name) throws Exception {
log.info("Check index...");
LOG.debug("{0}: Check elasticsearch index...", name);
if (!remoteService.existsIndex(name)) {
remoteService.createIndex(name);
}
log.info("Check index successful.");
}
public void createSecurityRoleIfMissing(String roleName) throws Exception {
log.info("Check security role...");
LOG.debug("{0}: Check elasticsearch role...", roleName);
if (!remoteService.existsSecurityRole(roleName)) {
remoteService.createSecurityRole(buildPutRoleRequestData(roleName));
}
log.info("Check security role successful.");
}
PutRoleRequestData buildPutRoleRequestData(String roleName) {
......@@ -80,11 +76,10 @@ public class OzgCloudElasticsearchService {
}
public void createSecurityUserIfMissing(String namespace, String password) throws Exception {
log.info("Check security user...");
LOG.debug("{0}: Check elasticsearch user...", namespace);
if (!remoteService.existsSecurityUser(namespace)) {
remoteService.createSecurityUser(buildPutUserRequestData(namespace, password));
}
log.info("Check security user successful.");
}
PutUserRequestData buildPutUserRequestData(String namespace, String password) {
......@@ -92,42 +87,37 @@ public class OzgCloudElasticsearchService {
}
public void deleteSecurityUserIfExists(String userName) throws Exception {
log.info("Delete security user...");
LOG.debug("{0}: Check delete elasticsearch user...", userName);
if (remoteService.existsSecurityUser(userName)) {
remoteService.deleteSecurityUser(userName);
}
log.info("Delete security user successful.");
}
public void deleteSecurityRoleIfExists(String roleName) throws Exception {
log.info("Delete security role...");
LOG.debug("{0}: Check delete elasticsearch role...", roleName);
if (remoteService.existsSecurityRole(roleName)) {
remoteService.deleteSecurityRole(roleName);
}
log.info("Delete security role successful.");
}
public void deleteIndexIfExists(String indexName) throws Exception {
log.info("Delete index role...");
LOG.debug("{0}: Check delete elasticsearch index ...", indexName);
if (remoteService.existsIndex(indexName)) {
remoteService.deleteIndex(indexName);
}
log.info("Delete index role successful.");
}
public void createCertificateIfMissing(String namespace) {
try {
log.info("Create certificate secret if missing...");
LOG.debug("{0}: Create certificate secret if missing...", namespace);
var secretResource = kubernetesService.getSecretResource(namespace, properties.getCertificateSecretName());
if (Objects.isNull(secretResource.get())) {
log.info("create...");
LOG.info("{0}: Create certificate secret", namespace);
createCredentialSecret(namespace, secretResource);
log.info("create successful.");
}
} catch (Exception e) {
log.log(Level.SEVERE, "Certificate secret creation failed: " + e);
throw e;
throw new RuntimeException("Certificate secret creation failed " + namespace);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment