From d0e18f68fde6ce7d33cef599420491e42edfda4b Mon Sep 17 00:00:00 2001 From: Nitin Mehta Date: Fri, 13 Jan 2012 20:28:55 +0530 Subject: [PATCH] bug 13066 Storage over prov factor should be float rather than long which leads to wrong storage calculation Reviewed by : Kishan. --- server/src/com/cloud/storage/StorageManagerImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index f8b7ef8c6f3..a7f528ebabc 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -1854,17 +1854,17 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag capacities = _capacityDao.search(capacitySC, null); - long provFactor = 1; + float provFactor = 1; if (storagePool.getPoolType() == StoragePoolType.NetworkFilesystem) { - provFactor = (long) _overProvisioningFactor; + provFactor = _overProvisioningFactor; } if (capacities.size() == 0) { - CapacityVO capacity = new CapacityVO(storagePool.getId(), storagePool.getDataCenterId(), storagePool.getPodId(), storagePool.getClusterId(), allocated, storagePool.getCapacityBytes() - * provFactor, capacityType); + CapacityVO capacity = new CapacityVO(storagePool.getId(), storagePool.getDataCenterId(), storagePool.getPodId(), storagePool.getClusterId(), allocated, (long)(storagePool.getCapacityBytes() + * provFactor), capacityType); _capacityDao.persist(capacity); } else { CapacityVO capacity = capacities.get(0); - long currCapacity = provFactor * storagePool.getCapacityBytes(); + long currCapacity = (long)(provFactor * storagePool.getCapacityBytes()); boolean update = false; if (capacity.getTotalCapacity() != currCapacity) { capacity.setTotalCapacity(currCapacity);