mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-14 01:13:38 -06:00
Don't mangle QEMU driver name on cdrom connect (bz 516116)
This commit is contained in:
parent
ee9a316652
commit
ddee626eee
@ -1291,19 +1291,28 @@ class vmmDomain(gobject.GObject):
|
||||
xml = self.get_device_xml("disk", dev_id_info)
|
||||
|
||||
def cdrom_xml_connect(doc, ctx):
|
||||
disk_fragment = ctx.xpathEval("/disk")
|
||||
disk_fragment = ctx.xpathEval("/disk")[0]
|
||||
driver_fragment = ctx.xpathEval("/disk/driver")
|
||||
disk_fragment[0].setProp("type", _type)
|
||||
elem = disk_fragment[0].newChild(None, "source", None)
|
||||
disk_fragment.setProp("type", _type)
|
||||
elem = disk_fragment.newChild(None, "source", None)
|
||||
|
||||
if _type == "file":
|
||||
elem.setProp("file", source)
|
||||
if driver_fragment:
|
||||
driver_fragment[0].setProp("name", _type)
|
||||
driver_name = _type
|
||||
else:
|
||||
elem.setProp("dev", source)
|
||||
if driver_fragment:
|
||||
driver_fragment[0].setProp("name", "phy")
|
||||
return disk_fragment[0].serialize()
|
||||
driver_name = "phy"
|
||||
|
||||
if driver_fragment:
|
||||
driver_fragment = driver_fragment[0]
|
||||
orig_name = driver_fragment.prop("name")
|
||||
|
||||
# For Xen, the driver name is dependent on the storage type
|
||||
# (file or phys).
|
||||
if orig_name and orig_name in [ "file", "phy" ]:
|
||||
driver_fragment.setProp("name", driver_name)
|
||||
|
||||
return disk_fragment.serialize()
|
||||
|
||||
result = util.xml_parse_wrapper(xml, cdrom_xml_connect)
|
||||
logging.debug("connect_cdrom produced: %s" % result)
|
||||
@ -1313,17 +1322,19 @@ class vmmDomain(gobject.GObject):
|
||||
xml = self.get_device_xml("disk", dev_id_info)
|
||||
|
||||
def cdrom_xml_disconnect(doc, ctx):
|
||||
disk_fragment = ctx.xpathEval("/disk")
|
||||
disk_fragment = ctx.xpathEval("/disk")[0]
|
||||
sourcenode = None
|
||||
for child in disk_fragment[0].children:
|
||||
|
||||
for child in disk_fragment.children:
|
||||
if child.name == "source":
|
||||
sourcenode = child
|
||||
break
|
||||
else:
|
||||
continue
|
||||
|
||||
sourcenode.unlinkNode()
|
||||
sourcenode.freeNode()
|
||||
return disk_fragment[0].serialize()
|
||||
return disk_fragment.serialize()
|
||||
|
||||
result = util.xml_parse_wrapper(xml, cdrom_xml_disconnect)
|
||||
logging.debug("eject_cdrom produced: %s" % result)
|
||||
|
Loading…
Reference in New Issue
Block a user