Repository: ambari Updated Branches: refs/heads/trunk 74f3f85a6 -> 8ae56643b
AMBARI-5627 - Some services are INSTALLED, but host state is HEALTHY Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/8ae56643 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8ae56643 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8ae56643 Branch: refs/heads/trunk Commit: 8ae56643bc8d3a5f7c7228bf1772b4a965161402 Parents: 74f3f85 Author: tbeerbower <[email protected]> Authored: Tue Apr 29 20:04:58 2014 -0400 Committer: tbeerbower <[email protected]> Committed: Wed Apr 30 09:15:58 2014 -0400 ---------------------------------------------------------------------- .../apache/ambari/msi/ClusterDefinition.java | 26 ++++++++++++++------ .../ambari/msi/ClusterDefinitionTest.java | 19 ++++++++++++++ 2 files changed, 38 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/8ae56643/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/ClusterDefinition.java ---------------------------------------------------------------------- diff --git a/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/ClusterDefinition.java b/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/ClusterDefinition.java index 0d54092..00b5dd5 100644 --- a/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/ClusterDefinition.java +++ b/contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/ClusterDefinition.java @@ -210,11 +210,14 @@ public class ClusterDefinition { } } - private void init() { - initComponentNameMap(); - initComponentServiceMap(); - } + // ----- ClusterDefinition ------------------------------------------------- + + /** + * Get the major stack version for this cluster. + * + * @return the major stack version + */ public Integer getMajorStackVersion() { if(StringUtils.isNotEmpty(versionId)) { String majorVersion = StringUtils.substring(versionId, 4, 5); @@ -225,6 +228,11 @@ public class ClusterDefinition { return null; } + /** + * Get the minor stack version for this cluster. + * + * @return the minor stack version + */ public Integer getMinorStackVersion() { if(StringUtils.isNotEmpty(versionId)) { String majorVersion = StringUtils.substring(versionId, 6, 7); @@ -235,8 +243,6 @@ public class ClusterDefinition { return null; } - // ----- ClusterDefinition ------------------------------------------------- - /** * Get the name of the cluster. * @@ -326,7 +332,7 @@ public class ClusterDefinition { Set<String> componentNames = hostEntry.getValue(); for (String componentName : componentNames) { if (isClientOnlyComponent(componentName)) continue; - if (stateProvider.getRunningState(hostName, componentName) == StateProvider.State.Unknown) { + if (stateProvider.getRunningState(hostName, componentName) != StateProvider.State.Running) { return "UNHEALTHY"; } } @@ -534,6 +540,12 @@ public class ClusterDefinition { // ----- helper methods ---------------------------------------------------- + // initialize + private void init() { + initComponentNameMap(); + initComponentServiceMap(); + } + // record a process and create the corresponding request and task resource private synchronized int recordProcess(StateProvider.Process process, int requestId, String context) { http://git-wip-us.apache.org/repos/asf/ambari/blob/8ae56643/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/ClusterDefinitionTest.java ---------------------------------------------------------------------- diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/ClusterDefinitionTest.java b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/ClusterDefinitionTest.java index ffdd10a..31d79de 100644 --- a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/ClusterDefinitionTest.java +++ b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/ClusterDefinitionTest.java @@ -120,6 +120,25 @@ public class ClusterDefinitionTest { } @Test + public void testGetHostState() throws Exception { + TestStateProvider stateProvider = new TestStateProvider(); + TestClusterDefinitionProvider definitionProvider = new TestClusterDefinitionProvider(); + TestHostInfoProvider hostInfoProvider = new TestHostInfoProvider(); + + ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider, definitionProvider, hostInfoProvider); + Assert.assertEquals("HEALTHY", clusterDefinition.getHostState("NAMENODE_MASTER.acme.com")); + + stateProvider.setState(StateProvider.State.Stopped); + Assert.assertEquals("UNHEALTHY", clusterDefinition.getHostState("NAMENODE_MASTER.acme.com")); + + stateProvider.setState(StateProvider.State.Paused); + Assert.assertEquals("UNHEALTHY", clusterDefinition.getHostState("NAMENODE_MASTER.acme.com")); + + stateProvider.setState(StateProvider.State.Unknown); + Assert.assertEquals("UNHEALTHY", clusterDefinition.getHostState("NAMENODE_MASTER.acme.com")); + } + + @Test public void testSetServiceState_IfStateAlreadySetToDesired() { StateProvider mockStateProvider = createStrictMock(StateProvider.class); ClusterDefinitionProvider mockClusterDefinitionProvider = createStrictMock(ClusterDefinitionProvider.class);
