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);

Reply via email to