]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Add support for 'resume' parameter of migrate QMP command
authorJiri Denemark <jdenemar@redhat.com>
Tue, 10 May 2022 13:20:25 +0000 (15:20 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 7 Jun 2022 15:40:20 +0000 (17:40 +0200)
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_migration.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.c

index 1e8039a40dc9953cbb294cdd048d07aa6b1503f2..aee151d695182be19ab90b445e51c5e492ff08b7 100644 (file)
@@ -4399,8 +4399,12 @@ qemuMigrationSrcStart(virDomainObj *vm,
     }
 
     /* log start of migration */
-    if ((timestamp = virTimeStringNow()) != NULL)
-        qemuDomainLogAppendMessage(driver, vm, "%s: initiating migration\n", timestamp);
+    if ((timestamp = virTimeStringNow()) != NULL) {
+        if (migrateFlags & QEMU_MONITOR_MIGRATE_RESUME)
+            qemuDomainLogAppendMessage(driver, vm, "%s: resuming migration\n", timestamp);
+        else
+            qemuDomainLogAppendMessage(driver, vm, "%s: initiating migration\n", timestamp);
+    }
 
     switch (spec->destType) {
     case MIGRATION_DEST_HOST:
index 41e8db945ce197be78cb706b87ec1aec8a80c5d9..98496b9037c21b056b9c5dc4e755d5640a5258ab 100644 (file)
@@ -870,6 +870,7 @@ typedef enum {
   QEMU_MONITOR_MIGRATE_BACKGROUND       = 1 << 0,
   QEMU_MONITOR_MIGRATE_NON_SHARED_DISK  = 1 << 1, /* migration with non-shared storage with full disk copy */
   QEMU_MONITOR_MIGRATE_NON_SHARED_INC   = 1 << 2, /* migration with non-shared storage with incremental copy */
+  QEMU_MONITOR_MIGRATE_RESUME           = 1 << 3, /* resume failed post-copy migration */
   QEMU_MONITOR_MIGRATION_FLAGS_LAST
 } QEMU_MONITOR_MIGRATE;
 
index 86b7f615c8ebe7375e82f8be0a1002e3978b704f..8b026e8adef19ed460920f3598f048d60ffdf2da 100644 (file)
@@ -3416,10 +3416,12 @@ int qemuMonitorJSONMigrate(qemuMonitor *mon,
     bool detach = !!(flags & QEMU_MONITOR_MIGRATE_BACKGROUND);
     bool blk = !!(flags & QEMU_MONITOR_MIGRATE_NON_SHARED_DISK);
     bool inc = !!(flags & QEMU_MONITOR_MIGRATE_NON_SHARED_INC);
+    bool resume = !!(flags & QEMU_MONITOR_MIGRATE_RESUME);
     g_autoptr(virJSONValue) cmd = qemuMonitorJSONMakeCommand("migrate",
                                                              "b:detach", detach,
                                                              "b:blk", blk,
                                                              "b:inc", inc,
+                                                             "b:resume", resume,
                                                              "s:uri", uri,
                                                              NULL);
     g_autoptr(virJSONValue) reply = NULL;