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