From 1df00e2b221306c2c48693efa73b02fcffbca895 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Fri, 28 Feb 2014 09:50:01 +0100 Subject: [PATCH] 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 --- src/qemu/qemu_driver.c | 12 ++++++++++++ src/test/test_driver.c | 6 ++++++ 2 files changed, 18 insertions(+) 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); -- 2.47.2