From 85679355615b23a54a50ee635a0725c23d6e8ddd Mon Sep 17 00:00:00 2001 From: nit Date: Fri, 15 Apr 2011 13:46:17 +0530 Subject: [PATCH] bug 9221: Parse storage.overprovisioning.factor as a float rather than as an int. Status 9221: resolved fixed --- server/src/com/cloud/agent/manager/AgentManagerImpl.java | 6 +++--- server/src/com/cloud/storage/StorageManagerImpl.java | 8 ++++---- .../storage/allocator/AbstractStoragePoolAllocator.java | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) mode change 100644 => 100755 server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index 11bdde5cb6d..17d25e23fd9 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -290,7 +290,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS protected int _updateWait; protected int _alertWait; protected long _nodeId = -1; - protected int _overProvisioningFactor = 1; + protected float _overProvisioningFactor = 1; protected float _cpuOverProvisioningFactor = 1; protected Random _rand = new Random(System.currentTimeMillis()); @@ -380,7 +380,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS String overProvisioningFactorStr = configs .get("storage.overprovisioning.factor"); - _overProvisioningFactor = NumbersUtil.parseInt( + _overProvisioningFactor = NumbersUtil.parseFloat( overProvisioningFactorStr, 1); String cpuOverProvisioningFactorStr = configs @@ -3010,7 +3010,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS if (ssCmd.getResourceType() == Storage.StorageResourceType.STORAGE_HOST) { CapacityVO capacity = new CapacityVO(server.getId(), server.getDataCenterId(), server.getPodId(), server.getClusterId(), 0L, - server.getTotalSize() * _overProvisioningFactor, + (long)(server.getTotalSize() * _overProvisioningFactor), CapacityVO.CAPACITY_TYPE_STORAGE_ALLOCATED); _capacityDao.persist(capacity); } diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 8e09cfee919..87f2261ffd7 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -294,7 +294,7 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag protected int _retry = 2; protected int _pingInterval = 60; // seconds protected int _hostRetry; - protected int _overProvisioningFactor = 1; + protected float _overProvisioningFactor = 1; private int _maxVolumeSizeInGb; private long _serverId; @@ -794,7 +794,7 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag String overProvisioningFactorStr = configs.get("storage.overprovisioning.factor"); if (overProvisioningFactorStr != null) { - _overProvisioningFactor = Integer.parseInt(overProvisioningFactorStr); + _overProvisioningFactor = Float.parseFloat(overProvisioningFactorStr); } _retry = NumbersUtil.parseInt(configs.get(Config.StartRetry.key()), 10); @@ -1741,9 +1741,9 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag capacities = _capacityDao.search(capacitySC, null); - int provFactor = 1; + long provFactor = 1; if (storagePool.getPoolType() == StoragePoolType.NetworkFilesystem) { - provFactor = _overProvisioningFactor; + provFactor = (long) _overProvisioningFactor; } if (capacities.size() == 0) { CapacityVO capacity = new CapacityVO(storagePool.getId(), storagePool.getDataCenterId(), storagePool.getPodId(), storagePool.getClusterId(), allocated, storagePool.getCapacityBytes() diff --git a/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java old mode 100644 new mode 100755 index c05b03388bc..edb63315bf8 --- a/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java @@ -74,7 +74,7 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement @Inject StoragePoolHostDao _poolHostDao; @Inject ConfigurationDao _configDao; @Inject ClusterDao _clusterDao; - int _storageOverprovisioningFactor; + float _storageOverprovisioningFactor; long _extraBytesPerVolume = 0; Random _rand; boolean _dontMatter; @@ -87,7 +87,7 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement Map configs = _configDao.getConfiguration(null, params); String globalStorageOverprovisioningFactor = configs.get("storage.overprovisioning.factor"); - _storageOverprovisioningFactor = NumbersUtil.parseInt(globalStorageOverprovisioningFactor, 2); + _storageOverprovisioningFactor = NumbersUtil.parseFloat(globalStorageOverprovisioningFactor, 2); _extraBytesPerVolume = 0; @@ -246,7 +246,7 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement long askingSize = dskCh.getSize(); - int storageOverprovisioningFactor = 1; + float storageOverprovisioningFactor = 1; if (pool.getPoolType() == StoragePoolType.NetworkFilesystem) { storageOverprovisioningFactor = _storageOverprovisioningFactor; }