CLOUDSTACK-5554: Custom disk offering allows to create a datadisk with size greater than custom.diskoffering.size.max value

This commit is contained in:
Harikrishna Patnala 2013-12-19 18:21:07 +05:30 committed by Kishan Kavala
parent 9190b03056
commit 227567cf6c
1 changed files with 12 additions and 12 deletions

View File

@ -2520,19 +2520,19 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
if (tmp != null) {
size = tmp;
}
DiskOfferingVO diskOffering = _diskOfferingDao.findById(diskOfferingId);
if (diskOffering.isCustomized()) {
if (diskSize == null) {
throw new InvalidParameterValueException("This disk offering requires a custom size specified");
}
Long customDiskOfferingMaxSize = volumeMgr.CustomDiskOfferingMaxSize.value();
Long customDiskOfferingMinSize = volumeMgr.CustomDiskOfferingMinSize.value();
if ((diskSize < customDiskOfferingMinSize) || (diskSize > customDiskOfferingMaxSize)) {
throw new InvalidParameterValueException("VM Creation failed. Volume size: " + diskSize + "GB is out of allowed range. Max: " + customDiskOfferingMaxSize + " Min:" +
customDiskOfferingMinSize);
}
}
if (diskOfferingId != null) {
DiskOfferingVO diskOffering = _diskOfferingDao.findById(diskOfferingId);
if (diskOffering != null && diskOffering.isCustomized()) {
if (diskSize == null) {
throw new InvalidParameterValueException("This disk offering requires a custom size specified");
}
Long customDiskOfferingMaxSize = volumeMgr.CustomDiskOfferingMaxSize.value();
Long customDiskOfferingMinSize = volumeMgr.CustomDiskOfferingMinSize.value();
if ((diskSize < customDiskOfferingMinSize) || (diskSize > customDiskOfferingMaxSize)) {
throw new InvalidParameterValueException("VM Creation failed. Volume size: " + diskSize + "GB is out of allowed range. Max: " + customDiskOfferingMaxSize + " Min:" +
customDiskOfferingMinSize);
}
}
size += _diskOfferingDao.findById(diskOfferingId).getDiskSize();
}
resourceLimitCheck(owner, new Long(offering.getCpu()), new Long(offering.getRamSize()));