From 0ac8b70bb370a78ed75c58c3f6c110176563a2fb Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Thu, 6 Oct 2016 14:13:27 -0400 Subject: [PATCH] qemu: Return real error message for block_set_io_throttle 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 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index dff6d42cfc..6802643bfd 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -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; }