AMBARI-19183. Ambari allows creation of invalid config type. (mpapirkovskyy)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/996abd6b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/996abd6b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/996abd6b Branch: refs/heads/branch-2.5 Commit: 996abd6bbd48f1ccff1c41cd8f53b39bac8f664d Parents: 937c56b Author: Myroslav Papirkovskyi <[email protected]> Authored: Tue Jan 3 19:53:24 2017 +0200 Committer: Myroslav Papirkovskyi <[email protected]> Committed: Tue Jan 3 20:23:20 2017 +0200 ---------------------------------------------------------------------- .../server/controller/internal/ConfigGroupResourceProvider.java | 4 ++-- .../controller/internal/ConfigGroupResourceProviderTest.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/996abd6b/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 2373068..17924cd 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 @@ -579,6 +579,8 @@ public class ConfigGroupResourceProvider extends getManagementController().getAuthName(), request.getGroupName(), request.getTag(), cluster.getClusterName()); + verifyConfigs(request.getConfigs(), cluster.getClusterName()); + ConfigGroup configGroup = configGroupFactory.createNew(cluster, request.getGroupName(), request.getTag(), request.getDescription(), @@ -586,8 +588,6 @@ public class ConfigGroupResourceProvider extends configGroup.setServiceName(serviceName); - verifyConfigs(configGroup.getConfigurations(), cluster.getClusterName()); - cluster.addConfigGroup(configGroup); if (serviceName != null) { cluster.createServiceConfigVersion(serviceName, getManagementController().getAuthName(), http://git-wip-us.apache.org/repos/asf/ambari/blob/996abd6b/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 eb2e0e8..eec379e 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 @@ -67,6 +67,7 @@ import java.util.Set; import static junit.framework.Assert.*; import static org.easymock.EasyMock.anyObject; +import static org.easymock.EasyMock.anyString; import static org.easymock.EasyMock.capture; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.createNiceMock; @@ -157,6 +158,8 @@ public class ConfigGroupResourceProviderTest { expect(clusters.getCluster("Cluster100")).andReturn(cluster).anyTimes(); expect(clusters.getHost("h1")).andReturn(h1); expect(clusters.getHost("h2")).andReturn(h2); + expect(cluster.getClusterName()).andReturn("Cluster100").anyTimes(); + expect(cluster.isConfigTypeExists(anyString())).andReturn(true).anyTimes(); expect(managementController.getConfigGroupFactory()).andReturn(configGroupFactory); expect(managementController.getAuthName()).andReturn("admin").anyTimes(); expect(hostDAO.findByName("h1")).andReturn(hostEntity1).atLeastOnce();
