From abfc351b783e4aa0bfc360979de54dbea67cf538 Mon Sep 17 00:00:00 2001 From: Prachi Damle Date: Sat, 27 Jul 2013 15:52:35 -0700 Subject: [PATCH] CLOUDSTACK-3814 Duplicate entry for CPU, Public ip address in dashboard Changes: - ListCapacity API was searching the capacities per zone, pod and cluster causing duplicates to end up in th result. - Instead we should group by zone if zone and pod both are null. Group by pod if zone is provided but no pod. Or group by cluster when zone and pod both are provided. --- .../cloud/server/ManagementServerImpl.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index ecb8f85d71b..e0abe0146fb 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -2292,24 +2292,23 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe if (summedCapacitiesAtZone != null) { summedCapacities.addAll(summedCapacitiesAtZone); } - } - if (podId == null) {// Group by Pod, capacity type + } else if (podId == null) {// Group by Pod, capacity type List summedCapacitiesAtPod = _capacityDao.listCapacitiesGroupedByLevelAndType(capacityType, zoneId, podId, clusterId, 2, cmd.getPageSizeVal()); if (summedCapacitiesAtPod != null) { summedCapacities.addAll(summedCapacitiesAtPod); } - List summedCapacitiesForSecStorage = getSecStorageUsed(zoneId, capacityType); - if (summedCapacitiesForSecStorage != null) { - summedCapacities.addAll(summedCapacitiesForSecStorage); + } else { // Group by Cluster, capacity type + List summedCapacitiesAtCluster = _capacityDao.listCapacitiesGroupedByLevelAndType( + capacityType, zoneId, podId, clusterId, 3, cmd.getPageSizeVal()); + if (summedCapacitiesAtCluster != null) { + summedCapacities.addAll(summedCapacitiesAtCluster); } } - // Group by Cluster, capacity type - List summedCapacitiesAtCluster = _capacityDao.listCapacitiesGroupedByLevelAndType(capacityType, zoneId, podId, clusterId, 3, - cmd.getPageSizeVal()); - if (summedCapacitiesAtCluster != null) { - summedCapacities.addAll(summedCapacitiesAtCluster); + List summedCapacitiesForSecStorage = getSecStorageUsed(zoneId, capacityType); + if (summedCapacitiesForSecStorage != null) { + summedCapacities.addAll(summedCapacitiesForSecStorage); } // Sort Capacities