Fix storage cleanup corner case preventing VM deletion (#5575)

* Fix storage cleanup corner case

* Improve deletion

* Refactor
This commit is contained in:
Nicolas Vazquez 2021-10-16 00:09:54 -03:00 committed by GitHub
parent 26b5d9423a
commit a5372a98dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1869,6 +1869,7 @@ public class VolumeServiceImpl implements VolumeService {
long sourceVolumeId = sourceVolume.getId(); long sourceVolumeId = sourceVolume.getId();
volDao.updateUuid(sourceVolumeId, destinationVolume.getId()); volDao.updateUuid(sourceVolumeId, destinationVolume.getId());
volDao.detachVolume(sourceVolumeId);
s_logger.info(String.format("Cleaning up %s on storage [%s].", sourceVolumeVo.getVolumeDescription(), sourceVolumeVo.getPoolId())); s_logger.info(String.format("Cleaning up %s on storage [%s].", sourceVolumeVo.getVolumeDescription(), sourceVolumeVo.getPoolId()));
destroyVolume(sourceVolumeId); destroyVolume(sourceVolumeId);
@ -2063,6 +2064,7 @@ public class VolumeServiceImpl implements VolumeService {
srcVolume.processEvent(Event.OperationSuccessed); srcVolume.processEvent(Event.OperationSuccessed);
destVolume.processEvent(Event.MigrationCopySucceeded, result.getAnswer()); destVolume.processEvent(Event.MigrationCopySucceeded, result.getAnswer());
volDao.updateUuid(srcVolume.getId(), destVolume.getId()); volDao.updateUuid(srcVolume.getId(), destVolume.getId());
volDao.detachVolume(srcVolume.getId());
try { try {
destroyVolume(srcVolume.getId()); destroyVolume(srcVolume.getId());
srcVolume = volFactory.getVolume(srcVolume.getId()); srcVolume = volFactory.getVolume(srcVolume.getId());