Repository: ambari
Updated Branches:
  refs/heads/branch-2.6 0cf1defb1 -> e04470dc5


AMBARI-22686. Disabled stack still appears in the UI if VDF is available. 
(swagle)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e04470dc
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e04470dc
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e04470dc

Branch: refs/heads/branch-2.6
Commit: e04470dc54c30ab0a637f1bb243a95999cfb5b0a
Parents: 0cf1def
Author: Siddharth Wagle <swa...@hortonworks.com>
Authored: Thu Dec 21 13:17:14 2017 -0800
Committer: Siddharth Wagle <swa...@hortonworks.com>
Committed: Thu Dec 21 13:17:14 2017 -0800

----------------------------------------------------------------------
 .../server/api/services/AmbariMetaInfo.java     | 13 ++++----
 .../server/api/services/AmbariMetaInfoTest.java | 32 ++++++++++++++++++--
 .../RepositoryVersionResourceProviderTest.java  |  5 +--
 3 files changed, 38 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/e04470dc/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
index 4ac8574..11346c4 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
@@ -140,7 +140,8 @@ public class AmbariMetaInfo {
   private File extensionsRoot;
   private File serverVersionFile;
   private File customActionRoot;
-  private Map<String, VersionDefinitionXml> versionDefinitions = null;
+
+  Map<String, VersionDefinitionXml> versionDefinitions = null;
 
 
   @Inject
@@ -1428,12 +1429,12 @@ public class AmbariMetaInfo {
     versionDefinitions = new HashMap<>();
 
     for (StackInfo stack : getStacks()) {
-      for (VersionDefinitionXml definition : stack.getVersionDefinitions()) {
-        versionDefinitions.put(String.format("%s-%s-%s", stack.getName(),
-            stack.getVersion(), definition.release.version), definition);
-      }
-
       if (stack.isActive() && stack.isValid()) {
+        for (VersionDefinitionXml definition : stack.getVersionDefinitions()) {
+          versionDefinitions.put(String.format("%s-%s-%s", stack.getName(),
+            stack.getVersion(), definition.release.version), definition);
+        }
+        
         try {
           // !!! check for a "latest-vdf" one.  This will be used for the 
default if one is not found.
           VersionDefinitionXml xml = stack.getLatestVersionDefinition();

http://git-wip-us.apache.org/repos/asf/ambari/blob/e04470dc/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
index e9567f1..1fe4641 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
@@ -133,8 +133,7 @@ public class AmbariMetaInfoTest {
   private static final int OS_CNT = 4;
 
   private static TestAmbariMetaInfo metaInfo = null;
-  private final static Logger LOG =
-      LoggerFactory.getLogger(AmbariMetaInfoTest.class);
+  private final static Logger LOG = 
LoggerFactory.getLogger(AmbariMetaInfoTest.class);
   private static final String FILE_NAME = "hbase-site.xml";
   private static final String HADOOP_ENV_FILE_NAME = "hadoop-env.xml";
   private static final String HDFS_LOG4J_FILE_NAME = "hdfs-log4j.xml";
@@ -1906,6 +1905,35 @@ public class AmbariMetaInfoTest {
     
Assert.assertTrue(descriptor.getService("NEW_SERVICE").shouldPreconfigure());
   }
 
+  @Test
+  public void testGetVersionDefinitionsForDisabledStack() throws 
AmbariException {
+    Map<String, VersionDefinitionXml> versionDefinitions = 
metaInfo.getVersionDefinitions();
+    Assert.assertNotNull(versionDefinitions);
+    // Check presence
+    Map.Entry<String, VersionDefinitionXml> vdfEntry = null;
+    for (Map.Entry<String, VersionDefinitionXml> entry : 
versionDefinitions.entrySet()) {
+      if (entry.getKey().equals("HDP-2.2.1")) {
+        vdfEntry = entry;
+      }
+    }
+    Assert.assertNotNull("Candidate stack and vdf for test case.", vdfEntry);
+    StackInfo stackInfo = metaInfo.getStack("HDP", "2.2.1");
+    // Strange that this is not immutable but works for this test !
+    stackInfo.setActive(false);
+
+    // Hate to use reflection hence changed contract to be package private
+    metaInfo.versionDefinitions = null;
+
+    versionDefinitions = metaInfo.getVersionDefinitions();
+    vdfEntry = null;
+    for (Map.Entry<String, VersionDefinitionXml> entry : 
versionDefinitions.entrySet()) {
+      if (entry.getKey().equals("HDP-2.2.1")) {
+        vdfEntry = entry;
+      }
+    }
+    Assert.assertNull("Disabled stack should not be returned by the API", 
vdfEntry);
+  }
+
   private File getStackRootTmp(String buildDir) {
     return new File(buildDir + "/ambari-metaInfo");
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/e04470dc/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java
index 6bc8b95..243b060 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java
@@ -229,9 +229,6 @@ public class RepositoryVersionResourceProviderTest {
     Assert.assertEquals(1, provider.getResources(getRequest, new 
AndPredicate(predicateStackName, predicateStackVersion)).size());
   }
 
-
-
-
   @Test
   public void testGetResourcesAsAdministrator() throws Exception {
     testGetResources(TestAuthenticationFactory.createAdministrator());
@@ -357,7 +354,7 @@ public class RepositoryVersionResourceProviderTest {
     
RepositoryVersionResourceProvider.validateRepositoryVersion(repositoryVersionDAO,
 info, entity3);
 
   }
-
+  
   @Test
   public void testDeleteResourcesAsAdministrator() throws Exception {
     testDeleteResources(TestAuthenticationFactory.createAdministrator());

Reply via email to