AMBARI-22443. Log Feeder: do not try to connect AMS, when it is disabled (oleewere)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/38f441d7 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/38f441d7 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/38f441d7 Branch: refs/heads/branch-feature-AMBARI-22008 Commit: 38f441d78fe89bfdc429f8cfc1a01e7729e31084 Parents: 8e97506 Author: Oliver Szabo <oleew...@gmail.com> Authored: Tue Nov 14 19:15:57 2017 +0100 Committer: Attila Magyar <amag...@hortonworks.com> Committed: Thu Nov 16 16:35:30 2017 +0100 ---------------------------------------------------------------------- .../ambari/logfeeder/metrics/LogFeederAMSClient.java | 3 +++ .../apache/ambari/logfeeder/metrics/MetricsManager.java | 8 +++++++- .../ambari/logfeeder/metrics/MetricsManagerTest.java | 10 ++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/38f441d7/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/LogFeederAMSClient.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/LogFeederAMSClient.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/LogFeederAMSClient.java index f446446..c832358 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/LogFeederAMSClient.java +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/LogFeederAMSClient.java @@ -64,6 +64,9 @@ public class LogFeederAMSClient extends AbstractTimelineMetricsSink { @Override public String getCollectorUri(String host) { + if (collectorProtocol == null || host == null || collectorPort == null || collectorPath == null) { + return null; + } return String.format("%s://%s:%s%s", collectorProtocol, host, collectorPort, collectorPath); } http://git-wip-us.apache.org/repos/asf/ambari/blob/38f441d7/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/MetricsManager.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/MetricsManager.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/MetricsManager.java index 1094852..6e8ac04 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/MetricsManager.java +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/MetricsManager.java @@ -45,7 +45,9 @@ public class MetricsManager { public void init() { LOG.info("Initializing MetricsManager()"); - amsClient = new LogFeederAMSClient(); + if (amsClient == null) { + amsClient = new LogFeederAMSClient(); + } if (amsClient.getCollectorUri(null) != null) { if (LogFeederUtil.hostName == null) { @@ -144,4 +146,8 @@ public class MetricsManager { (currMS - lastPublishTimeMS) / 1000 + " seconds ago, intervalConfigured=" + publishIntervalMS / 1000); } } + + public void setAmsClient(LogFeederAMSClient amsClient) { + this.amsClient = amsClient; + } } http://git-wip-us.apache.org/repos/asf/ambari/blob/38f441d7/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/metrics/MetricsManagerTest.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/metrics/MetricsManagerTest.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/metrics/MetricsManagerTest.java index 24042a7..f74a80e 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/metrics/MetricsManagerTest.java +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/metrics/MetricsManagerTest.java @@ -50,18 +50,20 @@ public class MetricsManagerTest { @Before public void init() throws Exception { manager = new MetricsManager(); - manager.init(); - + mockClient = strictMock(LogFeederAMSClient.class); Field f = MetricsManager.class.getDeclaredField("amsClient"); f.setAccessible(true); f.set(manager, mockClient); - + + EasyMock.expect(mockClient.getCollectorUri(null)).andReturn("null://null:null/null").anyTimes(); capture = EasyMock.newCapture(CaptureType.FIRST); mockClient.emitMetrics(EasyMock.capture(capture)); EasyMock.expectLastCall().andReturn(true).once(); - + replay(mockClient); + manager.setAmsClient(mockClient); + manager.init(); } @Test