mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-07 04:07:17 +00:00
qemu: Introduce qemuDomainGetJobInfoMigrationStats
Extract out the parts of qemuDomainGetJobStatsInternal that get the migration stats. We're about to add the ability to get just dump information. Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
9c27e464e3
commit
3f99bb06d1
@ -13155,6 +13155,37 @@ qemuConnectBaselineCPU(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
qemuDomainGetJobInfoMigrationStats(virQEMUDriverPtr driver,
|
||||||
|
virDomainObjPtr vm,
|
||||||
|
qemuDomainJobInfoPtr jobInfo)
|
||||||
|
{
|
||||||
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
|
bool events = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT);
|
||||||
|
|
||||||
|
if (jobInfo->status == QEMU_DOMAIN_JOB_STATUS_ACTIVE ||
|
||||||
|
jobInfo->status == QEMU_DOMAIN_JOB_STATUS_MIGRATING ||
|
||||||
|
jobInfo->status == QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED ||
|
||||||
|
jobInfo->status == QEMU_DOMAIN_JOB_STATUS_POSTCOPY) {
|
||||||
|
if (events &&
|
||||||
|
jobInfo->status != QEMU_DOMAIN_JOB_STATUS_ACTIVE &&
|
||||||
|
qemuMigrationFetchStats(driver, vm, QEMU_ASYNC_JOB_NONE,
|
||||||
|
jobInfo, NULL) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (jobInfo->status == QEMU_DOMAIN_JOB_STATUS_ACTIVE &&
|
||||||
|
qemuMigrationFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_NONE,
|
||||||
|
jobInfo) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (qemuDomainJobInfoUpdateTime(jobInfo) < 0)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver,
|
qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver,
|
||||||
virDomainObjPtr vm,
|
virDomainObjPtr vm,
|
||||||
@ -13162,7 +13193,6 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver,
|
|||||||
qemuDomainJobInfoPtr jobInfo)
|
qemuDomainJobInfoPtr jobInfo)
|
||||||
{
|
{
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
bool events = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT);
|
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (completed) {
|
if (completed) {
|
||||||
@ -13197,24 +13227,8 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
*jobInfo = *priv->job.current;
|
*jobInfo = *priv->job.current;
|
||||||
|
|
||||||
if (jobInfo->status == QEMU_DOMAIN_JOB_STATUS_ACTIVE ||
|
if (qemuDomainGetJobInfoMigrationStats(driver, vm, jobInfo) < 0)
|
||||||
jobInfo->status == QEMU_DOMAIN_JOB_STATUS_MIGRATING ||
|
goto cleanup;
|
||||||
jobInfo->status == QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED ||
|
|
||||||
jobInfo->status == QEMU_DOMAIN_JOB_STATUS_POSTCOPY) {
|
|
||||||
if (events &&
|
|
||||||
jobInfo->status != QEMU_DOMAIN_JOB_STATUS_ACTIVE &&
|
|
||||||
qemuMigrationFetchStats(driver, vm, QEMU_ASYNC_JOB_NONE,
|
|
||||||
jobInfo, NULL) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (jobInfo->status == QEMU_DOMAIN_JOB_STATUS_ACTIVE &&
|
|
||||||
qemuMigrationFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_NONE,
|
|
||||||
jobInfo) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (qemuDomainJobInfoUpdateTime(jobInfo) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user