Repository: ambari Updated Branches: refs/heads/trunk e86dddad7 -> ecfc951b5
AMBARI-19813: findLatestServiceConfigsByStack query returns deleted config 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/ecfc951b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ecfc951b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ecfc951b Branch: refs/heads/trunk Commit: ecfc951b5c8589b9225684c3ad2660cdb4ef4445 Parents: e86ddda Author: Di Li <[email protected]> Authored: Fri Feb 3 14:15:19 2017 -0500 Committer: Di Li <[email protected]> Committed: Fri Feb 3 14:15:19 2017 -0500 ---------------------------------------------------------------------- .../server/orm/entities/ServiceConfigEntity.java | 2 +- .../ambari/server/orm/dao/ServiceConfigDAOTest.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/ecfc951b/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 8a1b316..dae7ef8 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 @@ -49,7 +49,7 @@ import javax.persistence.TableGenerator; @NamedQuery(name = "ServiceConfigEntity.findAll", query = "SELECT serviceConfig FROM ServiceConfigEntity serviceConfig WHERE serviceConfig.clusterId=:clusterId ORDER BY serviceConfig.version DESC"), @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.findLatestServiceConfigsByStack", query = "SELECT serviceConfig FROM ServiceConfigEntity serviceConfig WHERE serviceConfig.clusterId = :clusterId AND (serviceConfig.groupId = null OR serviceConfig.groupId IN (SELECT cg.groupId from ConfigGroupEntity cg)) 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.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 { http://git-wip-us.apache.org/repos/asf/ambari/blob/ecfc951b/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 e29c276..a0732ab 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 @@ -412,6 +412,16 @@ public class ServiceConfigDAOTest { clusterEntity.setDesiredStack(stackEntity); clusterDAO.merge(clusterEntity); + ConfigGroupEntity configGroupEntity1 = new ConfigGroupEntity(); + 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"); + createServiceConfigWithGroup("HDFS", "admin", 3L, 8L, 2222L, null, group1.getGroupId()); // create some for HDP 0.2 serviceConfigEntity = createServiceConfig("HDFS", "admin", 4L, 5L, 50L, null); serviceConfigEntity = createServiceConfig("HDFS", "admin", 5L, 6L, 60L, null); @@ -420,7 +430,8 @@ public class ServiceConfigDAOTest { long clusterId = serviceConfigEntity.getClusterId(); List<ServiceConfigEntity> serviceConfigs = serviceConfigDAO.getLatestServiceConfigs(clusterId, HDP_01); - Assert.assertEquals(2, serviceConfigs.size()); + Assert.assertEquals(3, serviceConfigs.size()); + configGroupDAO.remove(configGroupEntity1); serviceConfigs = serviceConfigDAO.getLatestServiceConfigs(clusterId, HDP_02); Assert.assertEquals(2, serviceConfigs.size());
