This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit b2c0c010af053d12502ecdfc8f96d0e9745c9557 Author: Juan Cabrerizo <[email protected]> AuthorDate: Wed Jun 16 09:27:36 2021 +0100 Add doc and TODOS --- .../java/org/apache/brooklyn/util/core/logbook/BrooklynLogEntry.java | 4 ++++ .../main/java/org/apache/brooklyn/util/core/logbook/LogStore.java | 3 +++ .../org/apache/brooklyn/util/core/logbook/file/FileLogStore.java | 5 ++++- .../util/core/logbook/opensearch/BrooklynOpenSearchModel.java | 5 +++++ .../brooklyn/util/core/logbook/opensearch/OpenSearchLogStore.java | 3 ++- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/util/core/logbook/BrooklynLogEntry.java b/core/src/main/java/org/apache/brooklyn/util/core/logbook/BrooklynLogEntry.java index 1e997a3..4ba0256 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/logbook/BrooklynLogEntry.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/logbook/BrooklynLogEntry.java @@ -25,6 +25,10 @@ import org.apache.brooklyn.util.exceptions.Exceptions; import java.util.Date; +/** + * This class models the log format used by Apache Brooklyn by default + * @see `etc/org.ops4j.pax.logging.cfg` + */ public class BrooklynLogEntry { @JsonProperty("timestamp") diff --git a/core/src/main/java/org/apache/brooklyn/util/core/logbook/LogStore.java b/core/src/main/java/org/apache/brooklyn/util/core/logbook/LogStore.java index 3d0214e..83e88be 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/logbook/LogStore.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/logbook/LogStore.java @@ -24,6 +24,9 @@ import java.util.List; public interface LogStore { /** * Expects a set of parameters {@link LogBookQueryParams} to query to the implemented logstore + * @param query Depending on the implementation some of fields could be mandatory + * @return List of the log entries modeled + * @throws IOException */ List<BrooklynLogEntry> query(LogBookQueryParams query) throws IOException; diff --git a/core/src/main/java/org/apache/brooklyn/util/core/logbook/file/FileLogStore.java b/core/src/main/java/org/apache/brooklyn/util/core/logbook/file/FileLogStore.java index 0696ea5..cf94baf 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/logbook/file/FileLogStore.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/logbook/file/FileLogStore.java @@ -18,6 +18,7 @@ */ package org.apache.brooklyn.util.core.logbook.file; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import org.apache.brooklyn.api.mgmt.ManagementContext; @@ -73,6 +74,7 @@ public class FileLogStore implements LogStore { private final String logLinePattern; private final String logDateFormat; + @VisibleForTesting public FileLogStore() { this.path = null; this.filePath = ""; @@ -90,7 +92,8 @@ public class FileLogStore implements LogStore { @Override public List<BrooklynLogEntry> query(LogBookQueryParams params) { - // TODO the read of the file needs to be improved, specially to implement reading the file backwards + // TODO the read of the file needs to be improved, specially to implement reading the file backwards and + // do a correct multiline log reading try (Stream<String> stream = Files.lines(path)) { Predicate<BrooklynLogEntry> filter = brooklynLogEntry -> { String initTime = params.getInitTime(); diff --git a/core/src/main/java/org/apache/brooklyn/util/core/logbook/opensearch/BrooklynOpenSearchModel.java b/core/src/main/java/org/apache/brooklyn/util/core/logbook/opensearch/BrooklynOpenSearchModel.java index 4e17b85..1cd8e26 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/logbook/opensearch/BrooklynOpenSearchModel.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/logbook/opensearch/BrooklynOpenSearchModel.java @@ -22,6 +22,11 @@ import org.apache.brooklyn.util.core.logbook.BrooklynLogEntry; import java.util.List; +/** + * This class models the data returned by the ElasticSearch search method. Only the required fields for the implemented + * behaviour are present. + * The original doc can be found in: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html#search-api-response-body + */ class BrooklynOpenSearchModel { OpenSearchHitsWrapper hits; Integer took; diff --git a/core/src/main/java/org/apache/brooklyn/util/core/logbook/opensearch/OpenSearchLogStore.java b/core/src/main/java/org/apache/brooklyn/util/core/logbook/opensearch/OpenSearchLogStore.java index ef4ca28..20a09fa 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/logbook/opensearch/OpenSearchLogStore.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/logbook/opensearch/OpenSearchLogStore.java @@ -106,6 +106,7 @@ public class OpenSearchLogStore implements LogStore { private Boolean verifySsl; private String indexName; + @VisibleForTesting public OpenSearchLogStore() { this.mgmt = null; } @@ -144,7 +145,7 @@ public class OpenSearchLogStore implements LogStore { try { url = new URL(host); } catch (MalformedURLException e) { - throw new IllegalArgumentException("The provided host OpenSeatch host ulr is not valid: " + host); + throw new IllegalArgumentException("The provided host OpenSearch host URL is not valid: " + host); } HttpHost httpHost = new HttpHost(url.getHost(), url.getPort()); CredentialsProvider provider = new BasicCredentialsProvider();
