]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Return real error message for block_set_io_throttle
authorJohn Ferlan <jferlan@redhat.com>
Thu, 6 Oct 2016 18:13:27 +0000 (14:13 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 25 Oct 2016 20:09:24 +0000 (16:09 -0400)
This patch will also adjust the qemuMonitorJSONSetBlockIoThrottle error
procession so that rather than returning/displaying:

    "error: internal error: Unexpected error"

Fetch the actual error message from qemu and display that

src/qemu/qemu_monitor_json.c

index dff6d42cfca033298b42ad569a55bd914bfe9d9e..6802643bfd187d3e261e457c5a6736d22065785f 100644 (file)
@@ -4618,15 +4618,19 @@ int qemuMonitorJSONSetBlockIoThrottle(qemuMonitorPtr mon,
         goto cleanup;
 
     if (virJSONValueObjectHasKey(result, "error")) {
-        if (qemuMonitorJSONHasError(result, "DeviceNotActive"))
+        if (qemuMonitorJSONHasError(result, "DeviceNotActive")) {
             virReportError(VIR_ERR_OPERATION_INVALID,
                            _("No active operation on device: %s"), device);
-        else if (qemuMonitorJSONHasError(result, "NotSupported"))
+        } else if (qemuMonitorJSONHasError(result, "NotSupported")) {
             virReportError(VIR_ERR_OPERATION_INVALID,
                            _("Operation is not supported for device: %s"), device);
-        else
-            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                           _("Unexpected error"));
+        } else {
+            virJSONValuePtr error = virJSONValueObjectGet(result, "error");
+            virReportError(VIR_ERR_INTERNAL_ERROR,
+                           _("unable to execute '%s', unexpected error: '%s'"),
+                           qemuMonitorJSONCommandName(cmd),
+                           qemuMonitorJSONStringifyError(error));
+        }
         goto cleanup;
     }