# HG changeset patch
# User Alastair Tse <atse@xxxxxxxxxxxxx>
# Date 1168533406 0
# Node ID bf605c314a915f2723f43873b1bfc9b23a6a677c
# Parent 2c73e6e647f39814b1f658304792330f79608d61
[XEND] Fix broken block-configure.
Signed-off-by: Alastair Tse <atse@xxxxxxxxxxxxx>
---
tools/python/xen/xend/XendDomainInfo.py | 33 ++++++++++++++++++--------------
tools/python/xen/xend/server/blkif.py | 1
2 files changed, 20 insertions(+), 14 deletions(-)
diff -r 2c73e6e647f3 -r bf605c314a91 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py Thu Jan 11 15:50:28 2007 +0000
+++ b/tools/python/xen/xend/XendDomainInfo.py Thu Jan 11 16:36:46 2007 +0000
@@ -496,7 +496,7 @@ class XendDomainInfo:
self._waitForDevice(dev_type, devid)
return self.getDeviceController(dev_type).sxpr(devid)
- def device_configure(self, dev_config, devid = None):
+ def device_configure(self, dev_sxp, devid = None):
"""Configure an existing device.
@param dev_config: device configuration
@@ -506,19 +506,24 @@ class XendDomainInfo:
@return: Returns True if successfully updated device
@rtype: boolean
"""
- deviceClass = sxp.name(dev_config)
-
- # look up uuid of the device
- dev_control = self.getDeviceController(deviceClass)
- dev_sxpr = dev_control.sxpr(devid)
- dev_uuid = sxp.child_value(dev_sxpr, 'uuid')
- if not dev_uuid:
- return False
-
- self.info.device_update(dev_uuid, dev_config)
- dev_config_dict = self.info['devices'].get(dev_uuid)
- if dev_config_dict:
- dev_control.reconfigureDevice(devid, dev_config_dict[1])
+
+ # convert device sxp to a dict
+ dev_class = sxp.name(dev_sxp)
+ dev_config = {}
+ for opt_val in dev_sxp[1:]:
+ try:
+ dev_config[opt_val[0]] = opt_val[1]
+ except IndexError:
+ pass
+
+ # use DevController.reconfigureDevice to change device config
+ dev_control = self.getDeviceController(dev_class)
+ dev_uuid = dev_control.reconfigureDevice(devid, dev_config)
+
+ # update XendConfig with new device info
+ if dev_uuid:
+ self.info.device_update(dev_uuid, dev_sxp)
+
return True
def waitForDevices(self):
diff -r 2c73e6e647f3 -r bf605c314a91 tools/python/xen/xend/server/blkif.py
--- a/tools/python/xen/xend/server/blkif.py Thu Jan 11 15:50:28 2007 +0000
+++ b/tools/python/xen/xend/server/blkif.py Thu Jan 11 16:36:46 2007 +0000
@@ -101,6 +101,7 @@ class BlkifController(DevController):
self.writeBackend(devid,
'type', new_back['type'],
'params', new_back['params'])
+ return new_back.get('uuid')
else:
raise VmError('Refusing to reconfigure device %s:%d to %s' %
(self.deviceClass, devid, config))
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|