You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2013/10/25 19:09:22 UTC
git commit: AMBARI-3591. Fix for JMX not throwing exception when
HostComponent is not found.
Updated Branches:
refs/heads/trunk ec7f70673 -> bb62d39bc
AMBARI-3591. Fix for JMX not throwing exception when HostComponent is not found.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/bb62d39b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/bb62d39b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/bb62d39b
Branch: refs/heads/trunk
Commit: bb62d39bc71648f1e4cf559c0ca4364b76626d33
Parents: ec7f706
Author: Nate Cole <nc...@hortonworks.com>
Authored: Fri Oct 25 13:04:12 2013 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Fri Oct 25 13:09:15 2013 -0400
----------------------------------------------------------------------
.../controller/jmx/JMXPropertyProvider.java | 8 ++---
.../controller/jmx/JMXPropertyProviderTest.java | 31 ++++++++++++++++++++
2 files changed, 35 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/bb62d39b/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
index dc1c61e..baa39bd 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
@@ -303,14 +303,14 @@ public class JMXPropertyProvider extends AbstractPropertyProvider {
String port = getPort(clusterName, componentName);
if (port == null) {
- throw new SystemException(
- "Unable to get JMX metrics. No port value for " + componentName, null);
+ LOG.warn("Unable to get JMX metrics. No port value for " + componentName);
+ return resource;
}
String hostName = getHost(resource, clusterName, componentName);
if (hostName == null) {
- throw new SystemException(
- "Unable to get JMX metrics. No host name for " + componentName, null);
+ LOG.warn("Unable to get JMX metrics. No host name for " + componentName);
+ return resource;
}
String protocol = getJMXProtocol(clusterName, componentName);
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/bb62d39b/ambari-server/src/test/java/org/apache/ambari/server/controller/jmx/JMXPropertyProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/jmx/JMXPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/jmx/JMXPropertyProviderTest.java
index 6aafd98..38684ab 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/jmx/JMXPropertyProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/jmx/JMXPropertyProviderTest.java
@@ -777,7 +777,38 @@ public class JMXPropertyProviderTest {
Assert.assertEquals(0, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/dfs/journalnode/cluster/mycluster", "currentLagTxns")));
Assert.assertEquals(8444, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/dfs/journalnode/cluster/mycluster", "lastWrittenTxId")));
}
+
+ @Test
+ public void testPopulateResources_NoRegionServer() throws Exception {
+ TestStreamProvider streamProvider = new TestStreamProvider();
+ TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
+
+ JMXPropertyProvider propertyProvider = new JMXPropertyProvider(
+ PropertyHelper.getJMXPropertyIds(Resource.Type.HostComponent, PropertyHelper.MetricsVersion.HDP2),
+ streamProvider,
+ hostProvider,
+ PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
+ null, // force use of the hostProvider, which returns null for this test
+ PropertyHelper.getPropertyId("HostRoles", "component_name"),
+ PropertyHelper.getPropertyId("HostRoles", "state"),
+ Collections.singleton("STARTED"));
+ Resource resource = new ResourceImpl(Resource.Type.HostComponent);
+
+ resource.setProperty(HOST_COMPONENT_HOST_NAME_PROPERTY_ID, "domu-12-31-39-0e-34-e1.compute-1.internal");
+ resource.setProperty(HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID, "HBASE_REGIONSERVER");
+ resource.setProperty(HOST_COMPONENT_STATE_PROPERTY_ID, "STARTED");
+
+ int preSize = resource.getPropertiesMap().size();
+
+ // request with an empty set should get all supported properties
+ Request request = PropertyHelper.getReadRequest(Collections.<String>emptySet());
+
+ Assert.assertEquals(1, propertyProvider.populateResources(Collections.singleton(resource), request, null).size());
+
+ Assert.assertEquals(preSize, resource.getPropertiesMap().size());
+ }
+
private static class TestJMXHostProvider implements JMXHostProvider {
private final boolean unknownPort;