Repository: ambari Updated Branches: refs/heads/trunk 301896a12 -> bb614a0ff
AMBARI-20551. Blueprint export fails if config-type is not mapped to any service after upgrade (Amruta Borkar via alejandro) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/bb614a0f Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/bb614a0f Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/bb614a0f Branch: refs/heads/trunk Commit: bb614a0ff7cf933e513fec5a6ed7b55c5c89cb9f Parents: 301896a Author: Alejandro Fernandez <afernan...@hortonworks.com> Authored: Thu Apr 6 16:32:58 2017 -0700 Committer: Alejandro Fernandez <afernan...@hortonworks.com> Committed: Thu Apr 6 16:33:01 2017 -0700 ---------------------------------------------------------------------- .../internal/BlueprintConfigurationProcessor.java | 9 +++++++++ 1 file changed, 9 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/bb614a0f/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java index db1aa07..88a8f80 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java @@ -517,6 +517,15 @@ public class BlueprintConfigurationProcessor { Map<String, Map<String, String>> properties = configuration.getFullProperties(); for (Map.Entry<String, Map<String, String>> configEntry : properties.entrySet()) { String type = configEntry.getKey(); + try { + clusterTopology.getBlueprint().getStack().getServiceForConfigType(type); + } catch (IllegalArgumentException illegalArgumentException) { + LOG.error(new StringBuilder(String.format("Error encountered while trying to obtain the service name for config type [%s]. ", type)) + .append("Further processing on this config type will be skipped. ") + .append("This usually means that a service's definitions have been manually removed from the Ambari stack definitions. ") + .append("If the stack definitions have not been changed manually, this may indicate a stack definition error in Ambari. ").toString(), illegalArgumentException); + continue; + } Map<String, String> typeProperties = configEntry.getValue(); for (Map.Entry<String, String> propertyEntry : typeProperties.entrySet()) {