From 7416383fcd540d039b068e86d346265a25795263 Mon Sep 17 00:00:00 2001 From: Prachi Damle Date: Fri, 13 Sep 2013 14:56:43 -0700 Subject: [PATCH] CLOUDSTACK-4651: Restarting management server when volume Snapshot is still in progress for root volume of a VM , then there is no way to restart VM since the startVM job is stuck forever since the volume is in "Snapshoting" state. Change: -If no volume of the VM is usable, VM cannot be deployed or started. Atleast ROOT volume should always be in usable state to start up the VM --- .../src/com/cloud/deploy/DeploymentPlanningManagerImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java index cdd46ce7eb2..8b0257fd749 100644 --- a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java +++ b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java @@ -1052,6 +1052,11 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy Map> suitableVolumeStoragePools = new HashMap>(); List readyAndReusedVolumes = new ArrayList(); + // There should be atleast the ROOT volume of the VM in usable state + if (volumesTobeCreated.isEmpty()) { + throw new CloudRuntimeException("Unable to create deployment, no usable volumes found for the VM"); + } + // for each volume find list of suitable storage pools by calling the // allocators for (VolumeVO toBeCreated : volumesTobeCreated) {