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";
 

Reply via email to