Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 87D80200CE1 for ; Thu, 10 Aug 2017 12:27:11 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 8657A16B08A; Thu, 10 Aug 2017 10:27:11 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 4E04316B075 for ; Thu, 10 Aug 2017 12:27:10 +0200 (CEST) Received: (qmail 79275 invoked by uid 500); 10 Aug 2017 10:27:09 -0000 Mailing-List: contact commits-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@ambari.apache.org Delivered-To: mailing list commits@ambari.apache.org Received: (qmail 78276 invoked by uid 99); 10 Aug 2017 10:27:08 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Aug 2017 10:27:08 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id D0AFFF5552; Thu, 10 Aug 2017 10:27:07 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ababiichuk@apache.org To: commits@ambari.apache.org Date: Thu, 10 Aug 2017 10:27:23 -0000 Message-Id: <437ed8cb4a9f4be9a404c909cf99babf@git.apache.org> In-Reply-To: <16ea01dde6d6492b928a2b09f2a08ad9@git.apache.org> References: <16ea01dde6d6492b928a2b09f2a08ad9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [17/50] [abbrv] ambari git commit: AMBARI-21623 Log Search Config should be separated into a Server and Log Feeder interface (mgergely) archived-at: Thu, 10 Aug 2017 10:27:11 -0000 http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/input/InputConfigUploader.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/input/InputConfigUploader.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/input/InputConfigUploader.java index 5fdfded..8f8c4fd 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/input/InputConfigUploader.java +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/input/InputConfigUploader.java @@ -27,8 +27,8 @@ import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.ambari.logsearch.config.api.LogSearchConfig; import org.apache.ambari.logfeeder.util.LogFeederPropertiesUtil; +import org.apache.ambari.logsearch.config.api.LogSearchConfigLogFeeder; import org.apache.log4j.Logger; import com.google.common.io.Files; @@ -47,13 +47,13 @@ public class InputConfigUploader extends Thread { }; private final Set filesHandled = new HashSet<>(); private final Pattern serviceNamePattern = Pattern.compile("input.config-(.+).json"); - private final LogSearchConfig config; + private final LogSearchConfigLogFeeder config; - public static void load(LogSearchConfig config) { + public static void load(LogSearchConfigLogFeeder config) { new InputConfigUploader(config).start(); } - private InputConfigUploader(LogSearchConfig config) { + private InputConfigUploader(LogSearchConfigLogFeeder config) { super("Input Config Loader"); setDaemon(true); @@ -73,7 +73,7 @@ public class InputConfigUploader extends Thread { String serviceName = m.group(1); String inputConfig = Files.toString(inputConfigFile, Charset.defaultCharset()); - if (!config.inputConfigExistsLogFeeder(serviceName)) { + if (!config.inputConfigExists(serviceName)) { config.createInputConfig(LogFeederPropertiesUtil.getClusterName(), serviceName, inputConfig); } filesHandled.add(inputConfigFile.getAbsolutePath()); http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java index b370e58..c0075b5 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java @@ -28,7 +28,7 @@ import org.apache.ambari.logfeeder.common.ConfigBlock; import org.apache.ambari.logfeeder.input.InputMarker; import org.apache.ambari.logfeeder.metrics.MetricData; import org.apache.ambari.logfeeder.util.LogFeederUtil; -import org.apache.ambari.logsearch.config.api.LogSearchConfig; +import org.apache.ambari.logsearch.config.api.LogSearchConfigLogFeeder; import org.apache.ambari.logsearch.config.api.OutputConfigMonitor; import org.apache.ambari.logsearch.config.api.model.outputconfig.OutputProperties; @@ -104,9 +104,9 @@ public abstract class Output extends ConfigBlock implements OutputConfigMonitor this.destination = destination; } - protected LogSearchConfig logSearchConfig; + protected LogSearchConfigLogFeeder logSearchConfig; - public void setLogSearchConfig(LogSearchConfig logSearchConfig) { + public void setLogSearchConfig(LogSearchConfigLogFeeder logSearchConfig) { this.logSearchConfig = logSearchConfig; } http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/output/OutputSolrTest.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/output/OutputSolrTest.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/output/OutputSolrTest.java index ce040f9..5ab271a 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/output/OutputSolrTest.java +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/output/OutputSolrTest.java @@ -28,7 +28,7 @@ import java.util.concurrent.ConcurrentHashMap; import org.apache.ambari.logfeeder.input.Input; import org.apache.ambari.logfeeder.input.InputMarker; -import org.apache.ambari.logsearch.config.api.LogSearchConfig; +import org.apache.ambari.logsearch.config.api.LogSearchConfigLogFeeder; import org.apache.ambari.logsearch.config.api.model.outputconfig.OutputSolrProperties; import org.apache.ambari.logsearch.config.zookeeper.model.outputconfig.impl.OutputSolrPropertiesImpl; import org.apache.log4j.Logger; @@ -50,7 +50,7 @@ public class OutputSolrTest { private static final Logger LOG = Logger.getLogger(OutputSolrTest.class); private OutputSolr outputSolr; - private LogSearchConfig logSearchConfigMock; + private LogSearchConfigLogFeeder logSearchConfigMock; private Map receivedDocs = new ConcurrentHashMap<>(); @Rule @@ -80,7 +80,7 @@ public class OutputSolrTest { }; OutputSolrProperties outputSolrProperties = new OutputSolrPropertiesImpl("hadoop_logs", "none"); - logSearchConfigMock = EasyMock.createNiceMock(LogSearchConfig.class); + logSearchConfigMock = EasyMock.createNiceMock(LogSearchConfigLogFeeder.class); EasyMock.expect(logSearchConfigMock.getOutputSolrProperties("service")).andReturn(outputSolrProperties); EasyMock.replay(logSearchConfigMock); http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/LogSearchConfigConfigurer.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/LogSearchConfigConfigurer.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/LogSearchConfigConfigurer.java index 3f6df75..23b7430 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/LogSearchConfigConfigurer.java +++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/LogSearchConfigConfigurer.java @@ -25,10 +25,9 @@ import javax.inject.Named; import org.apache.ambari.logsearch.common.PropertiesHelper; import org.apache.ambari.logsearch.conf.global.LogSearchConfigState; -import org.apache.ambari.logsearch.config.api.LogSearchConfig; import org.apache.ambari.logsearch.config.api.LogSearchConfigFactory; -import org.apache.ambari.logsearch.config.api.LogSearchConfig.Component; -import org.apache.ambari.logsearch.config.zookeeper.LogSearchConfigZK; +import org.apache.ambari.logsearch.config.api.LogSearchConfigServer; +import org.apache.ambari.logsearch.config.zookeeper.LogSearchConfigServerZK; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,8 +37,8 @@ public class LogSearchConfigConfigurer implements Configurer { private static final int RETRY_INTERVAL_SECONDS = 10; - private static LogSearchConfig logSearchConfig; - public static LogSearchConfig getConfig() { + private LogSearchConfigServer logSearchConfig; + public LogSearchConfigServer getConfig() { return logSearchConfig; } @@ -55,8 +54,8 @@ public class LogSearchConfigConfigurer implements Configurer { logger.info("Started thread to set up log search config"); while (true) { try { - logSearchConfig = LogSearchConfigFactory.createLogSearchConfig(Component.SERVER, PropertiesHelper.getProperties(), - null, LogSearchConfigZK.class); + logSearchConfig = LogSearchConfigFactory.createLogSearchConfigServer(PropertiesHelper.getProperties(), + LogSearchConfigServerZK.class); logSearchConfigState.setLogSearchConfigAvailable(true); break; } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/SolrCollectionConfigurer.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/SolrCollectionConfigurer.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/SolrCollectionConfigurer.java index 6de34ce..ff828a3 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/SolrCollectionConfigurer.java +++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/configurer/SolrCollectionConfigurer.java @@ -219,7 +219,8 @@ public class SolrCollectionConfigurer implements Configurer { boolean reloadCollectionNeeded) { try { List allCollectionList = new ListCollectionHandler().handle(solrClient, null); - boolean collectionCreated = new CreateCollectionHandler(allCollectionList).handle(solrClient, solrPropsConfig); + CreateCollectionHandler handler = new CreateCollectionHandler(solrDaoBase.getLogSearchConfig(), allCollectionList); + boolean collectionCreated = handler.handle(solrClient, solrPropsConfig); boolean collectionReloaded = true; if (reloadCollectionNeeded) { collectionReloaded = new ReloadCollectionHandler().handle(solrClient, solrPropsConfig); http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java index 15f59e4..ef5e697 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java +++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java @@ -26,6 +26,8 @@ import org.apache.ambari.logsearch.conf.SolrKerberosConfig; import org.apache.ambari.logsearch.conf.SolrPropsConfig; import org.apache.ambari.logsearch.conf.global.LogSearchConfigState; import org.apache.ambari.logsearch.conf.global.SolrCollectionState; +import org.apache.ambari.logsearch.config.api.LogSearchConfigServer; +import org.apache.ambari.logsearch.configurer.LogSearchConfigConfigurer; import org.apache.ambari.logsearch.util.RESTErrorUtil; import org.apache.ambari.logsearch.util.SolrUtil; import org.apache.log4j.Logger; @@ -56,7 +58,10 @@ public abstract class SolrDaoBase { private SolrKerberosConfig solrKerberosConfig; @Inject - protected LogSearchConfigState logSearchConfigState; + private LogSearchConfigState logSearchConfigState; + + @Inject + private LogSearchConfigConfigurer logSearchConfigConfigurer; protected SolrDaoBase(LogType logType) { this.logType = logType; @@ -152,6 +157,10 @@ public abstract class SolrDaoBase { return (CloudSolrClient) getSolrTemplate().getSolrClient(); } + public LogSearchConfigServer getLogSearchConfig() { + return logSearchConfigConfigurer.getConfig(); + } + public abstract SolrTemplate getSolrTemplate(); public abstract void setSolrTemplate(SolrTemplate solrTemplate); http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/handler/CreateCollectionHandler.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/handler/CreateCollectionHandler.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/handler/CreateCollectionHandler.java index 8b4c7bf..a988856 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/handler/CreateCollectionHandler.java +++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/handler/CreateCollectionHandler.java @@ -19,6 +19,7 @@ package org.apache.ambari.logsearch.handler; import org.apache.ambari.logsearch.conf.SolrPropsConfig; +import org.apache.ambari.logsearch.config.api.LogSearchConfigServer; import org.apache.ambari.logsearch.config.api.model.outputconfig.OutputSolrProperties; import org.apache.ambari.logsearch.config.zookeeper.model.outputconfig.impl.OutputSolrPropertiesImpl; import org.apache.ambari.logsearch.configurer.LogSearchConfigConfigurer; @@ -54,9 +55,11 @@ public class CreateCollectionHandler implements SolrZkRequestHandler { private static final String MODIFY_COLLECTION_QUERY = "/admin/collections?action=MODIFYCOLLECTION&collection=%s&%s=%d"; private static final String MAX_SHARDS_PER_NODE = "maxShardsPerNode"; + private final LogSearchConfigServer logSearchConfig; private final List allCollectionList; - public CreateCollectionHandler(List allCollectionList) { + public CreateCollectionHandler(LogSearchConfigServer logSearchConfig, List allCollectionList) { + this.logSearchConfig = logSearchConfig; this.allCollectionList = allCollectionList; } @@ -65,7 +68,7 @@ public class CreateCollectionHandler implements SolrZkRequestHandler { if (solrPropsConfig.getLogType() != null) { OutputSolrProperties outputSolrProperties = new OutputSolrPropertiesImpl(solrPropsConfig.getCollection(), solrPropsConfig.getSplitInterval()); - LogSearchConfigConfigurer.getConfig().saveOutputSolrProperties(solrPropsConfig.getLogType(), outputSolrProperties); + logSearchConfig.saveOutputSolrProperties(solrPropsConfig.getLogType(), outputSolrProperties); } boolean result; http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/manager/ShipperConfigManager.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/manager/ShipperConfigManager.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/manager/ShipperConfigManager.java index a1181b4..b19db72 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/manager/ShipperConfigManager.java +++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/manager/ShipperConfigManager.java @@ -50,24 +50,24 @@ public class ShipperConfigManager extends JsonManagerBase { private LogSearchConfigConfigurer logSearchConfigConfigurer; public List getServices(String clusterName) { - return LogSearchConfigConfigurer.getConfig().getServices(clusterName); + return logSearchConfigConfigurer.getConfig().getServices(clusterName); } public LSServerInputConfig getInputConfig(String clusterName, String serviceName) { - InputConfig inputConfig = LogSearchConfigConfigurer.getConfig().getInputConfig(clusterName, serviceName); + InputConfig inputConfig = logSearchConfigConfigurer.getConfig().getInputConfig(clusterName, serviceName); return new LSServerInputConfig(inputConfig); } public Response createInputConfig(String clusterName, String serviceName, LSServerInputConfig inputConfig) { try { - if (LogSearchConfigConfigurer.getConfig().inputConfigExistsServer(clusterName, serviceName)) { + if (logSearchConfigConfigurer.getConfig().inputConfigExists(clusterName, serviceName)) { return Response.serverError() .type(MediaType.APPLICATION_JSON) .entity(ImmutableMap.of("errorMessage", "Input config already exists for service " + serviceName)) .build(); } - LogSearchConfigConfigurer.getConfig().createInputConfig(clusterName, serviceName, new ObjectMapper().writeValueAsString(inputConfig)); + logSearchConfigConfigurer.getConfig().createInputConfig(clusterName, serviceName, new ObjectMapper().writeValueAsString(inputConfig)); return Response.ok().build(); } catch (Exception e) { logger.warn("Could not create input config", e); @@ -77,14 +77,14 @@ public class ShipperConfigManager extends JsonManagerBase { public Response setInputConfig(String clusterName, String serviceName, LSServerInputConfig inputConfig) { try { - if (!LogSearchConfigConfigurer.getConfig().inputConfigExistsServer(clusterName, serviceName)) { + if (!logSearchConfigConfigurer.getConfig().inputConfigExists(clusterName, serviceName)) { return Response.serverError() .type(MediaType.APPLICATION_JSON) .entity(ImmutableMap.of("errorMessage", "Input config doesn't exist for service " + serviceName)) .build(); } - LogSearchConfigConfigurer.getConfig().setInputConfig(clusterName, serviceName, new ObjectMapper().writeValueAsString(inputConfig)); + logSearchConfigConfigurer.getConfig().setInputConfig(clusterName, serviceName, new ObjectMapper().writeValueAsString(inputConfig)); return Response.ok().build(); } catch (Exception e) { logger.warn("Could not update input config", e); @@ -101,7 +101,7 @@ public class ShipperConfigManager extends JsonManagerBase { throw new IllegalArgumentException("Error validating shipper config:\n" + violations); } - String globalConfigs = LogSearchConfigConfigurer.getConfig().getGlobalConfigs(clusterName); + String globalConfigs = logSearchConfigConfigurer.getConfig().getGlobalConfigs(clusterName); LogEntryParseTester tester = new LogEntryParseTester(testEntry, shipperConfig, globalConfigs, logId); return tester.parse(); } catch (Exception e) { @@ -111,12 +111,12 @@ public class ShipperConfigManager extends JsonManagerBase { } public LSServerLogLevelFilterMap getLogLevelFilters(String clusterName) { - return new LSServerLogLevelFilterMap(LogSearchConfigConfigurer.getConfig().getLogLevelFilters(clusterName)); + return new LSServerLogLevelFilterMap(logSearchConfigConfigurer.getConfig().getLogLevelFilters(clusterName)); } public Response setLogLevelFilters(String clusterName, LSServerLogLevelFilterMap request) { try { - LogSearchConfigConfigurer.getConfig().setLogLevelFilters(clusterName, request.convertToApi()); + logSearchConfigConfigurer.getConfig().setLogLevelFilters(clusterName, request.convertToApi()); return Response.ok().build(); } catch (Exception e) { logger.warn("Could not update log level filters", e); http://git-wip-us.apache.org/repos/asf/ambari/blob/2d1ac668/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/model/common/LSServerFilter.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/model/common/LSServerFilter.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/model/common/LSServerFilter.java index 84bddb8..72cc72b 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/model/common/LSServerFilter.java +++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/model/common/LSServerFilter.java @@ -70,10 +70,12 @@ public abstract class LSServerFilter { this.sourceField = filterDescriptor.getSourceField(); this.removeSourceField = filterDescriptor.isRemoveSourceField(); - this.postMapValues = new HashMap(); - for (Map.Entry> e : filterDescriptor.getPostMapValues().entrySet()) { - LSServerPostMapValuesList lsServerPostMapValuesList = new LSServerPostMapValuesList(e.getValue()); - postMapValues.put(e.getKey(), lsServerPostMapValuesList); + if (filterDescriptor.getPostMapValues() != null) { + this.postMapValues = new HashMap(); + for (Map.Entry> e : filterDescriptor.getPostMapValues().entrySet()) { + LSServerPostMapValuesList lsServerPostMapValuesList = new LSServerPostMapValuesList(e.getValue()); + postMapValues.put(e.getKey(), lsServerPostMapValuesList); + } } this.isEnabled = filterDescriptor.isEnabled();