diff --git a/server/src/com/cloud/capacity/dao/CapacityDao.java b/server/src/com/cloud/capacity/dao/CapacityDao.java index df0267cbce2..265afb67541 100755 --- a/server/src/com/cloud/capacity/dao/CapacityDao.java +++ b/server/src/com/cloud/capacity/dao/CapacityDao.java @@ -28,7 +28,7 @@ public interface CapacityDao extends GenericDao { CapacityVO findByHostIdType(Long hostId, short capacityType); List listClustersInZoneOrPodByHostCapacities(long id, int requiredCpu, long requiredRam, short capacityTypeForOrdering, boolean isZone, float cpuOverprovisioningFactor); List listHostsWithEnoughCapacity(int requiredCpu, long requiredRam, Long clusterId, String hostType, float cpuOverprovisioningFactor); - List findCapacityByType(short capacityType, Long zoneId, Long podId, + List findCapacityByType(Integer capacityType, Long zoneId, Long podId, Long clusterId, Long startIndex, Long pageSize); boolean removeBy(Short capacityType, Long zoneId, Long podId, Long clusterId); List findByClusterPodZone(Long zoneId, Long podId, Long clusterId); diff --git a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java index 41b13504f90..d6e62d92306 100755 --- a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java +++ b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java @@ -94,7 +94,7 @@ public class CapacityDaoImpl extends GenericDaoBase implements } @Override - public List findCapacityByType(short capacityType, Long zoneId, Long podId, Long clusterId, Long startIndex, Long pageSize){ + public List findCapacityByType(Integer capacityType, Long zoneId, Long podId, Long clusterId, Long startIndex, Long pageSize){ SummedCapacitySearch = createSearchBuilder(SummedCapacity.class); SummedCapacitySearch.select("sumUsed", Func.SUM, SummedCapacitySearch.entity().getUsedCapacity()); @@ -103,8 +103,7 @@ public class CapacityDaoImpl extends GenericDaoBase implements SummedCapacitySearch.select("podId", Func.NATIVE, SummedCapacitySearch.entity().getPodId()); SummedCapacitySearch.and("dcId", SummedCapacitySearch.entity().getDataCenterId(), Op.EQ); - SummedCapacitySearch.and("capacityType", SummedCapacitySearch.entity().getCapacityType(), Op.EQ); - SummedCapacitySearch.groupBy(SummedCapacitySearch.entity().getClusterId()); + SummedCapacitySearch.groupBy(SummedCapacitySearch.entity().getClusterId(), SummedCapacitySearch.entity().getCapacityType()); if (podId != null){ SummedCapacitySearch.and("podId", SummedCapacitySearch.entity().getPodId(), Op.EQ); @@ -112,18 +111,24 @@ public class CapacityDaoImpl extends GenericDaoBase implements if (clusterId != null){ SummedCapacitySearch.and("clusterId", SummedCapacitySearch.entity().getClusterId(), Op.EQ); } + if (capacityType != null){ + SummedCapacitySearch.and("capacityType", SummedCapacitySearch.entity().getCapacityType(), Op.EQ); + } + SummedCapacitySearch.done(); SearchCriteria sc = SummedCapacitySearch.create(); sc.setParameters("dcId", zoneId); - sc.setParameters("capacityType", capacityType); if (podId != null){ sc.setParameters("podId", podId); } if (clusterId != null){ sc.setParameters("clusterId", clusterId); } + if (capacityType != null){ + sc.setParameters("capacityType", capacityType); + } Filter filter = new Filter(CapacityVO.class, null, true, startIndex, pageSize); List results = customSearchIncludingRemoved(sc, filter); diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index ea46d0770f3..081f02f4bd1 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -2465,7 +2465,7 @@ public class ManagementServerImpl implements ManagementServer { @Override public List listCapacityByType(ListCapacityByTypeCmd cmd) { - List results = _capacityDao.findCapacityByType(cmd.getType().shortValue(), cmd.getZoneId(), cmd.getPodId(), cmd.getClusterId(), cmd.getStartIndex(), cmd.getPageSizeVal()); + List results = _capacityDao.findCapacityByType(cmd.getType(), cmd.getZoneId(), cmd.getPodId(), cmd.getClusterId(), cmd.getStartIndex(), cmd.getPageSizeVal()); for (SummedCapacity sum : results){ s_logger.info("Total - " +sum.sumTotal+ " Used - " +sum.sumUsed+ " cluster " +sum.clusterId+ " pod " +sum.podId); }