You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tb...@apache.org on 2013/02/26 19:28:52 UTC
svn commit: r1450339 - in /incubator/ambari/trunk: ./
ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/
ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/
ambari-server/src/test/java/org/apache/ambari/server...
Author: tbeerbower
Date: Tue Feb 26 18:28:52 2013
New Revision: 1450339
URL: http://svn.apache.org/r1450339
Log:
AMBARI-1463 - State of HBase region server not updated when instance is shut down on a cluster not installed via Ambari.
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/ClusterDefinition.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerProviderModule.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1450339&r1=1450338&r2=1450339&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Tue Feb 26 18:28:52 2013
@@ -376,6 +376,8 @@ Trunk (unreleased changes):
BUG FIXES
+ AMBARI-1463. State of HBase region server not updated when instance is shut down on a cluster not installed via Ambari. (tbeerbower)
+
AMBARI-1494. Browser memory consumption issues. (jaimin)
AMBARI-1480. Comparison predicate should account for null values. (tbeerbower)
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/ClusterDefinition.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/ClusterDefinition.java?rev=1450339&r1=1450338&r2=1450339&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/ClusterDefinition.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/ClusterDefinition.java Tue Feb 26 18:28:52 2013
@@ -69,6 +69,11 @@ public class ClusterDefinition {
private final Map<String, HostComponentState> hostComponentStateMap = new HashMap<String, HostComponentState>();
/**
+ * Expiry for the health value.
+ */
+ private static final int DEFAULT_STATE_EXPIRY = 15000;
+
+ /**
* Component name mapping to account for differences in what is provided by the gsInstaller
* and what is expected by the Ambari providers.
*/
@@ -82,16 +87,27 @@ public class ClusterDefinition {
/**
* Create a cluster definition.
+ *
+ * @param stateProvider the state provider
*/
public ClusterDefinition(GSInstallerStateProvider stateProvider) {
+ this(stateProvider, DEFAULT_STATE_EXPIRY);
+ }
+
+ /**
+ * Create a cluster definition.
+ *
+ * @param stateProvider the state provider
+ * @param stateExpiry the state expiry
+ */
+ public ClusterDefinition(GSInstallerStateProvider stateProvider, int stateExpiry) {
this.stateProvider = stateProvider;
this.clusterName = DEFAULT_CLUSTER_NAME;
this.versionId = DEFAULT_VERSION_ID;
readClusterDefinition();
- setHostComponentState();
+ setHostComponentState(stateExpiry);
}
-
// ----- ClusterDefinition -------------------------------------------------
/**
@@ -270,7 +286,7 @@ public class ClusterDefinition {
/**
* Set the host component state maps.
*/
- private void setHostComponentState() {
+ private void setHostComponentState(int stateExpiry) {
for (Map.Entry<String, Map<String, Set<String>>> serviceEntry : hostComponents.entrySet()) {
String serviceName = serviceEntry.getKey();
@@ -279,7 +295,7 @@ public class ClusterDefinition {
for (String componentName : hostEntry.getValue()) {
- HostComponentState state = new HostComponentState(hostName, componentName);
+ HostComponentState state = new HostComponentState(hostName, componentName, stateExpiry);
// add state to hosts
addState(hostName, hostStateMap, state);
@@ -378,14 +394,10 @@ public class ClusterDefinition {
private class HostComponentState {
private final String hostName;
private final String componentName;
+ private final int expiry;
private boolean healthy = true;
private long lastAccess;
- /**
- * Expiry for the health value.
- */
- private static final int EXPIRY = 15000;
-
// ----- Constructor -----------------------------------------------------
/**
@@ -394,9 +406,10 @@ public class ClusterDefinition {
* @param hostName the host name
* @param componentName the component name
*/
- HostComponentState(String hostName, String componentName) {
+ HostComponentState(String hostName, String componentName, int expiry) {
this.hostName = hostName;
this.componentName = componentName;
+ this.expiry = expiry;
}
/**
@@ -405,7 +418,7 @@ public class ClusterDefinition {
* @return true if the associated host component is healthy
*/
public boolean isHealthy() {
- if (System.currentTimeMillis() - lastAccess > EXPIRY) {
+ if (System.currentTimeMillis() - lastAccess > expiry) {
// health value has expired... get it again
healthy = stateProvider.isHealthy(hostName, componentName);
this.lastAccess = System.currentTimeMillis();
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerProviderModule.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerProviderModule.java?rev=1450339&r1=1450338&r2=1450339&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerProviderModule.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerProviderModule.java Tue Feb 26 18:28:52 2013
@@ -38,11 +38,12 @@ public class GSInstallerProviderModule e
private static final Map<String, String> PORTS = new HashMap<String, String>();
static {
- PORTS.put("NAMENODE", "50070");
- PORTS.put("DATANODE", "50075");
- PORTS.put("JOBTRACKER", "50030");
- PORTS.put("TASKTRACKER", "50060");
- PORTS.put("HBASE_MASTER", "60010");
+ PORTS.put("NAMENODE", "50070");
+ PORTS.put("DATANODE", "50075");
+ PORTS.put("JOBTRACKER", "50030");
+ PORTS.put("TASKTRACKER", "50060");
+ PORTS.put("HBASE_MASTER", "60010");
+ PORTS.put("HBASE_REGIONSERVER", "60030");
}
private static final int TIMEOUT = 5000;
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java?rev=1450339&r1=1450338&r2=1450339&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java Tue Feb 26 18:28:52 2013
@@ -61,11 +61,12 @@ public class JMXPropertyProvider extends
static {
- DEFAULT_JMX_PORTS.put("NAMENODE", "50070");
- DEFAULT_JMX_PORTS.put("DATANODE", "50075");
- DEFAULT_JMX_PORTS.put("JOBTRACKER", "50030");
- DEFAULT_JMX_PORTS.put("TASKTRACKER", "50060");
- DEFAULT_JMX_PORTS.put("HBASE_MASTER", "60010");
+ DEFAULT_JMX_PORTS.put("NAMENODE", "50070");
+ DEFAULT_JMX_PORTS.put("DATANODE", "50075");
+ DEFAULT_JMX_PORTS.put("JOBTRACKER", "50030");
+ DEFAULT_JMX_PORTS.put("TASKTRACKER", "50060");
+ DEFAULT_JMX_PORTS.put("HBASE_MASTER", "60010");
+ DEFAULT_JMX_PORTS.put("HBASE_REGIONSERVER", "60030");
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationConfig.Feature.USE_ANNOTATIONS, false);
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java?rev=1450339&r1=1450338&r2=1450339&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java Tue Feb 26 18:28:52 2013
@@ -55,6 +55,32 @@ public class GSInstallerHostComponentPro
}
@Test
+ public void testGetResourcesCheckState() throws Exception {
+ TestGSInstallerStateProvider stateProvider = new TestGSInstallerStateProvider();
+ ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider, 500);
+ GSInstallerResourceProvider provider = new GSInstallerHostComponentProvider(clusterDefinition);
+ Predicate predicate = new PredicateBuilder().property(GSInstallerHostComponentProvider.HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID).equals("HBASE_REGIONSERVER").toPredicate();
+ Set<Resource> resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
+ Assert.assertEquals(3, resources.size());
+
+ for (Resource resource : resources) {
+ Assert.assertEquals("STARTED", resource.getPropertyValue(GSInstallerHostComponentProvider.HOST_COMPONENT_STATE_PROPERTY_ID));
+ }
+
+ stateProvider.setHealthy(false);
+
+ // need to wait for old state value to expire
+ Thread.sleep(501);
+
+ resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
+ Assert.assertEquals(3, resources.size());
+
+ for (Resource resource : resources) {
+ Assert.assertEquals("INIT", resource.getPropertyValue(GSInstallerHostComponentProvider.HOST_COMPONENT_STATE_PROPERTY_ID));
+ }
+ }
+
+ @Test
public void testCreateResources() throws Exception {
ClusterDefinition clusterDefinition = new ClusterDefinition(new TestGSInstallerStateProvider());
GSInstallerResourceProvider provider = new GSInstallerHostComponentProvider(clusterDefinition);
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java?rev=1450339&r1=1450338&r2=1450339&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java Tue Feb 26 18:28:52 2013
@@ -62,7 +62,7 @@ public class GSInstallerHostProviderTest
@Test
public void testGetResourcesCheckState() throws Exception {
TestGSInstallerStateProvider stateProvider = new TestGSInstallerStateProvider();
- ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider);
+ ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider, 500);
GSInstallerResourceProvider provider = new GSInstallerHostProvider(clusterDefinition);
Predicate predicate = new PredicateBuilder().property(GSInstallerHostProvider.HOST_NAME_PROPERTY_ID).equals("ip-10-190-97-104.ec2.internal").toPredicate();
Set<Resource> resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
@@ -75,7 +75,7 @@ public class GSInstallerHostProviderTest
stateProvider.setHealthy(false);
// need to wait for old state value to expire
- Thread.sleep(15001);
+ Thread.sleep(501);
resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
Assert.assertEquals(1, resources.size());
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java?rev=1450339&r1=1450338&r2=1450339&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java Tue Feb 26 18:28:52 2013
@@ -62,7 +62,7 @@ public class GSInstallerServiceProviderT
@Test
public void testGetResourcesCheckState() throws Exception {
TestGSInstallerStateProvider stateProvider = new TestGSInstallerStateProvider();
- ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider);
+ ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider, 500);
GSInstallerResourceProvider provider = new GSInstallerServiceProvider(clusterDefinition);
Predicate predicate = new PredicateBuilder().property(GSInstallerServiceProvider.SERVICE_SERVICE_NAME_PROPERTY_ID).equals("MAPREDUCE").toPredicate();
Set<Resource> resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
@@ -75,7 +75,7 @@ public class GSInstallerServiceProviderT
stateProvider.setHealthy(false);
// need to wait for old state value to expire
- Thread.sleep(15001);
+ Thread.sleep(501);
resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
Assert.assertEquals(1, resources.size());