[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [PATCH] Expand non absolute paths in domain config to xen dir

Bastian Blank wrote:
Hi folks

The attached patch changes the behaviour of xm create to expand the
values of kernel, ramdisk and device_model with the correct path within
the xen dir if relative, like /usr/lib/xen/boot and /usr/lib/xen/bin.

The old behaviour was unreliable as it used the working dir.

Why does this make it unreliable? I suspect you'll break many existing configs with this patch.

I rely on the current CWD expansion to specify kernel/disk paths.


Anthony Liguori

This change makes it possible to use only relative paths for supplied
parts like hvmloader and qemu-dm and don't rely on a known location.



diff -r 38f9bd7a4ce6 tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py     Tue Oct 03 11:39:22 2006 +0100
+++ b/tools/python/xen/xm/create.py     Tue Oct 03 19:45:29 2006 +0000
@@ -460,6 +460,14 @@ def strip(pre, s):
         return s
+def abspath(file, dir):
+    if file[0] == '/':
+        return file
+    import xen.util.auxbin
+    path = xen.util.auxbin.libpath()
+    return os.path.join(path, dir, file)
 def configure_image(vals):
     """Create the image config.
@@ -467,9 +475,9 @@ def configure_image(vals):
         return None
     config_image = [ vals.builder ]
     if vals.kernel:
-        config_image.append([ 'kernel', os.path.abspath(vals.kernel) ])
+        config_image.append([ 'kernel', abspath(vals.kernel, 'boot') ])
     if vals.ramdisk:
-        config_image.append([ 'ramdisk', os.path.abspath(vals.ramdisk) ])
+        config_image.append([ 'ramdisk', abspath(vals.ramdisk, 'boot') ])
     if vals.cmdline_ip:
         cmdline_ip = strip('ip=', vals.cmdline_ip)
         config_image.append(['ip', cmdline_ip])
@@ -631,13 +639,15 @@ def configure_hvm(config_image, vals):
 def configure_hvm(config_image, vals):
     """Create the config for HVM devices.
-    args = [ 'device_model', 'pae', 'vcpus', 'boot', 'fda', 'fdb',
+    args = [ 'pae', 'vcpus', 'boot', 'fda', 'fdb',
              'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'soundhw',
              'vnc', 'vncdisplay', 'vncunused', 'vncconsole', 'sdl', 'display',
              'acpi', 'apic', 'xauthority', 'usb', 'usbdevice' ]
     for a in args:
         if (vals.__dict__[a]):
             config_image.append([a, vals.__dict__[a]])
+    if vals.device_model:
+        config_image.append([ 'device_model', abspath(vals.device_model, 
'bin') ])
def run_bootloader(vals, config_image):
     if not os.access(vals.bootloader, os.X_OK):


Xen-devel mailing list

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.