AMBARI-17588. Creation of config groups with invalid config type doesn't throw any error. (mpapirkovskyy)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/445bf7af Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/445bf7af Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/445bf7af Branch: refs/heads/trunk Commit: 445bf7aff5b955bcd6cd7571eba15e3250819e6c Parents: 6d00d39 Author: Myroslav Papirkovskyi <[email protected]> Authored: Wed Jul 6 18:09:33 2016 +0300 Committer: Myroslav Papirkovskyi <[email protected]> Committed: Wed Jul 6 18:13:08 2016 +0300 ---------------------------------------------------------------------- .../server/controller/internal/ConfigGroupResourceProvider.java | 4 ++++ .../controller/internal/ConfigGroupResourceProviderTest.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/445bf7af/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java index 9402c95..d4e3828 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java @@ -391,6 +391,9 @@ public class ConfigGroupResourceProvider extends } private void verifyConfigs(Map<String, Config> configs, String clusterName) throws AmbariException { + if (configs == null) { + return; + } Clusters clusters = getManagementController().getClusters(); for (String key : configs.keySet()) { if(!clusters.getCluster(clusterName).isConfigTypeExists(key)){ @@ -570,6 +573,7 @@ public class ConfigGroupResourceProvider extends request.getTag(), request.getDescription(), request.getConfigs(), hosts); + verifyConfigs(configGroup.getConfigurations(), cluster.getClusterName()); configGroup.setServiceName(serviceName); // Persist before add, since id is auto-generated http://git-wip-us.apache.org/repos/asf/ambari/blob/445bf7af/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java index a5c71c4..dc8017a 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java @@ -160,7 +160,7 @@ public class ConfigGroupResourceProviderTest { ConfigGroupFactory configGroupFactory = createNiceMock(ConfigGroupFactory.class); ConfigGroup configGroup = createNiceMock(ConfigGroup.class); - expect(managementController.getClusters()).andReturn(clusters); + expect(managementController.getClusters()).andReturn(clusters).anyTimes(); expect(clusters.getCluster("Cluster100")).andReturn(cluster).anyTimes(); expect(clusters.getHost("h1")).andReturn(h1); expect(clusters.getHost("h2")).andReturn(h2);
