[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH][VT][1/15] Fix config file parsing for VMX domains.
Fix config file parsing for VMX domains. If we define "vif" in the config file, image.py will raise error "vmx: missing vbd configuration". The reason is "vif" is dealt with as a "vbd" device. This patch fixes this issue by dealing with "vbd" and "vif " separately, removing "macaddr" arg and parsing mac address from "vif" instead. Also, the vbd doesn't have to be a file anymore, but can be a physical disk partition. Signed-off-by: Yunfeng Zhao <yunfeng.zhao@xxxxxxxxx> Signed-off-by: Arun Sharma <arun.sharma@xxxxxxxxx> diff -r 38c7c25b3cb9 -r 6a87d79f9ee0 tools/examples/xmexample.vmx --- a/tools/examples/xmexample.vmx Tue Aug 9 13:53:15 2005 +++ b/tools/examples/xmexample.vmx Tue Aug 9 19:06:44 2005 @@ -132,8 +132,3 @@ #----------------------------------------------------------------------------- # start in full screen #full-screen=1 - -#----------------------------------------------------------------------------- -# set the mac address of the first interface -#macaddr= - diff -r 38c7c25b3cb9 -r 6a87d79f9ee0 tools/python/xen/xend/image.py --- a/tools/python/xen/xend/image.py Tue Aug 9 13:53:15 2005 +++ b/tools/python/xen/xend/image.py Tue Aug 9 19:06:44 2005 @@ -295,7 +295,7 @@ # xm config file def parseDeviceModelArgs(self): dmargs = [ 'cdrom', 'boot', 'fda', 'fdb', - 'localtime', 'serial', 'macaddr', 'stdvga', 'isa' ] + 'localtime', 'serial', 'stdvga', 'isa' ] ret = [] for a in dmargs: v = sxp.child_value(self.vm.config, a) @@ -312,20 +312,25 @@ ret.append("-%s" % a) ret.append("%s" % v) - # Handle hd img related options + # Handle disk/network related options devices = sxp.children(self.vm.config, 'device') for device in devices: - vbdinfo = sxp.child(device, 'vbd') - if not vbdinfo: - raise VmError("vmx: missing vbd configuration") - uname = sxp.child_value(vbdinfo, 'uname') - vbddev = sxp.child_value(vbdinfo, 'dev') - (vbdtype, vbdparam) = string.split(uname, ':', 1) - vbddev_list = ['hda', 'hdb', 'hdc', 'hdd'] - if vbdtype != 'file' or vbddev not in vbddev_list: - raise VmError("vmx: for qemu vbd type=file&dev=hda~hdd") - ret.append("-%s" % vbddev) - ret.append("%s" % vbdparam) + name = sxp.name(sxp.child0(device)) + if name == 'vbd': + vbdinfo = sxp.child(device, 'vbd') + uname = sxp.child_value(vbdinfo, 'uname') + vbddev = sxp.child_value(vbdinfo, 'dev') + (vbdtype, vbdparam) = string.split(uname, ':', 1) + 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': + vifinfo = sxp.child(device, 'vif') + mac = sxp.child_value(vifinfo, 'mac') + ret.append("-macaddr") + ret.append("%s" % mac) # Handle graphics library related options vnc = sxp.child_value(self.vm.config, 'vnc') _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |