]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainBlockStats(Flags): Produce saner error message on empty disk path
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 28 Feb 2014 08:50:01 +0000 (09:50 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 28 Feb 2014 08:50:01 +0000 (09:50 +0100)
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 <mprivozn@redhat.com>
src/qemu/qemu_driver.c
src/test/test_driver.c

index c9a865ebcf7bd06107c7cde9048a965305d86ce9..e04a32841807851fd1386ab8a7fd91672f114dce 100644 (file)
@@ -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;
 
index b724f82b05abbc1007b1fc5ef21c798226c0a828..6806ffdf12250d32de8038b6ca28cba6a95559aa 100644 (file)
@@ -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);