details: When changing disk bus, generate new target name

Since we are basically changing
This commit is contained in:
Cole Robinson 2012-01-29 15:32:25 -05:00
parent f2d5ec4977
commit 18f68bb581

View File

@ -581,12 +581,25 @@ class vmmDomain(vmmLibvirtObject):
return self._redefine_device(change, devobj)
def define_disk_bus(self, devobj, newval):
def change(editdev):
if editdev.bus != newval:
# Old <address> probably isn't applicable for new bus value
editdev.address.clear()
# XXX: Need to change target value as well?
diffbus = (editdev.bus != newval)
editdev.bus = newval
if not diffbus:
return
editdev.address.clear()
used = []
disks = (self.get_disk_devices() +
self.get_disk_devices(inactive=True))
for d in disks:
used.append(d.target)
if editdev.target:
used.remove(editdev.target)
editdev.target = None
editdev.generate_target(used)
return self._redefine_device(change, devobj)
def define_disk_serial(self, devobj, val):
def change(editdev):