From b549bb158611bd935c85a045408252225bbf6270 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Thu, 9 May 2019 16:35:02 +0530 Subject: [PATCH 1/2] server: fix for inactive service offering for VM (#3315) Fixes #3315 Currently code was allowing to change service offering for VM to a deleted or inactive service offering. Added check for it to throw an exception. Signed-off-by: Abhishek Kumar --- server/src/main/java/com/cloud/vm/UserVmManagerImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index 68b45e1af7c3..441927f2453d 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -965,6 +965,9 @@ public UserVm upgradeVirtualMachine(UpgradeVMCmd cmd) throws ResourceAllocationE // Check resource limits for CPU and Memory. Map customParameters = cmd.getDetails(); ServiceOfferingVO newServiceOffering = _offeringDao.findById(svcOffId); + if (newServiceOffering.getState() == DiskOffering.State.Inactive) { + throw new InvalidParameterValueException(String.format("Unable to upgrade virtual machine %s with an inactive service offering %s", vmInstance.toString(), newServiceOffering.getUuid())); + } if (newServiceOffering.isDynamic()) { newServiceOffering.setDynamicFlag(true); validateCustomParameters(newServiceOffering, cmd.getDetails()); From b65d44c477dc175bf4cdac0de562e3412e32f88f Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Fri, 10 May 2019 12:16:29 +0530 Subject: [PATCH 2/2] show VM UUID in exception error message Signed-off-by: Abhishek Kumar --- server/src/main/java/com/cloud/vm/UserVmManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index 441927f2453d..e269f79f6d67 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -966,7 +966,7 @@ public UserVm upgradeVirtualMachine(UpgradeVMCmd cmd) throws ResourceAllocationE Map customParameters = cmd.getDetails(); ServiceOfferingVO newServiceOffering = _offeringDao.findById(svcOffId); if (newServiceOffering.getState() == DiskOffering.State.Inactive) { - throw new InvalidParameterValueException(String.format("Unable to upgrade virtual machine %s with an inactive service offering %s", vmInstance.toString(), newServiceOffering.getUuid())); + throw new InvalidParameterValueException(String.format("Unable to upgrade virtual machine %s with an inactive service offering %s", vmInstance.getUuid(), newServiceOffering.getUuid())); } if (newServiceOffering.isDynamic()) { newServiceOffering.setDynamicFlag(true);