On Fri, Feb 02, 2018 at 17:40:09 -0500, John Ferlan wrote:
Convert the stats field in _qemuDomainJobInfo to be a union. This
will allow for the collection of various different types of stats
in the same field.
When starting the async job that will end up being used for stats,
set the @statsType value appropriately. The @mirrorStats are
special and are used with stats.mig in order to generate the
returned job stats for a migration.
Using the NONE should avoid the possibility that some random
async job would try to return stats for migration even though
a migration is not in progress.
For now a migration and a save job will use the same statsType
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
...
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 9789688e1..01d9bf1f6 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
...
@@ -13227,10 +13231,16 @@
qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver,
}
*jobInfo = *priv->job.current;
- if (qemuDomainGetJobInfoMigrationStats(driver, vm, jobInfo) < 0)
- goto cleanup;
+ switch (jobInfo->statsType) {
+ case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION:
+ if (qemuDomainGetJobInfoMigrationStats(driver, vm, jobInfo) < 0)
+ goto cleanup;
+ ret = 0;
Hmm, I think this ret = 0 should be moved...
+ break;
- ret = 0;
+ case QEMU_DOMAIN_JOB_STATS_TYPE_NONE:
+ break;
+ }
...here. Otherwise getting job stats for a job which cannot provide any
statistics would report an unknown error instead of at least reporting
the type of a job and for how long it's been running.
With this small fix:
Reviewed-by: Jiri Denemark <jdenemar(a)redhat.com>