diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java index 0e8d8d826380b7299d7a1b8a81bbb9558ca2aab0..aa25d5e3454e672c0d6f7fee59472a714f546d0d 100644 --- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java +++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java @@ -19,9 +19,9 @@ import co.elastic.clients.transport.rest_client.RestClientTransport; import de.ozgcloud.operator.OzgCloudElasticsearchProperties; import de.ozgcloud.operator.common.kubernetes.KubernetesRemoteService; import io.fabric8.kubernetes.api.model.Secret; -import lombok.extern.java.Log; +import lombok.extern.log4j.Log4j2; -@Log +@Log4j2 @Configuration public class ElasticsearchClientConfiguration { @@ -33,7 +33,7 @@ public class ElasticsearchClientConfiguration { @Bean @Scope("singleton") ElasticsearchClient createElasticsearchClient() { - log.info("Create elasticsearch client..."); + LOG.info("Create elasticsearch client..."); var credentialsProvider = createCredentialsProvider(elasticSearchProperties.getServer().getSecretDataKey(), getPassword()); var restClient = buildRestClient(credentialsProvider); var transport = createRestClientTransport(restClient); @@ -43,7 +43,6 @@ public class ElasticsearchClientConfiguration { private BasicCredentialsProvider createCredentialsProvider(String userName, String password) { var credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); - log.info(String.format("use credentials: username: %s, password: %s", userName, password)); return credentialsProvider; } @@ -54,8 +53,10 @@ public class ElasticsearchClientConfiguration { } private HttpHost createHttpHost() { - log.info(String.format("use host: %s with port: %s and scheme: %s", elasticSearchProperties.getServer().getHost(), elasticSearchProperties.getServer().getPort(), elasticSearchProperties.getServer().getScheme())); - return new HttpHost(elasticSearchProperties.getServer().getHost(), elasticSearchProperties.getServer().getPort(), elasticSearchProperties.getServer().getScheme()); + LOG.info(String.format("ElasticSearch config: host: %s with port: %s and scheme: %s", elasticSearchProperties.getServer().getHost(), + elasticSearchProperties.getServer().getPort(), elasticSearchProperties.getServer().getScheme())); + return new HttpHost(elasticSearchProperties.getServer().getHost(), elasticSearchProperties.getServer().getPort(), + elasticSearchProperties.getServer().getScheme()); } private RestClientTransport createRestClientTransport(RestClient restClient) { @@ -63,23 +64,23 @@ public class ElasticsearchClientConfiguration { } String getPassword() { - log.info(String.format("get password from secret: %s in namespace %s", elasticSearchProperties.getServer().getSecretName(), elasticSearchProperties.getServer().getNamespace())); + LOG.debug(String.format("get password from secret: %s in namespace %s", elasticSearchProperties.getServer().getSecretName(), + elasticSearchProperties.getServer().getNamespace())); var secret = getCredentialsSecret(); - log.info(String.format("secret data: %s", secret.getData())); var password = getPasswordFromSecret(secret); - log.info(String.format("used password: %s", password)); return password; } - + private Secret getCredentialsSecret() { - return kubernetesService.getSecretResource(elasticSearchProperties.getServer().getNamespace(), elasticSearchProperties.getServer().getSecretName()).get(); + return kubernetesService + .getSecretResource(elasticSearchProperties.getServer().getNamespace(), elasticSearchProperties.getServer().getSecretName()).get(); } - + private String getPasswordFromSecret(Secret secret) { - var encodedPassword = MapUtils.getString(secret.getData(), elasticSearchProperties.getServer().getSecretDataKey()); + var encodedPassword = MapUtils.getString(secret.getData(), elasticSearchProperties.getServer().getSecretDataKey()); return decode(encodedPassword, secret); } - + private String decode(String encodedPassword, Secret secret) { return new String(Base64.getDecoder().decode(encodedPassword)); } diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchRemoteService.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchRemoteService.java index 9cb768d1fe166a937f82bb812d455a3fb4728bb0..df911818b510fc33765ec243a4d14f2638ce22a8 100644 --- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchRemoteService.java +++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchRemoteService.java @@ -1,7 +1,6 @@ package de.ozgcloud.operator.common.elasticsearch; import java.io.IOException; -import java.util.logging.Level; import org.springframework.stereotype.Component; @@ -13,128 +12,121 @@ import co.elastic.clients.elasticsearch.security.PutUserRequest; import de.ozgcloud.operator.PutRoleRequestData; import de.ozgcloud.operator.PutUserRequestData; import lombok.RequiredArgsConstructor; -import lombok.extern.java.Log; +import lombok.extern.log4j.Log4j2; -@Log +@Log4j2 @RequiredArgsConstructor @Component public class ElasticsearchRemoteService { - + private final ElasticsearchClient client; - + public boolean existsIndex(String index) throws Exception { try { - log.info("Exists index " + index + "..."); + LOG.debug("Test if elasticsearch index {0} exits.", index); var exists = client.indices().exists(builder -> builder.index(index)).value(); - log.info("Exists index: " + exists); + LOG.debug("Elasticsearch index exists: {0}", exists); return exists; } catch (ElasticsearchException | IOException e) { - log.log(Level.SEVERE, "Error checking index '" + index + "': " + e); - throw e; + throw new RuntimeException("Error checking index '" + index, e); } } - + public void createIndex(String indexName) throws Exception { try { - log.info("Create index " + indexName + "..."); + LOG.info("Create elasticsearch index {0}", indexName); client.indices().create(builder -> builder.index(indexName)); - log.info("Create index successful."); - } catch(Exception e) { - log.log(Level.SEVERE, "Create index failed." + e); - throw e; + LOG.info("Create elasticsearch index {0} successful", indexName); + } catch (Exception e) { + throw new RuntimeException("Create elasticsearch index " + indexName + "failed.", e); } } - + public boolean existsSecurityRole(String roleName) throws Exception { return !client.security().getRole(builder -> builder.name(roleName)).result().isEmpty(); } - + public void createSecurityRole(PutRoleRequestData requestData) throws Exception { try { - log.info("Create SecurityRole " + requestData.getName() + "..."); + LOG.info("Create elasticsearch role {0}", requestData.getName()); client.security().putRole(createPutRoleRequest(requestData)); - log.info("Create SecurityRole successful."); - } catch(Exception e) { - log.log(Level.SEVERE, "Create SecurityRole failed." + e); - throw e; + LOG.info("Create elasticsearch role {0} successful", requestData.getName()); + } catch (Exception e) { + throw new RuntimeException("Create elasticsearch role " + requestData.getName() + "failed.", e); } } - + PutRoleRequest createPutRoleRequest(PutRoleRequestData requestData) { return PutRoleRequest.of(requestBuilder -> buildRequest(requestBuilder, requestData)); } - + private PutRoleRequest.Builder buildRequest(PutRoleRequest.Builder requestBuilder, PutRoleRequestData requestData) { requestBuilder.name(requestData.getName()); requestBuilder.indices(builder -> buildIndicesPrivilegesRequest(builder, requestData)); - + return requestBuilder; } - + private IndicesPrivileges.Builder buildIndicesPrivilegesRequest(IndicesPrivileges.Builder builder, PutRoleRequestData requestData) { builder.names(requestData.getIndivesPrivilegesData().getNames()); builder.privileges(requestData.getIndivesPrivilegesData().getPrivileges()); - + return builder; } - + public boolean existsSecurityUser(String userName) throws Exception { return !client.security().getUser(builder -> builder.username(userName)).result().isEmpty(); } - + public void createSecurityUser(PutUserRequestData requestData) throws Exception { try { - log.info("Create SecurityUser " + requestData.getUsername() + "..."); + LOG.info("Create elasticsearch user {0}", requestData.getUsername()); client.security().putUser(createPutUserRequest(requestData)); - log.info("Create SecurityUser successful."); - } catch(Exception e) { - log.log(Level.SEVERE, "Create SecurityUser failed." + e); - throw e; + LOG.info("Create elasticsearch user {0} successful", requestData.getUsername()); + } catch (Exception e) { + throw new RuntimeException("Create elasticsearch user " + requestData.getUsername() + "failed.", e); } } - + PutUserRequest createPutUserRequest(PutUserRequestData requestData) { return PutUserRequest.of(requestBuilder -> buildPutUserRequest(requestBuilder, requestData)); } - + private PutUserRequest.Builder buildPutUserRequest(PutUserRequest.Builder builder, PutUserRequestData requestData) { builder.username(requestData.getUsername()); builder.roles(requestData.getRoles()); builder.password(requestData.getPassword()); - + return builder; } - + public void deleteIndex(String indexName) throws Exception { try { - log.info("Delete index " + indexName + "..."); + LOG.info("Delete elasticsearch index {0}", indexName); client.indices().delete(builder -> builder.index(indexName)); - log.info("Delete index successful."); - } catch(Exception e) { - log.log(Level.SEVERE, "Delete index failed." + e); - throw e; + LOG.info("Delete elasticsearch index {0} successful", indexName); + } catch (Exception e) { + throw new RuntimeException("Delete elasticsearch index " + indexName + "failed.", e); } } - + public void deleteSecurityRole(String roleName) throws Exception { try { - log.info("Delete security role " + roleName + "..."); + LOG.info("Delete elasticsearch role {0}", roleName); client.security().deleteRole(builder -> builder.name(roleName)); - log.info("Delete security role successful."); - } catch(Exception e) { - log.log(Level.SEVERE, "Delete security role failed." + e); - throw e; + LOG.info("Delete elasticsearch role {0} successful", roleName); + } catch (Exception e) { + throw new RuntimeException("Delete elasticsearch role " + roleName + "failed.", e); } } - + public void deleteSecurityUser(String userName) throws Exception { try { - log.info("Delete security user " + userName + "..."); + LOG.info("Delete elasticsearch user {0}", userName); client.security().deleteUser(builder -> builder.username(userName)); - log.info("Delete security user successful."); - } catch(Exception e) { - log.log(Level.SEVERE, "Delete security user failed." + e); - throw e; + LOG.info("Delete elasticsearch user {0} successful", userName); + } catch (Exception e) { + throw new RuntimeException("Delete elasticsearch user " + userName + "failed.", e); } } } \ No newline at end of file