Use this internal structure only in qemu_migration_params.c and change
other non-test users to use the high level qemuMigrationParams struct.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_driver.c | 26 +++++++++++---------------
src/qemu/qemu_migration_params.c | 16 ++++++++++++++++
src/qemu/qemu_migration_params.h | 4 ++++
3 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 8e880280ec..761f84ee7f 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -13555,8 +13555,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom,
{
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
- qemuDomainObjPrivatePtr priv;
- qemuMonitorMigrationParams migparams = { 0 };
+ qemuMigrationParamsPtr migParams = NULL;
int ret = -1;
virCheckFlags(0, -1);
@@ -13576,27 +13575,24 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom,
goto endjob;
}
- priv = vm->privateData;
- qemuDomainObjEnterMonitor(driver, vm);
+ if (qemuMigrationParamsFetch(driver, vm, QEMU_ASYNC_JOB_NONE,
+ &migParams) < 0)
+ goto endjob;
- if (qemuMonitorGetMigrationParams(priv->mon, &migparams) == 0) {
- if (migparams.downtimeLimit_set) {
- *downtime = migparams.downtimeLimit;
- ret = 0;
- } else {
- virReportError(VIR_ERR_OPERATION_INVALID, "%s",
- _("Querying migration downtime is not supported by
"
- "QEMU binary"));
- }
+ if (qemuMigrationParamsGetDowntimeLimit(migParams, downtime) == 1) {
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+ _("Querying migration downtime is not supported by "
+ "QEMU binary"));
+ goto endjob;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
- ret = -1;
+ ret = 0;
endjob:
qemuDomainObjEndJob(driver, vm);
cleanup:
+ qemuMigrationParamsFree(migParams);
virDomainObjEndAPI(&vm);
return ret;
}
diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c
index 94de0458f5..cadb402b0f 100644
--- a/src/qemu/qemu_migration_params.c
+++ b/src/qemu/qemu_migration_params.c
@@ -553,6 +553,22 @@ qemuMigrationParamsFetch(virQEMUDriverPtr driver,
}
+/**
+ * Returns 0 on success,
+ * 1 if the parameter is not supported by QEMU.
+ */
+int
+qemuMigrationParamsGetDowntimeLimit(qemuMigrationParamsPtr migParams,
+ unsigned long long *value)
+{
+ if (!migParams->params.downtimeLimit_set)
+ return 1;
+
+ *value = migParams->params.downtimeLimit;
+ return 0;
+}
+
+
/**
* qemuMigrationParamsCheck:
*
diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_params.h
index 0a30dcd623..cc9a14601b 100644
--- a/src/qemu/qemu_migration_params.h
+++ b/src/qemu/qemu_migration_params.h
@@ -79,6 +79,10 @@ qemuMigrationParamsFetch(virQEMUDriverPtr driver,
int asyncJob,
qemuMigrationParamsPtr *migParams);
+int
+qemuMigrationParamsGetDowntimeLimit(qemuMigrationParamsPtr migParams,
+ unsigned long long *value);
+
int
qemuMigrationParamsCheck(virQEMUDriverPtr driver,
virDomainObjPtr vm,
--
2.17.0