From e8a31e6f7604ec18762ccd756ace9eda2d0fcd2b Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 21 Aug 2019 14:23:25 +0530 Subject: [PATCH] server: fix NPE for the case where volume is not attached to a VM Fixes NPE when trying to find suitable storage pools for a volume when the volume is not attached to a VM. Signed-off-by: Rohit Yadav --- .../java/com/cloud/server/ManagementServerImpl.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index f8b440a83bbc..6cb457471064 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -37,8 +37,6 @@ import javax.inject.Inject; import javax.naming.ConfigurationException; -import com.cloud.storage.ScopeType; -import com.cloud.hypervisor.kvm.dpdk.DpdkHelper; import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.affinity.AffinityGroupProcessor; import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao; @@ -613,6 +611,7 @@ import com.cloud.hypervisor.HypervisorCapabilities; import com.cloud.hypervisor.HypervisorCapabilitiesVO; import com.cloud.hypervisor.dao.HypervisorCapabilitiesDao; +import com.cloud.hypervisor.kvm.dpdk.DpdkHelper; import com.cloud.info.ConsoleProxyInfo; import com.cloud.network.IpAddress; import com.cloud.network.dao.IPAddressDao; @@ -639,6 +638,7 @@ import com.cloud.storage.GuestOSHypervisorVO; import com.cloud.storage.GuestOSVO; import com.cloud.storage.GuestOsCategory; +import com.cloud.storage.ScopeType; import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePool; import com.cloud.storage.Volume; @@ -1442,7 +1442,11 @@ public Pair, List> listStorag StoragePool srcVolumePool = _poolDao.findById(volume.getPoolId()); allPools = getAllStoragePoolCompatileWithVolumeSourceStoragePool(srcVolumePool); allPools.remove(srcVolumePool); - suitablePools = findAllSuitableStoragePoolsForVm(volume, vm, srcVolumePool); + if (vm != null) { + suitablePools = findAllSuitableStoragePoolsForVm(volume, vm, srcVolumePool); + } else { + suitablePools = allPools; + } return new Pair, List>(allPools, suitablePools); }