From b7fe5a6555a3c23205794b59a6736c6eb7c9464b Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Oct 28 2014 19:06:27 +0000 Subject: qemu_agent: Produce more readable error messages Not every error message from qemu-ga has to have the 'class' field filled out. For instance, I've seen this error message lately: qemuAgentCheckError:1047 : unable to execute QEMU agent command \ {"execute":"guest-set-time"}: \ {"error":{"desc":"Invalid parameter type, expected: integer"}} However, this got translated into rather generic error message: internal error: unable to execute QEMU agent command 'guest-set-time': unknown QEMU command error So we've dropped better error message in favor of a generic one. This is due to our code which expects 'class' which is not present here. Signed-off-by: Michal Privoznik --- diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index fe38f6d..9f673bf 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -1009,14 +1009,12 @@ static const char * qemuAgentStringifyError(virJSONValuePtr error) { const char *klass = virJSONValueObjectGetString(error, "class"); - const char *detail = NULL; + const char *detail = virJSONValueObjectGetString(error, "desc"); /* The QMP 'desc' field is usually sufficient for our generic - * error reporting needs. + * error reporting needs. However, if not present, translate + * the class into something readable. */ - if (klass) - detail = virJSONValueObjectGetString(error, "desc"); - if (!detail) detail = qemuAgentStringifyErrorClass(klass);