[elbe-devel] [PATCH] libvirt.xml: Workaround for buggy qemu machine type in vmware/stretch

Torben Hohn torben.hohn at linutronix.de
Mon Nov 26 10:56:41 CET 2018


On Fri, Nov 23, 2018 at 05:42:25PM +0100, Andreas Messerschmid wrote:
> Add a heuristic to set a working qemu machine type when generating
> libvirt.xml on initvm creation when running on a VMware setup
> with Debian Stretch.

Please dont execute child processes in a mako template.
Error handling in a mako template is sort of limited.

Please move the detection code into
elbepack/commands/init.py and then pass the
machine_type into the mako template using "d"

> 
> Solves https://github.com/Linutronix/elbe/issues/183
> 
> Signed-off-by: Andreas Messerschmid <andreas at linutronix.de>
> ---
>  elbepack/init/libvirt.xml.mako | 18 +++++++++++++++++-
>  1 file changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/elbepack/init/libvirt.xml.mako b/elbepack/init/libvirt.xml.mako
> index c2b3d077..02ad4d40 100644
> --- a/elbepack/init/libvirt.xml.mako
> +++ b/elbepack/init/libvirt.xml.mako
> @@ -14,6 +14,7 @@ import uuid
>  import multiprocessing
>  import os
>  from elbepack.filesystem import size_to_int
> +import subprocess
>  
>  # Generate UUID
>  uid = uuid.uuid4()
> @@ -27,6 +28,21 @@ img = os.path.join(opt.directory, 'buildenv.img')
>  
>  emulator = prj.text('interpreter', default=defs, key='interpreter')
>  
> +# this is a workaround for
> +# http://lists.linutronix.de/pipermail/elbe-devel/2017-July/000541.html
> +virt = subprocess.Popen('test -x /usr/bin/systemd-detect-virt && /usr/bin/systemd-detect-virt',
> +                        shell=True,
> +                        stdin=subprocess.PIPE,
> +                        stdout=subprocess.PIPE).communicate()[0];
> +dist = subprocess.Popen('lsb_release -cs',
> +                        shell=True,
> +                        stdin=subprocess.PIPE,
> +                        stdout=subprocess.PIPE).communicate()[0];
> +
> +if 'vmware' in virt and 'stretch' in dist:
> +    machine_type = 'pc-i440fx-2.6'
> +else:
> +    machine_type = 'pc'
>  %><domain type='kvm'
>  xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
>  <name>${name}</name>
> @@ -35,7 +51,7 @@ xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
>    <currentMemory unit='KiB'>${memory}</currentMemory>
>    <vcpu placement='static'>${cpus}</vcpu>
>    <os>
> -    <type arch='x86_64' machine='pc'>hvm</type>
> +    <type arch='x86_64' machine='${machine_type}'>hvm</type>
>    </os>
>    <features>
>      <acpi />
> -- 
> 2.11.0
> 
> 
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel

-- 
Torben Hohn
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen
Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99

Hinweise zum Datenschutz finden Sie hier (Informations on data privacy 
can be found here): https://linutronix.de/kontakt/Datenschutz.php

Linutronix GmbH | Firmensitz (Registered Office): Uhldingen-Mühlhofen | 
Registergericht (Registration Court): Amtsgericht Freiburg i.Br., HRB700 
806 | Geschäftsführer (Managing Directors): Heinz Egger, Thomas Gleixner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.linutronix.de/pipermail/elbe-devel/attachments/20181126/c6ac8168/attachment.sig>


More information about the elbe-devel mailing list