From f0a74e6314a6d2a81a499e2215789ea49503bfac Mon Sep 17 00:00:00 2001 From: abhishek Date: Wed, 2 Mar 2011 10:07:31 -0800 Subject: [PATCH] bug 8806: improvements to the flow; using group by to eliminate need for extra ds --- server/src/com/cloud/dc/dao/ClusterDaoImpl.java | 1 + server/src/com/cloud/server/ManagementServerImpl.java | 11 +++-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/server/src/com/cloud/dc/dao/ClusterDaoImpl.java b/server/src/com/cloud/dc/dao/ClusterDaoImpl.java index deece014259..2f04aa96b90 100644 --- a/server/src/com/cloud/dc/dao/ClusterDaoImpl.java +++ b/server/src/com/cloud/dc/dao/ClusterDaoImpl.java @@ -68,6 +68,7 @@ public class ClusterDaoImpl extends GenericDaoBase implements C ZoneSearch = createSearchBuilder(); ZoneSearch.and("dataCenterId", ZoneSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ); + ZoneSearch.groupBy(ZoneSearch.entity().getHypervisorType()); ZoneSearch.done(); AvailHyperSearch = createSearchBuilder(); diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 3db8906cfa4..0872bfaadc6 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -4721,16 +4721,11 @@ public class ManagementServerImpl implements ManagementServer { int i = 0; List clustersForZone = _clusterDao.listByZoneId(zoneId); if(clustersForZone != null && clustersForZone.size() > 0) { - Set result = new HashSet(); + String[] result = new String[clustersForZone.size()]; for(ClusterVO cluster : clustersForZone) { - result.add(cluster.getHypervisorType().toString()); + result[i++] = cluster.getHypervisorType().toString(); } - - String[] resultArray = new String[result.size()]; - for(String entity : result) { - resultArray[i++] = entity; - } - return resultArray; + return result; } } return null;