|
@@ -37,22 +37,29 @@ import java.util.Set;
|
|
|
public class JMXPropertyProviderTest {
|
|
|
protected static final String HOST_COMPONENT_HOST_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("HostRoles", "host_name");
|
|
|
protected static final String HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("HostRoles", "component_name");
|
|
|
+ protected static final String HOST_COMPONENT_STATE_PROPERTY_ID = PropertyHelper.getPropertyId("HostRoles", "state");
|
|
|
|
|
|
@Test
|
|
|
- public void testGetResources() throws Exception {
|
|
|
+ public void testPopulateResources() throws Exception {
|
|
|
TestStreamProvider streamProvider = new TestStreamProvider();
|
|
|
TestJMXHostProvider hostProvider = new TestJMXHostProvider(false);
|
|
|
|
|
|
JMXPropertyProvider propertyProvider = new JMXPropertyProvider(
|
|
|
PropertyHelper.getJMXPropertyIds(Resource.Type.HostComponent),
|
|
|
streamProvider,
|
|
|
- hostProvider, PropertyHelper.getPropertyId("HostRoles", "cluster_name"), PropertyHelper.getPropertyId("HostRoles", "host_name"), PropertyHelper.getPropertyId("HostRoles", "component_name"));
|
|
|
+ hostProvider,
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "host_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "component_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "state"),
|
|
|
+ Collections.singleton("STARTED"));
|
|
|
|
|
|
// namenode
|
|
|
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, "NAMENODE");
|
|
|
+ resource.setProperty(HOST_COMPONENT_STATE_PROPERTY_ID, "STARTED");
|
|
|
|
|
|
// request with an empty set should get all supported properties
|
|
|
Request request = PropertyHelper.getReadRequest(Collections.<String>emptySet());
|
|
@@ -194,6 +201,7 @@ public class JMXPropertyProviderTest {
|
|
|
|
|
|
resource.setProperty(HOST_COMPONENT_HOST_NAME_PROPERTY_ID, "domu-12-31-39-14-ee-b3.compute-1.internal");
|
|
|
resource.setProperty(HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID, "HBASE_MASTER");
|
|
|
+ resource.setProperty(HOST_COMPONENT_STATE_PROPERTY_ID, "STARTED");
|
|
|
|
|
|
// only ask for specific properties
|
|
|
properties = new HashSet<String>();
|
|
@@ -208,7 +216,7 @@ public class JMXPropertyProviderTest {
|
|
|
|
|
|
Assert.assertEquals(propertyProvider.getSpec("domu-12-31-39-14-ee-b3.compute-1.internal", "60010"), streamProvider.getLastSpec());
|
|
|
|
|
|
- Assert.assertEquals(7, PropertyHelper.getProperties(resource).size());
|
|
|
+ Assert.assertEquals(8, PropertyHelper.getProperties(resource).size());
|
|
|
Assert.assertEquals(1069416448, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/jvm", "HeapMemoryMax")));
|
|
|
Assert.assertEquals(4806976, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/jvm", "HeapMemoryUsed")));
|
|
|
Assert.assertEquals(136314880, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/jvm", "NonHeapMemoryMax")));
|
|
@@ -219,14 +227,19 @@ public class JMXPropertyProviderTest {
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
- public void testGetResourcesWithUnknownPort() throws Exception {
|
|
|
+ public void testPopulateResourcesWithUnknownPort() throws Exception {
|
|
|
TestStreamProvider streamProvider = new TestStreamProvider();
|
|
|
TestJMXHostProvider hostProvider = new TestJMXHostProvider(true);
|
|
|
|
|
|
JMXPropertyProvider propertyProvider = new JMXPropertyProvider(
|
|
|
PropertyHelper.getJMXPropertyIds(Resource.Type.HostComponent),
|
|
|
streamProvider,
|
|
|
- hostProvider, PropertyHelper.getPropertyId("HostRoles", "cluster_name"), PropertyHelper.getPropertyId("HostRoles", "host_name"), PropertyHelper.getPropertyId("HostRoles", "component_name"));
|
|
|
+ hostProvider,
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "host_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "component_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "state"),
|
|
|
+ Collections.singleton("STARTED"));
|
|
|
|
|
|
// namenode
|
|
|
Resource resource = new ResourceImpl(Resource.Type.HostComponent);
|
|
@@ -250,6 +263,37 @@ public class JMXPropertyProviderTest {
|
|
|
Assert.assertEquals(23634400, resource.getPropertyValue(PropertyHelper.getPropertyId("metrics/jvm", "NonHeapMemoryUsed")));
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testPopulateResourcesUnhealthyResource() throws Exception {
|
|
|
+ TestStreamProvider streamProvider = new TestStreamProvider();
|
|
|
+ TestJMXHostProvider hostProvider = new TestJMXHostProvider(true);
|
|
|
+
|
|
|
+ JMXPropertyProvider propertyProvider = new JMXPropertyProvider(
|
|
|
+ PropertyHelper.getJMXPropertyIds(Resource.Type.HostComponent),
|
|
|
+ streamProvider,
|
|
|
+ hostProvider,
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "cluster_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "host_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "component_name"),
|
|
|
+ PropertyHelper.getPropertyId("HostRoles", "state"),
|
|
|
+ Collections.singleton("STARTED"));
|
|
|
+
|
|
|
+ // namenode
|
|
|
+ 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, "NAMENODE");
|
|
|
+ resource.setProperty(HOST_COMPONENT_STATE_PROPERTY_ID, "INSTALLED");
|
|
|
+
|
|
|
+ // 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 that the stream provider was never called.
|
|
|
+ Assert.assertNull(streamProvider.getLastSpec());
|
|
|
+ }
|
|
|
+
|
|
|
private static class TestJMXHostProvider implements JMXHostProvider {
|
|
|
private final boolean unknownPort;
|
|
|
|