From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [PATCH] Expand non absolute paths in domain config to xen dir Date: Tue, 03 Oct 2006 15:13:36 -0500 Message-ID: <4522C470.80304@us.ibm.com> References: <20061003195814.GA2119@wavehammer.waldi.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20061003195814.GA2119@wavehammer.waldi.eu.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Bastian Blank Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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. Regards, 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. > > Bastian > > > > ------------------------------------------------------------------------ > > 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): > else: > 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@lists.xensource.com > http://lists.xensource.com/xen-devel