From c59c736f985762d5d5fb991731c19ce1e69e0098 Mon Sep 17 00:00:00 2001 From: Devdeep Singh Date: Tue, 16 Jul 2013 12:01:28 +0530 Subject: [PATCH] CLOUDSTACK-3545: NPE in listStoragePoolsForMigration api. The volume table no longer holds the pod id, the column is null now. Made a change to get the pod id from the storage pool on which the volume resides. --- server/src/com/cloud/server/ManagementServerImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index cdffb16177f..29272dd33c9 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -1254,11 +1254,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe // Get all the pools available. Only shared pools are considered because only a volume on a shared pools // can be live migrated while the virtual machine stays on the same host. List storagePools = null; - if (srcVolumePool.getClusterId() == null) { storagePools = _poolDao.findZoneWideStoragePoolsByTags(volume.getDataCenterId(), null); } else { - storagePools = _poolDao.findPoolsByTags(volume.getDataCenterId(), volume.getPodId(), srcVolumePool.getClusterId(), null); + storagePools = _poolDao.findPoolsByTags(volume.getDataCenterId(), srcVolumePool.getPodId(), srcVolumePool.getClusterId(), null); } storagePools.remove(srcVolumePool); @@ -1274,7 +1273,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe avoid.addPool(srcVolumePool.getId()); // Volume stays in the same cluster after migration. - DataCenterDeployment plan = new DataCenterDeployment(volume.getDataCenterId(), volume.getPodId(), + DataCenterDeployment plan = new DataCenterDeployment(volume.getDataCenterId(), srcVolumePool.getPodId(), srcVolumePool.getClusterId(), null, null, null); VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);