From e9a24e3e3d480ea155fb93f62b5ed9d1590fcd08 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 9 Aug 2012 15:12:12 +0200 Subject: [PATCH] virterror: Add error message for unsupported operations. This patch introduces a new error code VIR_ERR_OPERATION_UNSUPPORTED to mark error messages regarding operations that failed due to lack of support on the hypervisor or other than libvirt issues. The code is first used in reporting error if qemu does not support block IO tuning variables yielding error message: error: Unable to get block I/O throttle parameters error: Operation not supported: block_io_throttle field 'total_bytes_sec' missing in qemu's output instead of: error: Unable to get block I/O throttle parameters error: internal error cannot read total_bytes_sec --- include/libvirt/virterror.h | 2 ++ src/qemu/qemu_monitor_json.c | 4 ++-- src/util/virterror.c | 6 ++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/libvirt/virterror.h b/include/libvirt/virterror.h index ad8e10169b..913fc5d312 100644 --- a/include/libvirt/virterror.h +++ b/include/libvirt/virterror.h @@ -277,6 +277,8 @@ typedef enum { VIR_ERR_MIGRATE_UNSAFE = 81, /* Migration is not safe */ VIR_ERR_OVERFLOW = 82, /* integer overflow */ VIR_ERR_BLOCK_COPY_ACTIVE = 83, /* action prevented by block copy job */ + VIR_ERR_OPERATION_UNSUPPORTED = 84, /* The requested operation is not + supported */ } virErrorNumber; /** diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 3ede88d67c..7e482d132b 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -3652,11 +3652,11 @@ int qemuMonitorJSONOpenGraphics(qemuMonitorPtr mon, if (virJSONValueObjectGetNumberUlong(inserted, \ FIELD, \ &reply->STORE) < 0) { \ - virReportError(VIR_ERR_INTERNAL_ERROR, \ + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, \ _("block_io_throttle field '%s' missing " \ "in qemu's output"), \ #STORE); \ - goto cleanup; \ + goto cleanup; \ } static int qemuMonitorJSONBlockIoThrottleInfo(virJSONValuePtr result, diff --git a/src/util/virterror.c b/src/util/virterror.c index a40cfe0b38..c438de8457 100644 --- a/src/util/virterror.c +++ b/src/util/virterror.c @@ -1185,6 +1185,12 @@ virErrorMsg(virErrorNumber error, const char *info) else errmsg = _("block copy still active: %s"); break; + case VIR_ERR_OPERATION_UNSUPPORTED: + if (!info) + errmsg = _("Operation not supported"); + else + errmsg = _("Operation not supported: %s"); + break; } return errmsg; }