From: Michal Privoznik Date: Fri, 28 Feb 2014 08:50:01 +0000 (+0100) Subject: virDomainBlockStats(Flags): Produce saner error message on empty disk path X-Git-Tag: v1.2.2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1df00e2b221306c2c48693efa73b02fcffbca895;p=thirdparty%2Flibvirt.git virDomainBlockStats(Flags): Produce saner error message on empty disk path As of 0bd2ccdec an empty disk path for virDomainBlockStats (or the one with Flags) is allowed meaning "get me overall summarized statistics". However, running 'virsh domblkstat $dom' throws a misleading error: # ./tools/virsh domblkstat dom error: Failed to get block stats dom error: invalid argument: invalid path: while after this commit # virsh domblkstat dom error: Operation not supported: summary statistics are not supported yet Signed-off-by: Michal Privoznik --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c9a865ebcf..e04a328418 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -9434,6 +9434,12 @@ qemuDomainBlockStats(virDomainPtr dom, virDomainDiskDefPtr disk = NULL; qemuDomainObjPrivatePtr priv; + if (!*path) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", + _("summary statistics are not supported yet")); + return ret; + } + if (!(vm = qemuDomObjFromDomain(dom))) goto cleanup; @@ -9507,6 +9513,12 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); + if (!*path) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", + _("summary statistics are not supported yet")); + return ret; + } + /* We don't return strings, and thus trivially support this flag. */ flags &= ~VIR_TYPED_PARAM_STRING_OKAY; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index b724f82b05..6806ffdf12 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3362,6 +3362,12 @@ static int testDomainBlockStats(virDomainPtr domain, unsigned long long statbase; int ret = -1; + if (!*path) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", + _("summary statistics are not supported yet")); + return ret; + } + testDriverLock(privconn); privdom = virDomainObjListFindByName(privconn->domains, domain->name);