Mailing List Archive

Fix VMX disk config string parse (allow leading whitespace).
# HG changeset patch
# User kaf24@firebug.cl.cam.ac.uk
# Node ID 5b30599761b3f0b85e6bb1768f0236294881e900
# Parent 121ff5042eb31e03b36b9dc2ddb8d00989ae3742
Fix VMX disk config string parse (allow leading whitespace).

Signed-off-by: Xin Li <xin.b.li@intel.com>

diff -r 121ff5042eb3 -r 5b30599761b3 tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py Sun Jan 1 10:29:17 2006
+++ b/tools/python/xen/xend/image.py Mon Jan 2 10:35:29 2006
@@ -272,44 +272,44 @@
nics = 0
for (name, info) in deviceConfig:
if name == 'vbd':
- uname = sxp.child_value(info, 'uname')
- typedev = sxp.child_value(info, 'dev')
- (_, vbdparam) = string.split(uname, ':', 1)
- if re.match('^ioemu:', typedev):
- (emtype, vbddev) = string.split(typedev, ':', 1)
- else:
- emtype = 'vbd'
- vbddev = typedev
- if emtype != 'ioemu':
- continue;
- vbddev_list = ['hda', 'hdb', 'hdc', 'hdd']
- if vbddev not in vbddev_list:
- raise VmError("vmx: for qemu vbd type=file&dev=hda~hdd")
- ret.append("-%s" % vbddev)
- ret.append("%s" % vbdparam)
+ uname = sxp.child_value(info, 'uname')
+ typedev = sxp.child_value(info, 'dev')
+ (_, vbdparam) = string.split(uname, ':', 1)
+ if 'ioemu:' in typedev:
+ (emtype, vbddev) = string.split(typedev, ':', 1)
+ else:
+ emtype = 'vbd'
+ vbddev = typedev
+ if emtype == 'vbd':
+ continue;
+ vbddev_list = ['hda', 'hdb', 'hdc', 'hdd']
+ if vbddev not in vbddev_list:
+ raise VmError("vmx: for qemu vbd type=file&dev=hda~hdd")
+ ret.append("-%s" % vbddev)
+ ret.append("%s" % vbdparam)
if name == 'vif':
- type = sxp.child_value(info, 'type')
- if type != 'ioemu':
- continue
- nics += 1
- if mac != None:
- continue
- mac = sxp.child_value(info, 'mac')
- bridge = sxp.child_value(info, 'bridge')
- if mac == None:
- mac = randomMAC()
- if bridge == None:
- bridge = 'xenbr0'
- ret.append("-macaddr")
- ret.append("%s" % mac)
- ret.append("-bridge")
- ret.append("%s" % bridge)
+ type = sxp.child_value(info, 'type')
+ if type != 'ioemu':
+ continue
+ nics += 1
+ if mac != None:
+ continue
+ mac = sxp.child_value(info, 'mac')
+ bridge = sxp.child_value(info, 'bridge')
+ if mac == None:
+ mac = randomMAC()
+ if bridge == None:
+ bridge = 'xenbr0'
+ ret.append("-macaddr")
+ ret.append("%s" % mac)
+ ret.append("-bridge")
+ ret.append("%s" % bridge)
if name == 'vtpm':
- instance = sxp.child_value(info, 'pref_instance')
- ret.append("-instance")
- ret.append("%s" % instance)
+ instance = sxp.child_value(info, 'pref_instance')
+ ret.append("-instance")
+ ret.append("%s" % instance)
ret.append("-nics")
- ret.append("%d" % nics)
+ ret.append("%d" % nics)
return ret

def configVNC(self, config):
diff -r 121ff5042eb3 -r 5b30599761b3 tools/python/xen/xend/server/blkif.py
--- a/tools/python/xen/xend/server/blkif.py Sun Jan 1 10:29:17 2006
+++ b/tools/python/xen/xend/server/blkif.py Mon Jan 2 10:35:29 2006
@@ -31,7 +31,7 @@
"""Block device interface controller. Handles all block devices
for a domain.
"""
-
+
def __init__(self, vm):
"""Create a block device controller.
"""
@@ -40,9 +40,9 @@

def getDeviceDetails(self, config):
"""@see DevController.getDeviceDetails"""
-
+
dev = sxp.child_value(config, 'dev')
- if re.match('^ioemu:', dev):
+ if 'ioemu:' in dev:
return (None,{},{})

devid = blkif.blkdev_name_to_number(dev)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog