From ee5b8763a6b7cafee7310304dcaad30bfbd8f453 Mon Sep 17 00:00:00 2001 From: nvazquez Date: Fri, 16 Oct 2020 00:47:34 -0300 Subject: [PATCH] Fix remove VM and its volumes for deploy-as-is if have previously failed - restore cpu flags in nested virtualization test --- .../storage/volume/VolumeServiceImpl.java | 13 ++++++++++--- .../integration/smoke/test_nested_virtualization.py | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java index 53a36ede6bd..5e3493a29f1 100644 --- a/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java +++ b/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java @@ -28,6 +28,8 @@ import java.util.Random; import javax.inject.Inject; +import com.cloud.storage.VMTemplateVO; +import com.cloud.storage.dao.VMTemplateDao; import org.apache.cloudstack.engine.cloud.entity.api.VolumeEntity; import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo; import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult; @@ -168,6 +170,8 @@ public class VolumeServiceImpl implements VolumeService { private ClusterDao clusterDao; @Inject private VolumeDetailsDao _volumeDetailsDao; + @Inject + private VMTemplateDao templateDao; private final static String SNAPSHOT_ID = "SNAPSHOT_ID"; @@ -351,9 +355,12 @@ public class VolumeServiceImpl implements VolumeService { if (s_logger.isDebugEnabled()) { s_logger.debug("Marking volume that was never created as destroyed: " + vol); } - volDao.remove(vol.getId()); - future.complete(result); - return future; + VMTemplateVO template = templateDao.findById(vol.getTemplateId()); + if (template != null && !template.isDeployAsIs()) { + volDao.remove(vol.getId()); + future.complete(result); + return future; + } } } VolumeObject vo = (VolumeObject)volume; diff --git a/test/integration/smoke/test_nested_virtualization.py b/test/integration/smoke/test_nested_virtualization.py index 43313244f41..10dcf895ed9 100644 --- a/test/integration/smoke/test_nested_virtualization.py +++ b/test/integration/smoke/test_nested_virtualization.py @@ -139,7 +139,7 @@ class TestNestedVirtualization(cloudstackTestCase): #5) Check for CPU flags: vmx for Intel and svm for AMD indicates nested virtualization is enabled self.assert_(result is not None, "Empty result for CPU flags") res = str(result) - self.assertTrue('vmx' in res or 'svm' in res or 'lm' in res) + self.assertTrue('vmx' in res or 'svm' in res) except Exception as e: self.debug('Error=%s' % e) self.rollback_nested_configurations(rollback_nv, rollback_nv_per_vm)