Revert "AMBARI-18976. Config History request execution time depends on config 
versions count. (mpapirkovskyy)"

This reverts commit ce4d4fa768375aac631703dbfceac44fd8faa151.


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/568d1e65
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/568d1e65
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/568d1e65

Branch: refs/heads/branch-feature-AMBARI-18901
Commit: 568d1e656b1f1c651e594a54f3b3744f62984653
Parents: 1df9b46
Author: Myroslav Papirkovskyi <mpapyrkovs...@hortonworks.com>
Authored: Mon Nov 28 18:41:20 2016 +0200
Committer: Myroslav Papirkovskyi <mpapyrkovs...@hortonworks.com>
Committed: Mon Nov 28 18:41:20 2016 +0200

----------------------------------------------------------------------
 .../server/state/cluster/ClusterImpl.java       | 42 +++++++++++++++-----
 1 file changed, 32 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/568d1e65/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
index 7bf24ce..8b157c7 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
@@ -2534,10 +2534,12 @@ public class ClusterImpl implements Cluster {
     if (serviceConfigEntity.getGroupId() == null) {
       Collection<String> configTypes = serviceConfigTypes.get(serviceName);
       List<ClusterConfigMappingEntity> mappingEntities =
-          clusterDAO.getSelectedConfigMappingByTypes(getClusterId(), new 
ArrayList<>(configTypes));
+          clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId());
       for (ClusterConfigMappingEntity entity : mappingEntities) {
-        entity.setSelected(0);
-        clusterDAO.mergeConfigMapping(entity);
+        if (configTypes.contains(entity.getType()) && entity.isSelected() > 0) 
{
+          entity.setSelected(0);
+          entity = clusterDAO.mergeConfigMapping(entity);
+        }
       }
 
       for (ClusterConfigEntity configEntity : 
serviceConfigEntity.getClusterConfigEntities()) {
@@ -2597,12 +2599,14 @@ public class ClusterImpl implements Cluster {
   @Transactional
   void selectConfig(String type, String tag, String user) {
     Collection<ClusterConfigMappingEntity> entities =
-      clusterDAO.getLatestClusterConfigMappingsEntityByType(getClusterId(), 
type);
+        clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId());
 
     //disable previous config
     for (ClusterConfigMappingEntity e : entities) {
-      e.setSelected(0);
-      clusterDAO.mergeConfigMapping(e);
+      if (e.isSelected() > 0 && e.getType().equals(type)) {
+        e.setSelected(0);
+        e = clusterDAO.mergeConfigMapping(e);
+      }
     }
 
     ClusterEntity clusterEntity = getClusterEntity();
@@ -2668,15 +2672,32 @@ public class ClusterImpl implements Cluster {
   }
 
   private List<ClusterConfigEntity> getClusterConfigEntitiesByService(String 
serviceName) {
+    List<ClusterConfigEntity> configEntities = new 
ArrayList<ClusterConfigEntity>();
+
+    //add configs from this service
     Collection<String> configTypes = serviceConfigTypes.get(serviceName);
-    return clusterDAO.getLatestClusterConfigsByTypes(getClusterId(), new 
ArrayList<>(configTypes));
+    for (ClusterConfigMappingEntity mappingEntity : 
clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId())) {
+      if (mappingEntity.isSelected() > 0 && 
configTypes.contains(mappingEntity.getType())) {
+        ClusterConfigEntity configEntity =
+          clusterDAO.findConfig(getClusterId(), mappingEntity.getType(), 
mappingEntity.getTag());
+        if (configEntity != null) {
+          configEntities.add(configEntity);
+        } else {
+          LOG.error("Desired cluster config type={}, tag={} is not present in 
database," +
+            " unable to add to service config version");
+        }
+      }
+    }
+    return configEntities;
   }
 
   @Override
   public Config getDesiredConfigByType(String configType) {
-    List<ClusterConfigMappingEntity> entities = 
clusterDAO.getLatestClusterConfigMappingsEntityByType(getClusterId(), 
configType);
-    if (!entities.isEmpty()) {
-      return getConfig(configType, entities.get(0).getTag());
+    for (ClusterConfigMappingEntity e : 
clusterDAO.getClusterConfigMappingEntitiesByCluster(
+        getClusterId())) {
+      if (e.isSelected() > 0 && e.getType().equals(configType)) {
+        return getConfig(e.getType(), e.getTag());
+      }
     }
 
     return null;
@@ -3433,4 +3454,5 @@ public class ClusterImpl implements Cluster {
 
     m_clusterPropertyCache.clear();
   }
+
 }

Reply via email to