]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: catch cdrom change error
authorRyan Harper <ryanh@us.ibm.com>
Fri, 9 Apr 2010 13:07:16 +0000 (15:07 +0200)
committerDaniel Veillard <veillard@redhat.com>
Fri, 9 Apr 2010 13:07:16 +0000 (15:07 +0200)
Currently when we attempt to change the cdrom in a qemu VM the monitor
doesn't generate an error if the target filename doesn't exist.  I've
submitted a patch[1] for this.  This patch is the libvirt qemu-driver
side which catches the error message from the monitor and reportes the
error to libvirt.  This means that virsh attach-disk cdrom commands
won't appear to succeed when qemu change command actually failed.

* src/qemu/qemu_monitor_text.c: in qemuMonitorTextChangeMedia() look
  for failure to access the new data

src/qemu/qemu_monitor_text.c

index e057bbea506c7ba0dfed52b653bc0e219107d202..99427682e9502a592bccd8201ffc91826b2727a4 100644 (file)
@@ -907,6 +907,13 @@ int qemuMonitorTextChangeMedia(qemuMonitorPtr mon,
         goto cleanup;
     }
 
+    /* Could not open message indicates bad filename */
+    if (strstr(reply, "\nCould not open ")) {
+        qemuReportError(VIR_ERR_OPERATION_FAILED,
+                        _("could not change media on %s: %s"), devname, reply);
+        goto cleanup;
+    }
+
     ret = 0;
 
 cleanup: