Repository: ambari Updated Branches: refs/heads/trunk dcdf95b28 -> 6d02a7a5b
AMBARI-19641: Deleted configuration groups are displayed along with active group (Amruta Borkar via dili) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6d02a7a5 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6d02a7a5 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6d02a7a5 Branch: refs/heads/trunk Commit: 6d02a7a5b3415a87b0cbcf21d360942719efcb9d Parents: dcdf95b Author: Di Li <[email protected]> Authored: Fri Jan 27 14:13:55 2017 -0500 Committer: Di Li <[email protected]> Committed: Fri Jan 27 14:13:55 2017 -0500 ---------------------------------------------------------------------- .../orm/entities/ServiceConfigEntity.java | 2 +- .../server/orm/dao/ServiceConfigDAOTest.java | 66 ++++++++++++++++---- 2 files changed, 56 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/6d02a7a5/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceConfigEntity.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceConfigEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceConfigEntity.java index 2d6ca20..8a1b316 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceConfigEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceConfigEntity.java @@ -50,7 +50,7 @@ import javax.persistence.TableGenerator; @NamedQuery(name = "ServiceConfigEntity.findNextServiceConfigVersion", query = "SELECT COALESCE(MAX(serviceConfig.version), 0) + 1 AS nextVersion FROM ServiceConfigEntity serviceConfig WHERE serviceConfig.serviceName=:serviceName AND serviceConfig.clusterId=:clusterId"), @NamedQuery(name = "ServiceConfigEntity.findAllServiceConfigsByStack", query = "SELECT serviceConfig FROM ServiceConfigEntity serviceConfig WHERE serviceConfig.clusterId=:clusterId AND serviceConfig.stack=:stack"), @NamedQuery(name = "ServiceConfigEntity.findLatestServiceConfigsByStack", query = "SELECT serviceConfig FROM ServiceConfigEntity serviceConfig WHERE serviceConfig.clusterId = :clusterId AND serviceConfig.version = (SELECT MAX(serviceConfig2.version) FROM ServiceConfigEntity serviceConfig2 WHERE serviceConfig2.clusterId=:clusterId AND serviceConfig2.stack=:stack AND serviceConfig2.serviceName = serviceConfig.serviceName)"), - @NamedQuery(name = "ServiceConfigEntity.findLatestServiceConfigsByService", query = "SELECT scv FROM ServiceConfigEntity scv WHERE scv.clusterId = :clusterId AND scv.serviceName = :serviceName AND scv.version = (SELECT MAX(scv2.version) FROM ServiceConfigEntity scv2 WHERE (scv2.serviceName = :serviceName AND scv2.clusterId = :clusterId) AND (scv2.groupId = scv.groupId OR (scv2.groupId IS NULL AND scv.groupId IS NULL)))"), + @NamedQuery(name = "ServiceConfigEntity.findLatestServiceConfigsByService", query = "SELECT scv FROM ServiceConfigEntity scv WHERE scv.clusterId = :clusterId AND scv.serviceName = :serviceName AND (scv.groupId = null OR scv.groupId IN (SELECT cg.groupId from ConfigGroupEntity cg)) AND scv.version = (SELECT MAX(scv2.version) FROM ServiceConfigEntity scv2 WHERE (scv2.serviceName = :serviceName AND scv2.clusterId = :clusterId) AND (scv2.groupId = scv.groupId OR (scv2.groupId IS NULL AND scv.groupId IS NULL)))"), @NamedQuery(name = "ServiceConfigEntity.findLatestServiceConfigsByCluster", query = "SELECT scv FROM ServiceConfigEntity scv WHERE scv.clusterId = :clusterId AND scv.serviceConfigId IN (SELECT MAX(scv1.serviceConfigId) FROM ServiceConfigEntity scv1 WHERE (scv1.clusterId = :clusterId) AND (scv1.groupId IS NULL) GROUP BY scv1.serviceName)")}) public class ServiceConfigEntity { @Id http://git-wip-us.apache.org/repos/asf/ambari/blob/6d02a7a5/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ServiceConfigDAOTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ServiceConfigDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ServiceConfigDAOTest.java index aafe557..5890c35 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ServiceConfigDAOTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ServiceConfigDAOTest.java @@ -262,23 +262,43 @@ public class ServiceConfigDAOTest { @Test public void testGetLastServiceConfigsForService() throws Exception { String serviceName = "HDFS"; + Clusters clusters = injector.getInstance(Clusters.class); + clusters.addCluster("c1", HDP_01); + ConfigGroupEntity configGroupEntity1 = new ConfigGroupEntity(); + ClusterEntity clusterEntity = clusterDAO.findById(1L); + configGroupEntity1.setClusterEntity(clusterEntity); + configGroupEntity1.setClusterId(clusterEntity.getClusterId()); + configGroupEntity1.setGroupName("group1"); + configGroupEntity1.setDescription("group1_desc"); + configGroupEntity1.setTag("HDFS"); + configGroupEntity1.setServiceName("HDFS"); + configGroupDAO.create(configGroupEntity1); + ConfigGroupEntity group1 = configGroupDAO.findByName("group1"); + ConfigGroupEntity configGroupEntity2 = new ConfigGroupEntity(); + configGroupEntity2.setClusterEntity(clusterEntity); + configGroupEntity2.setClusterId(clusterEntity.getClusterId()); + configGroupEntity2.setGroupName("group2"); + configGroupEntity2.setDescription("group2_desc"); + configGroupEntity2.setTag("HDFS"); + configGroupEntity2.setServiceName("HDFS"); + configGroupDAO.create(configGroupEntity2); + ConfigGroupEntity group2 = configGroupDAO.findByName("group2"); createServiceConfig(serviceName, "admin", 1L, 1L, 1111L, null); createServiceConfig(serviceName, "admin", 2L, 2L, 1010L, null); - createServiceConfigWithGroup(serviceName, "admin", 3L, 3L, 2222L, null, 1L); - createServiceConfigWithGroup(serviceName, "admin", 5L, 5L, 3333L, null, 2L); - createServiceConfigWithGroup(serviceName, "admin", 4L, 4L, 3330L, null, 2L); - - List<ServiceConfigEntity> serviceConfigEntities = - serviceConfigDAO.getLastServiceConfigsForService(clusterDAO.findByName("c1").getClusterId(), serviceName); + createServiceConfigWithGroup(serviceName, "admin", 3L, 3L, 2222L, null, group1.getGroupId()); + createServiceConfigWithGroup(serviceName, "admin", 5L, 5L, 3333L, null, group2.getGroupId()); + createServiceConfigWithGroup(serviceName, "admin", 4L, 4L, 3330L, null, group2.getGroupId()); + List<ServiceConfigEntity> serviceConfigEntities = serviceConfigDAO + .getLastServiceConfigsForService(clusterDAO.findByName("c1").getClusterId(), serviceName); Assert.assertNotNull(serviceConfigEntities); Assert.assertEquals(3, serviceConfigEntities.size()); - for (ServiceConfigEntity sce: serviceConfigEntities) { - if (sce.getGroupId() != null && sce.getGroupId().equals(2L)) { - // Group ID with the highest version should be selected - Assert.assertEquals(sce.getVersion(), Long.valueOf(5L)); - } + for (ServiceConfigEntity sce : serviceConfigEntities) { + if (sce.getGroupId() != null && sce.getGroupId().equals(group2.getGroupId())) { + // Group ID with the highest version should be selected + Assert.assertEquals(sce.getVersion(), Long.valueOf(5L)); + } } } @@ -525,6 +545,30 @@ public class ServiceConfigDAOTest { } } + @Test + public void testGetLastServiceConfigsForServiceWhenAConfigGroupIsDeleted() throws Exception { + Clusters clusters = injector.getInstance(Clusters.class); + clusters.addCluster("c1", HDP_01); + initClusterEntitiesWithConfigGroups(); + ConfigGroupEntity configGroupEntity1 = new ConfigGroupEntity(); + ClusterEntity clusterEntity = clusterDAO.findById(1L); + configGroupEntity1.setClusterEntity(clusterEntity); + configGroupEntity1.setClusterId(clusterEntity.getClusterId()); + configGroupEntity1.setGroupName("toTestDeleteGroup_OOZIE"); + configGroupEntity1.setDescription("toTestDeleteGroup_OOZIE_DESC"); + configGroupEntity1.setTag("OOZIE"); + configGroupEntity1.setServiceName("OOZIE"); + configGroupDAO.create(configGroupEntity1); + ConfigGroupEntity testDeleteGroup_OOZIE = configGroupDAO.findByName("toTestDeleteGroup_OOZIE"); + createServiceConfigWithGroup("OOZIE", "", 2L, 2L, System.currentTimeMillis(), null, + testDeleteGroup_OOZIE.getGroupId()); + Collection<ServiceConfigEntity> serviceConfigEntityList = serviceConfigDAO.getLastServiceConfigsForService(1L, + "OOZIE"); + Assert.assertEquals(2, serviceConfigEntityList.size()); + configGroupDAO.remove(configGroupEntity1); + serviceConfigEntityList = serviceConfigDAO.getLastServiceConfigsForService(1L, "OOZIE"); + Assert.assertEquals(1, serviceConfigEntityList.size()); + } private void initClusterEntities() throws Exception{ String userName = "admin";
