]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: fix change-media bug on disk block type
authorGuannan Ren <gren@redhat.com>
Mon, 22 Jul 2013 07:38:43 +0000 (15:38 +0800)
committerCole Robinson <crobinso@redhat.com>
Fri, 20 Sep 2013 19:54:53 +0000 (15:54 -0400)
Resolves:https://bugzilla.redhat.com/show_bug.cgi?id=923053
When cdrom is block type, the virsh change-media failed to insert
source info because virsh uses "<source block='/dev/sdb'/>" while
the correct name of the attribute for block disks is "dev".

(cherry picked from commit 7729a16814d5bf3aebd248c9af00296ae2773818)

tools/virsh-domain.c

index bf25ee8f4cefb10f717657ce3e20f2b777b48b3c..5d9489ce21aee924ea665b7b9073fc04caa6030a 100644 (file)
@@ -9631,8 +9631,10 @@ vshPrepareDiskXML(xmlNodePtr disk_node,
 
             if (source) {
                 new_node = xmlNewNode(NULL, BAD_CAST "source");
-                xmlNewProp(new_node, (const xmlChar *)disk_type,
-                           (const xmlChar *)source);
+                if (STREQ(disk_type, "block"))
+                    xmlNewProp(new_node, BAD_CAST "dev", BAD_CAST source);
+                else
+                    xmlNewProp(new_node, BAD_CAST disk_type, BAD_CAST source);
                 xmlAddChild(disk_node, new_node);
             } else if (type == VSH_PREPARE_DISK_XML_INSERT) {
                 vshError(NULL, _("No source is specified for inserting media"));