mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: simplify getting completed job stats
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
6a2a80c653
commit
c9cd4b4add
@ -12975,12 +12975,17 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver,
|
|||||||
qemuDomainJobInfoPtr jobInfo)
|
qemuDomainJobInfoPtr jobInfo)
|
||||||
{
|
{
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
qemuDomainJobInfoPtr info;
|
|
||||||
bool fetch = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT);
|
bool fetch = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT);
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (completed)
|
if (completed) {
|
||||||
fetch = false;
|
if (priv->job.completed && !priv->job.current)
|
||||||
|
*jobInfo = *priv->job.completed;
|
||||||
|
else
|
||||||
|
jobInfo->status = QEMU_DOMAIN_JOB_STATUS_NONE;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Do not ask QEMU if migration is not even running yet */
|
/* Do not ask QEMU if migration is not even running yet */
|
||||||
if (!priv->job.current || !priv->job.current->stats.status)
|
if (!priv->job.current || !priv->job.current->stats.status)
|
||||||
@ -12997,26 +13002,18 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!completed &&
|
if (!virDomainObjIsActive(vm)) {
|
||||||
!virDomainObjIsActive(vm)) {
|
|
||||||
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
|
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
|
||||||
_("domain is not running"));
|
_("domain is not running"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (completed && priv->job.current)
|
if (!priv->job.current) {
|
||||||
info = NULL;
|
|
||||||
else if (completed)
|
|
||||||
info = priv->job.completed;
|
|
||||||
else
|
|
||||||
info = priv->job.current;
|
|
||||||
|
|
||||||
if (!info) {
|
|
||||||
jobInfo->status = QEMU_DOMAIN_JOB_STATUS_NONE;
|
jobInfo->status = QEMU_DOMAIN_JOB_STATUS_NONE;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
*jobInfo = *info;
|
*jobInfo = *priv->job.current;
|
||||||
|
|
||||||
if (jobInfo->status == QEMU_DOMAIN_JOB_STATUS_ACTIVE ||
|
if (jobInfo->status == QEMU_DOMAIN_JOB_STATUS_ACTIVE ||
|
||||||
jobInfo->status == QEMU_DOMAIN_JOB_STATUS_POSTCOPY) {
|
jobInfo->status == QEMU_DOMAIN_JOB_STATUS_POSTCOPY) {
|
||||||
|
Loading…
Reference in New Issue
Block a user