https://issues.apache.org/jira/browse/CLOUDSTACK-5806

On Mon, Jan 6, 2014 at 12:46 PM, Marcus Sorensen <shadow...@gmail.com> wrote:
> Thanks, I've created an issue for it. It's unassigned, I assume
> Edison, Mike, Chris S, or myself could fix it, I don't have time to
> immediately look into it (I simply removed the check for type to get
> around our immediate issue) but will try to circle back around on it
> if nobody can help.
>
> On Mon, Jan 6, 2014 at 12:14 PM, Edison Su <edison...@citrix.com> wrote:
>> We can move it to storage driver's capabilities method.
>> Each storage driver can report its capabilities in DataStoreDriver-> 
>> getCapabilities(), which returns a map[String, String], we can change the 
>> signature to map[String, Object]
>> In CloudStackPrimaryDataStoreDriverImpl(the default storage driver)-> 
>> getCapabilities, which can return something like:
>>
>> Var comparator = new  storageOverProvision() {
>>     Public Boolean isOverProvisionSupported(DataStore store) {
>>        Var storagepool = (PrimaryDataStoreInfo)store;
>>        If (store.getPoolType() == NFS or VMFS) {
>>            Return true;
>>       }
>>      };
>> };
>> Var caps = new HashMap[String, Object]();
>> Caps.put("storageOverProvision", comparator);
>> Return caps;
>> }
>>
>> Whenever, other places in mgt server want to check the capabilities of 
>> overprovision, we can do the following:
>>
>> Var primaryStore = DataStoreManager. getPrimaryDataStore(primaryStoreId);
>> var caps = primaryStore. getDriver().getCapabilities();
>> var overprovision = caps.get("storageOverProvision");
>> var result = overprovision. isOverProvisionSupported(primaryStore);
>>
>>
>>
>>
>>
>>> -----Original Message-----
>>> From: Marcus Sorensen [mailto:shadow...@gmail.com]
>>> Sent: Monday, January 06, 2014 9:19 AM
>>> To: dev@cloudstack.apache.org
>>> Subject: HELP: storage overprovision for storage plugins
>>>
>>> Does anyone know how to make our storage plugin allow overprovisioning
>>> with the new storage framework? Looks like its currently hardcoded to just
>>> NFS or VMFS.
>>>
>>> I imagine we'd want to add a method to StoragePool, boolean
>>> StoragePool.getOverprovision()
>>>
>>>
>>> server/src/com/cloud/storage/StorageManagerImpl.java
>>>
>>>         if (storagePool.getPoolType() == StoragePoolType.NetworkFilesystem 
>>> ||
>>> storagePool.getPoolType() ==
>>> StoragePoolType.VMFS) {
>>>             BigDecimal overProvFactor =
>>> getStorageOverProvisioningFactor(storagePool.getDataCenterId());
>>>             totalOverProvCapacity = overProvFactor.multiply(new
>>> BigDecimal(storagePool.getCapacityBytes())).longValue();
>>>             // All this is for the inaccuracy of floats for big number 
>>> multiplication.
>>>         } else {
>>>             totalOverProvCapacity = storagePool.getCapacityBytes();
>>>         }

Reply via email to