All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][VT][1/15] Fix config file parsing for VMX domains.
@ 2005-08-11 19:24 Arun Sharma
  0 siblings, 0 replies; only message in thread
From: Arun Sharma @ 2005-08-11 19:24 UTC (permalink / raw)
  To: Ian Pratt, Keir Fraser; +Cc: xen-devel

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@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>

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')

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-08-11 19:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-11 19:24 [PATCH][VT][1/15] Fix config file parsing for VMX domains Arun Sharma

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.