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/e404100b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e404100b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e404100b

Branch: refs/heads/branch-feature-AMBARI-22008-isilon
Commit: e404100b99ffac8f14e36b46770466deeb5760d7
Parents: 36d0271
Author: Siddharth Wagle <swa...@hortonworks.com>
Authored: Thu Dec 21 13:30:14 2017 -0800
Committer: Siddharth Wagle <swa...@hortonworks.com>
Committed: Thu Dec 21 13:30:14 2017 -0800

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


http://git-wip-us.apache.org/repos/asf/ambari/blob/e404100b/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 b1eba8f..9fee0ae 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
@@ -139,7 +139,7 @@ public class AmbariMetaInfo {
   private File commonWidgetsDescriptorFile;
   private File customActionRoot;
   private String commonKerberosDescriptorFileLocation;
-  private Map<String, VersionDefinitionXml> versionDefinitions = null;
+  Map<String, VersionDefinitionXml> versionDefinitions = null;
 
 
   @Inject
@@ -1368,12 +1368,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/e404100b/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 9285526..f98cffd 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";
@@ -1902,6 +1901,35 @@ public class AmbariMetaInfoTest {
     Assert.assertEquals("src/test/resources/widgets.json", 
widgetsFile.getPath());
   }
 
+  @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/e404100b/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