From 2bcd7a13d4c763b2985d6a0a4d57fb5837865b05 Mon Sep 17 00:00:00 2001 From: anthony Date: Tue, 5 Apr 2011 15:43:21 -0700 Subject: [PATCH] hostid and poolid may overlap, fixed deletePoolStats --- server/src/com/cloud/capacity/dao/CapacityDao.java | 1 - .../com/cloud/capacity/dao/CapacityDaoImpl.java | 10 +--------- .../src/com/cloud/storage/StorageManagerImpl.java | 14 +++++++------- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/server/src/com/cloud/capacity/dao/CapacityDao.java b/server/src/com/cloud/capacity/dao/CapacityDao.java index 7ef8109888a..c67ddb8b9f7 100755 --- a/server/src/com/cloud/capacity/dao/CapacityDao.java +++ b/server/src/com/cloud/capacity/dao/CapacityDao.java @@ -28,7 +28,6 @@ public interface CapacityDao extends GenericDao { void clearStorageCapacities(); CapacityVO findByHostIdType(Long hostId, short capacityType); void clearNonStorageCapacities2(); - List findByHostorPoolId(Long hostorPoolId); List orderClustersInZoneOrPodByHostCapacities(long id, int requiredCpu, long requiredRam, short capacityTypeForOrdering, boolean isZone); List listHostsWithEnoughCapacity(int requiredCpu, long requiredRam, Long clusterId, String hostType); } diff --git a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java index 7ee1d90894f..b3249e8d853 100755 --- a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java +++ b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java @@ -147,15 +147,7 @@ public class CapacityDaoImpl extends GenericDaoBase implements sc.setParameters("hostId", hostId); sc.setParameters("type", capacityType); return findOneBy(sc); - } - - @Override - public java.util.List findByHostorPoolId(Long hostorPoolId){ - SearchCriteria sc = _hostOrPoolIdSearch.create(); - sc.setParameters("hostId", hostorPoolId); - return listBy(sc); - } - + } @Override public List orderClustersInZoneOrPodByHostCapacities(long id, int requiredCpu, long requiredRam, short capacityTypeForOrdering, boolean isZone){ diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 16637627e89..14baa178f4f 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -1199,7 +1199,7 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag sPool.setUuid(null); _storagePoolDao.update(id, sPool); _storagePoolDao.remove(id); - deleteHostorPoolStats(id); + deletePoolStats(id); return true; } else { // 1. Check if the pool has associated volumes in the volumes table @@ -1249,7 +1249,7 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag sPool.setStatus(StoragePoolStatus.Removed); _storagePoolDao.update(id, sPool); _storagePoolDao.remove(id); - deleteHostorPoolStats(id); + deletePoolStats(id); return true; } } @@ -1259,14 +1259,14 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag } @DB - private boolean deleteHostorPoolStats(Long hostorPoolId) { + private boolean deletePoolStats(Long poolId) { - List capacities = _capacityDao.findByHostorPoolId(hostorPoolId); + CapacityVO capacity1 = _capacityDao.findByHostIdType(poolId, CapacityVO.CAPACITY_TYPE_STORAGE); + CapacityVO capacity2 = _capacityDao.findByHostIdType(poolId, CapacityVO.CAPACITY_TYPE_STORAGE_ALLOCATED); Transaction txn = Transaction.currentTxn(); txn.start(); - for (CapacityVO capacity : capacities) { - _capacityDao.remove(capacity.getId()); - } + _capacityDao.remove(capacity1.getId()); + _capacityDao.remove(capacity2.getId()); txn.commit(); return true;