Skip to content

Commit 65de5f6

Browse files
author
Jiri Denemark
committed
qemu: Avoid deprecated migrate_set_downtime QMP command
The same functionality can be achieved using migrate-set-parameters QMP command with downtime-limit parameter. https://bugzilla.redhat.com/show_bug.cgi?id=1829543 Signed-off-by: Jiri Denemark <[email protected]> Reviewed-by: Peter Krempa <[email protected]>
1 parent 92b8dbc commit 65de5f6

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

src/qemu/qemu_driver.c

+23-4
Original file line numberDiff line numberDiff line change
@@ -13857,7 +13857,9 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom,
1385713857
virQEMUDriverPtr driver = dom->conn->privateData;
1385813858
virDomainObjPtr vm;
1385913859
qemuDomainObjPrivatePtr priv;
13860+
g_autoptr(qemuMigrationParams) migParams = NULL;
1386013861
int ret = -1;
13862+
int rc;
1386113863

1386213864
virCheckFlags(0, -1);
1386313865

@@ -13876,10 +13878,27 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom,
1387613878
priv = vm->privateData;
1387713879

1387813880
VIR_DEBUG("Setting migration downtime to %llums", downtime);
13879-
qemuDomainObjEnterMonitor(driver, vm);
13880-
ret = qemuMonitorSetMigrationDowntime(priv->mon, downtime);
13881-
if (qemuDomainObjExitMonitor(driver, vm) < 0)
13882-
ret = -1;
13881+
13882+
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_DOWNTIME)) {
13883+
if (!(migParams = qemuMigrationParamsNew()))
13884+
goto endjob;
13885+
13886+
if (qemuMigrationParamsSetULL(migParams,
13887+
QEMU_MIGRATION_PARAM_DOWNTIME_LIMIT,
13888+
downtime) < 0)
13889+
goto endjob;
13890+
13891+
if (qemuMigrationParamsApply(driver, vm, QEMU_ASYNC_JOB_NONE,
13892+
migParams) < 0)
13893+
goto endjob;
13894+
} else {
13895+
qemuDomainObjEnterMonitor(driver, vm);
13896+
rc = qemuMonitorSetMigrationDowntime(priv->mon, downtime);
13897+
if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
13898+
goto endjob;
13899+
}
13900+
13901+
ret = 0;
1388313902

1388413903
endjob:
1388513904
qemuDomainObjEndJob(driver, vm);

tests/qemumonitorjsontest.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3221,7 +3221,7 @@ mymain(void)
32213221
DO_TEST_GEN(qemuMonitorJSONSaveVirtualMemory);
32223222
DO_TEST_GEN(qemuMonitorJSONSavePhysicalMemory);
32233223
DO_TEST_GEN_DEPRECATED(qemuMonitorJSONSetMigrationSpeed, true);
3224-
DO_TEST_GEN_DEPRECATED(qemuMonitorJSONSetMigrationDowntime, false);
3224+
DO_TEST_GEN_DEPRECATED(qemuMonitorJSONSetMigrationDowntime, true);
32253225
DO_TEST_GEN(qemuMonitorJSONMigrate);
32263226
DO_TEST_GEN(qemuMonitorJSONDump);
32273227
DO_TEST_GEN(qemuMonitorJSONGraphicsRelocate);

0 commit comments

Comments
 (0)