From bfd32ca8ff1dfbb5c574dd07991c4988bba942e6 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 8e324bc2f73..d32441c685f 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -2275,24 +2275,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