From ef58e564533e14f3f2dd2ed6aaa3bf8072011823 Mon Sep 17 00:00:00 2001 From: Andrija Panic <45762285+andrijapanicsb@users.noreply.github.com> Date: Tue, 14 Apr 2020 21:00:48 +0200 Subject: [PATCH 1/4] Bring back vm.suspend during deleting VM snapshot --- .../cloud/hypervisor/kvm/storage/KVMStorageProcessor.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index 9e1ff7172ee6..68e87130da28 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -1005,6 +1005,12 @@ public Answer backupSnapshot(final CopyCommand cmd) { primaryStore.getUuid()); if (state == DomainInfo.DomainState.VIR_DOMAIN_RUNNING && !primaryStorage.isExternalSnapshot()) { final DomainSnapshot snap = vm.snapshotLookupByName(snapshotName); + try { + vm.suspend(); + } catch(final Exception e) { + s_logger.debug("Failed to suspend the VM: " + e); + throw e; + } snap.delete(0); /* From 6ae5eb572acc10778700defe35be085792100801 Mon Sep 17 00:00:00 2001 From: dahn Date: Tue, 14 Apr 2020 19:20:38 +0000 Subject: [PATCH 2/4] catch'em all --- .../com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index 68e87130da28..6c3e77703f2e 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -1007,7 +1007,7 @@ public Answer backupSnapshot(final CopyCommand cmd) { final DomainSnapshot snap = vm.snapshotLookupByName(snapshotName); try { vm.suspend(); - } catch(final Exception e) { + } catch (final LibvirtException e) { s_logger.debug("Failed to suspend the VM: " + e); throw e; } From eeac1353b68b10f1de9d2b545af6ec3f4f769c8f Mon Sep 17 00:00:00 2001 From: dahn Date: Wed, 15 Apr 2020 09:24:24 +0200 Subject: [PATCH 3/4] trailing spaces --- .../com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index 6c3e77703f2e..589cf2c45b8c 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -1010,7 +1010,7 @@ public Answer backupSnapshot(final CopyCommand cmd) { } catch (final LibvirtException e) { s_logger.debug("Failed to suspend the VM: " + e); throw e; - } + } snap.delete(0); /* From 0f5e51133967bae750f089e53f7c78fa85d8a396 Mon Sep 17 00:00:00 2001 From: dahn Date: Wed, 15 Apr 2020 15:38:56 +0000 Subject: [PATCH 4/4] logging on suspend --- .../com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index 589cf2c45b8c..617dfc945fe3 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -1006,9 +1006,10 @@ public Answer backupSnapshot(final CopyCommand cmd) { if (state == DomainInfo.DomainState.VIR_DOMAIN_RUNNING && !primaryStorage.isExternalSnapshot()) { final DomainSnapshot snap = vm.snapshotLookupByName(snapshotName); try { + s_logger.info(String.format("Suspending VM '%s' to delete snapshot,", vm.getName())); vm.suspend(); } catch (final LibvirtException e) { - s_logger.debug("Failed to suspend the VM: " + e); + s_logger.error("Failed to suspend the VM", e); throw e; } snap.delete(0);