mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: Introduce qemuMigrationParamsFetch
Let's separate the code which queries QEMU for migration parameters from qemuMigrationParamsCheck into a dedicated function. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
8a83181c90
commit
252bf24376
@ -520,6 +520,39 @@ qemuMigrationParamsResetTLS(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
qemuMigrationParamsFetch(virQEMUDriverPtr driver,
|
||||||
|
virDomainObjPtr vm,
|
||||||
|
int asyncJob,
|
||||||
|
qemuMigrationParamsPtr *migParams)
|
||||||
|
{
|
||||||
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
|
qemuMigrationParamsPtr params = NULL;
|
||||||
|
int ret = -1;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
*migParams = NULL;
|
||||||
|
|
||||||
|
if (!(params = qemuMigrationParamsNew()))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
rc = qemuMonitorGetMigrationParams(priv->mon, ¶ms->params);
|
||||||
|
|
||||||
|
if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
VIR_STEAL_PTR(*migParams, params);
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
qemuMigrationParamsFree(params);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qemuMigrationParamsCheck:
|
* qemuMigrationParamsCheck:
|
||||||
*
|
*
|
||||||
@ -535,11 +568,9 @@ qemuMigrationParamsCheck(virQEMUDriverPtr driver,
|
|||||||
qemuMigrationParamsPtr migParams)
|
qemuMigrationParamsPtr migParams)
|
||||||
{
|
{
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
qemuMigrationParamsPtr origParams = NULL;
|
|
||||||
qemuMonitorMigrationCaps cap;
|
qemuMonitorMigrationCaps cap;
|
||||||
qemuMigrationParty party;
|
qemuMigrationParty party;
|
||||||
size_t i;
|
size_t i;
|
||||||
int ret = -1;
|
|
||||||
|
|
||||||
if (asyncJob == QEMU_ASYNC_JOB_MIGRATION_OUT)
|
if (asyncJob == QEMU_ASYNC_JOB_MIGRATION_OUT)
|
||||||
party = QEMU_MIGRATION_SOURCE;
|
party = QEMU_MIGRATION_SOURCE;
|
||||||
@ -570,31 +601,12 @@ qemuMigrationParamsCheck(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (!(origParams = qemuMigrationParamsNew()))
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We want to disable all migration capabilities after migration, no need
|
* We want to disable all migration capabilities after migration, no need
|
||||||
* to ask QEMU for their current settings.
|
* to ask QEMU for their current settings.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (qemuMonitorGetMigrationParams(priv->mon, &origParams->params) < 0)
|
return qemuMigrationParamsFetch(driver, vm, asyncJob, &priv->job.migParams);
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
ret = 0;
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
|
||||||
ret = -1;
|
|
||||||
|
|
||||||
if (ret == 0)
|
|
||||||
VIR_STEAL_PTR(priv->job.migParams, origParams);
|
|
||||||
qemuMigrationParamsFree(origParams);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,6 +73,12 @@ int
|
|||||||
qemuMigrationParamsDisableTLS(virDomainObjPtr vm,
|
qemuMigrationParamsDisableTLS(virDomainObjPtr vm,
|
||||||
qemuMigrationParamsPtr migParams);
|
qemuMigrationParamsPtr migParams);
|
||||||
|
|
||||||
|
int
|
||||||
|
qemuMigrationParamsFetch(virQEMUDriverPtr driver,
|
||||||
|
virDomainObjPtr vm,
|
||||||
|
int asyncJob,
|
||||||
|
qemuMigrationParamsPtr *migParams);
|
||||||
|
|
||||||
int
|
int
|
||||||
qemuMigrationParamsCheck(virQEMUDriverPtr driver,
|
qemuMigrationParamsCheck(virQEMUDriverPtr driver,
|
||||||
virDomainObjPtr vm,
|
virDomainObjPtr vm,
|
||||||
|
Loading…
Reference in New Issue
Block a user