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:
parent
252bf24376
commit
90807b104e
@ -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;
|
||||
}
|
||||
|
@ -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:
|
||||
*
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user