From 227567cf6ca79c7bc398b55f2eee4d8fb93c0de4 Mon Sep 17 00:00:00 2001 From: Harikrishna Patnala Date: Thu, 19 Dec 2013 18:21:07 +0530 Subject: [PATCH] CLOUDSTACK-5554: Custom disk offering allows to create a datadisk with size greater than custom.diskoffering.size.max value --- .../src/com/cloud/vm/UserVmManagerImpl.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index f58a451cc18..c1d0fc08323 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -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()));