[PATCH 6/7] qemu: snapshot: Allow snapshot consisting only of 'manual'-y handled disks

Peter Krempa via Devel posted 7 patches 2 weeks ago
[PATCH 6/7] qemu: snapshot: Allow snapshot consisting only of 'manual'-y handled disks
Posted by Peter Krempa via Devel 2 weeks ago
From: Peter Krempa <pkrempa@redhat.com>

The 'manual' snapshot mode is meant for disks where the users wants to
take a snapshot via means outside of libvirt, e.g. on a SAN network.

Allow creating a snapshot which consists entirely of 'manual' disks. For
now this effectively means that the VM will be paused but in the future
more logic can be added to ensure consistency.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_snapshot.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index 5c12dca892..d4994dd54e 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -996,7 +996,7 @@ qemuSnapshotPrepare(virDomainObj *vm,
         }
     }

-    if (!found_internal && !external &&
+    if (!found_internal && !external && !*has_manual &&
         def->memory == VIR_DOMAIN_SNAPSHOT_LOCATION_NO) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                        _("nothing selected for snapshot"));
@@ -1013,7 +1013,7 @@ qemuSnapshotPrepare(virDomainObj *vm,
     }

     /* disk snapshot requires at least one disk */
-    if (def->state == VIR_DOMAIN_SNAPSHOT_DISK_SNAPSHOT && !external) {
+    if (def->state == VIR_DOMAIN_SNAPSHOT_DISK_SNAPSHOT && !external && !*has_manual) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                        _("disk-only snapshots require at least one disk to be selected for snapshot"));
         return -1;
-- 
2.51.0