From bd765999babb041b888dbc1dd599c69617b679ac Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Tue, 7 Feb 2012 14:38:02 -0800 Subject: [PATCH] Fixed listTopConsumedResources to work w/o specifying page/pageSize --- .../src/com/cloud/capacity/dao/CapacityDao.java | 2 +- .../com/cloud/capacity/dao/CapacityDaoImpl.java | 2 +- .../com/cloud/server/ManagementServerImpl.java | 17 ++++++++++++----- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/server/src/com/cloud/capacity/dao/CapacityDao.java b/server/src/com/cloud/capacity/dao/CapacityDao.java index 8d152fd52da..7e9d0809701 100755 --- a/server/src/com/cloud/capacity/dao/CapacityDao.java +++ b/server/src/com/cloud/capacity/dao/CapacityDao.java @@ -40,7 +40,7 @@ public interface CapacityDao extends GenericDao { Pair, Map> orderPodsByAggregateCapacity(long zoneId, short capacityType, float cpuOverprovisioningFactor); List findCapacityBy(Integer capacityType, Long zoneId, Long podId, Long clusterId, String resourceState); - List listCapacitiesGroupedByLevelAndType(Integer capacityType, Long zoneId, Long podId, Long clusterId, int level, Integer limit); + List listCapacitiesGroupedByLevelAndType(Integer capacityType, Long zoneId, Long podId, Long clusterId, int level, Long limit); void updateCapacityState(Long dcId, Long podId, Long clusterId, Long hostId, String capacityState); } diff --git a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java index a8ea0208d28..d7c1ef2816e 100755 --- a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java +++ b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java @@ -188,7 +188,7 @@ public class CapacityDaoImpl extends GenericDaoBase implements } @Override - public List listCapacitiesGroupedByLevelAndType(Integer capacityType, Long zoneId, Long podId, Long clusterId, int level, Integer limit){ + public List listCapacitiesGroupedByLevelAndType(Integer capacityType, Long zoneId, Long podId, Long clusterId, int level, Long limit){ StringBuilder finalQuery = new StringBuilder(); Transaction txn = Transaction.currentTxn(); diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 164e3331611..561228a8ca0 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -52,7 +52,6 @@ import com.cloud.agent.api.GetVncPortAnswer; import com.cloud.agent.api.GetVncPortCommand; import com.cloud.agent.api.storage.CopyVolumeAnswer; import com.cloud.agent.api.storage.CopyVolumeCommand; -import com.cloud.agent.api.to.VolumeTO; import com.cloud.agent.manager.allocator.HostAllocator; import com.cloud.alert.Alert; import com.cloud.alert.AlertManager; @@ -1950,13 +1949,13 @@ public class ManagementServerImpl implements ManagementServer { List summedCapacities = new ArrayList(); if (zoneId == null && podId == null){//Group by Zone, capacity type - List summedCapacitiesAtZone = _capacityDao.listCapacitiesGroupedByLevelAndType(capacityType, zoneId, podId, clusterId, 1, cmd.getPageSize()); + List summedCapacitiesAtZone = _capacityDao.listCapacitiesGroupedByLevelAndType(capacityType, zoneId, podId, clusterId, 1, cmd.getPageSizeVal()); if(summedCapacitiesAtZone != null){ summedCapacities.addAll(summedCapacitiesAtZone); } } if (podId == null){//Group by Pod, capacity type - List summedCapacitiesAtPod = _capacityDao.listCapacitiesGroupedByLevelAndType(capacityType, zoneId, podId, clusterId, 2, cmd.getPageSize()); + List summedCapacitiesAtPod = _capacityDao.listCapacitiesGroupedByLevelAndType(capacityType, zoneId, podId, clusterId, 2, cmd.getPageSizeVal()); if(summedCapacitiesAtPod != null){ summedCapacities.addAll(summedCapacitiesAtPod); } @@ -1967,7 +1966,7 @@ public class ManagementServerImpl implements ManagementServer { } //Group by Cluster, capacity type - List summedCapacitiesAtCluster = _capacityDao.listCapacitiesGroupedByLevelAndType(capacityType, zoneId, podId, clusterId, 3, cmd.getPageSize()); + List summedCapacitiesAtCluster = _capacityDao.listCapacitiesGroupedByLevelAndType(capacityType, zoneId, podId, clusterId, 3, cmd.getPageSizeVal()); if(summedCapacitiesAtCluster != null){ summedCapacities.addAll(summedCapacitiesAtCluster); } @@ -1987,7 +1986,15 @@ public class ManagementServerImpl implements ManagementServer { List capacities = new ArrayList(); - summedCapacities = summedCapacities.subList(0, summedCapacities.size() < cmd.getPageSize() ? summedCapacities.size() : cmd.getPageSize()); + + Integer pageSize = null; + try { + pageSize = Integer.valueOf(cmd.getPageSizeVal().toString()); + } catch(IllegalArgumentException e) { + throw new InvalidParameterValueException("pageSize " + cmd.getPageSizeVal() + " is out of Integer range is not supported for this call"); + } + + summedCapacities = summedCapacities.subList(0, summedCapacities.size() < cmd.getPageSizeVal() ? summedCapacities.size() : pageSize); for (SummedCapacity summedCapacity : summedCapacities){ CapacityVO capacity = new CapacityVO(summedCapacity.getDataCenterId(), summedCapacity.getPodId() , summedCapacity.getClusterId(), summedCapacity.getCapacityType(), summedCapacity.getPercentUsed());