AMBARI-7921. Ambari should not inherit any tez configs from the 2.1 stack (aonishuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/155672eb Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/155672eb Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/155672eb Branch: refs/heads/branch-1.7.0 Commit: 155672ebaf98ada6ab2fb3aaa468e57f0f772a24 Parents: b5d3347 Author: Andrew Onishuk <[email protected]> Authored: Thu Oct 23 19:19:40 2014 +0300 Committer: Andrew Onishuk <[email protected]> Committed: Thu Oct 23 19:19:40 2014 +0300 ---------------------------------------------------------------------- .../server/api/util/StackExtensionHelper.java | 21 ++++++++++----- .../src/main/resources/properties.json | 1 + .../2.2/services/TEZ/configuration/tez-site.xml | 2 +- .../api/util/StackExtensionHelperTest.java | 28 ++++++++++++++++++++ .../services/YARN/configuration/yarn-site.xml | 2 +- 5 files changed, 45 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/155672eb/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java index 35ae9a7..17faa18 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java @@ -143,7 +143,7 @@ public class StackExtensionHelper { resultStack.getConfigTypes().putAll(parentStack.getConfigTypes()); } List<PropertyInfo> mergedProperties = new ArrayList<PropertyInfo>(); - mergeProperties(resultStack.getProperties(), parentStack.getProperties(), mergedProperties); + mergeProperties(resultStack.getProperties(), parentStack.getProperties(), mergedProperties, resultStack.getConfigTypes()); resultStack.setProperties(mergedProperties); } @@ -239,9 +239,8 @@ public class StackExtensionHelper { mergedServiceInfo.setAlertsFile(parentService.getAlertsFile()); populateComponents(mergedServiceInfo, parentService, childService); - - mergeProperties(childService.getProperties(), parentService.getProperties(), mergedServiceInfo.getProperties()); - + mergeProperties(childService.getProperties(), parentService.getProperties(), + mergedServiceInfo.getProperties(), childService.getConfigTypes()); // Add all parent config dependencies if (parentService.getConfigDependencies() != null && !parentService .getConfigDependencies().isEmpty()) { @@ -255,7 +254,8 @@ public class StackExtensionHelper { } public void mergeProperties(List<PropertyInfo> childProperties, - List<PropertyInfo> parentProperties, List<PropertyInfo> mergedProperties) { + List<PropertyInfo> parentProperties, List<PropertyInfo> mergedProperties, Map<String, + Map<String, Map<String, String>>> childConfigTypes) { // Add child properties not deleted Map<String, Set<String>> deleteMap = new HashMap<String, Set<String>>(); Map<String, Set<String>> appendMap = new HashMap<String, Set<String>>(); @@ -281,10 +281,16 @@ public class StackExtensionHelper { } // Add all parent properties for (PropertyInfo parentPropertyInfo : parentProperties) { + String configType = ConfigHelper.fileNameToConfigType(parentPropertyInfo.getFilename()); + boolean disableInherit = false; + if (childConfigTypes.containsKey(configType)){ + disableInherit = + childConfigTypes.get(configType).get(Supports.KEYWORD).get(Supports.DO_NOT_EXTEND.getPropertyName()).equals("true"); + } if (!deleteMap.containsKey(parentPropertyInfo.getName()) && !(appendMap .containsKey(parentPropertyInfo.getName()) && appendMap.get(parentPropertyInfo.getName()) - .contains(parentPropertyInfo.getFilename()))) { + .contains(parentPropertyInfo.getFilename())) && !disableInherit) { mergedProperties.add(parentPropertyInfo); } } @@ -927,7 +933,8 @@ public class StackExtensionHelper { protected enum Supports { FINAL("supports_final"), - ADDING_FORBIDDEN("supports_adding_forbidden"); + ADDING_FORBIDDEN("supports_adding_forbidden"), + DO_NOT_EXTEND("supports_do_not_extend"); public static final String KEYWORD = "supports"; http://git-wip-us.apache.org/repos/asf/ambari/blob/155672eb/ambari-server/src/main/resources/properties.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/properties.json b/ambari-server/src/main/resources/properties.json index b99ede5..c7060ac 100644 --- a/ambari-server/src/main/resources/properties.json +++ b/ambari-server/src/main/resources/properties.json @@ -249,6 +249,7 @@ "StackConfigurations/type", "StackConfigurations/final", "StackConfigurations/adding_forbidden", + "StackConfigurations/do_not_extend", "StackConfigurations/property_type", "_" ], http://git-wip-us.apache.org/repos/asf/ambari/blob/155672eb/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/configuration/tez-site.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/configuration/tez-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/configuration/tez-site.xml index 34e63d7..1035412 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/configuration/tez-site.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/configuration/tez-site.xml @@ -17,7 +17,7 @@ limitations under the License. --> -<configuration supports_final="true"> +<configuration supports_final="true" supports_do_not_extend="true"> <property> <name>tez.lib.uris</name> http://git-wip-us.apache.org/repos/asf/ambari/blob/155672eb/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java index acd595d..f05aab5 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java @@ -391,18 +391,26 @@ public class StackExtensionHelperTest { StackExtensionHelper.Supports.FINAL.getPropertyName(), "true"); addToPropertyMap(expectedConfigTypes, "global", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "global", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); Map<String, Map<String, Map<String, String>>> configTypes = serviceInfo.getConfigTypes(); assertEquals(4, configTypes.size()); @@ -518,6 +526,8 @@ public class StackExtensionHelperTest { StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "yarn-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "true"); + addToPropertyMap(expectedConfigTypes, "yarn-site", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "true"); assertEquals(expectedConfigTypes, serviceInfo.getConfigTypes()); } @@ -536,18 +546,26 @@ public class StackExtensionHelperTest { StackExtensionHelper.Supports.FINAL.getPropertyName(), "true"); addToPropertyMap(expectedConfigTypes, "global", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "global", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); assertEquals(expectedConfigTypes, serviceInfo.getConfigTypes()); } @@ -565,22 +583,32 @@ public class StackExtensionHelperTest { StackExtensionHelper.Supports.FINAL.getPropertyName(), "true"); addToPropertyMap(expectedConfigTypes, "global", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "global", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "hdfs-site", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "hadoop-policy", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "false"); + addToPropertyMap(expectedConfigTypes, "core-site", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "yarn-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.FINAL.getPropertyName(), "false"); addToPropertyMap(expectedConfigTypes, "yarn-site", StackExtensionHelper.Supports.KEYWORD, StackExtensionHelper.Supports.ADDING_FORBIDDEN.getPropertyName(), "true"); + addToPropertyMap(expectedConfigTypes, "yarn-site", StackExtensionHelper.Supports.KEYWORD, + StackExtensionHelper.Supports.DO_NOT_EXTEND.getPropertyName(), "true"); assertEquals(expectedConfigTypes, serviceInfo.getConfigTypes()); } http://git-wip-us.apache.org/repos/asf/ambari/blob/155672eb/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/configuration/yarn-site.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/configuration/yarn-site.xml b/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/configuration/yarn-site.xml index 3abb60b..303a802 100644 --- a/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/configuration/yarn-site.xml +++ b/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/configuration/yarn-site.xml @@ -19,7 +19,7 @@ <!-- Put site-specific property overrides in this file. --> -<configuration xmlns:xi="http://www.w3.org/2001/XInclude" supports_adding_forbidden="true"> +<configuration xmlns:xi="http://www.w3.org/2001/XInclude" supports_adding_forbidden="true" supports_do_not_extend="true"> <!-- ResourceManager -->
