]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_agent: Produce more readable error messages
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 28 Oct 2014 02:41:27 +0000 (03:41 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 28 Oct 2014 19:06:27 +0000 (20:06 +0100)
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 <mprivozn@redhat.com>
src/qemu/qemu_agent.c

index fe38f6df9582063b4b80277fd0114c586b5c1570..9f673bf2c8846c5013d2138c9ccb2178193a933a 100644 (file)
@@ -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);