1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-13 08:58:33 +03:00

qemu: Limit usage of qemuMonitorMigrationParams

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@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Jiri Denemark 2018-03-15 11:39:50 +01:00
parent 252bf24376
commit 90807b104e
3 changed files with 31 additions and 15 deletions

View File

@ -13533,8 +13533,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);
@ -13554,27 +13553,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;
}

View File

@ -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:
*

View File

@ -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,