From ec0c35269aa60076e37421f52b65a848263792c5 Mon Sep 17 00:00:00 2001 From: Kishan Kavala Date: Mon, 24 Sep 2012 15:12:27 +0530 Subject: [PATCH] bug CS-16380: Check if storage pool changed during migration. Migration should fail only when the assigned pool is not same as existing storage pool status CS-16380: resolved fixed reviewed-by: Abhi --- .../src/com/cloud/storage/StorageManagerImpl.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index e57e6ea039e..0bb44a6b05a 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -2794,11 +2794,16 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag } recreateVols.add(vol); } else { - if (s_logger.isDebugEnabled()) { - s_logger.debug("Volume " + vol + " is not recreatable! Cannot recreate on storagepool: " + assignedPool); + if (assignedPool.getId() != vol.getPoolId()) { + // copy volume usecase - not yet developed. + if (s_logger.isDebugEnabled()) { + s_logger.debug("Volume " + vol + " is not recreatable! Cannot recreate on storagepool: " + assignedPool); + } + throw new StorageUnavailableException("Volume is not recreatable, Unable to create " + vol, Volume.class, vol.getId()); + } else { + StoragePoolVO pool = _storagePoolDao.findById(vol.getPoolId()); + vm.addDisk(new VolumeTO(vol, pool)); } - throw new StorageUnavailableException("Volume is not recreatable, Unable to create " + vol, Volume.class, vol.getId()); - // copy volume usecase - not yet developed. } } } else {