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