From b4f560435abf211bf72e472a74e8da4756184224 Mon Sep 17 00:00:00 2001 From: Corentin LABBE Date: Tue, 22 Sep 2020 14:05:27 +0200 Subject: SPEC-3597: add a virtual display device via vnc We need to add a virtual display device for testing homescreen. Let's add a vnc to do this. But we need to avoid VNC to open a network port, so we will use an unix socket. For handling the fact that two job could run in parallel, each unix patch need to be unique. We will generate an unique path with gerrit id, branch, and a random int. The vnc is added for all qemu since it seems to not hurt ARM/ARM64. We also add a virtio display device on x86_64 since apps are tested only on x86_64. Change-Id: I22412df75cad16f151f73d0d93b0e38ae386ef4d Bug-AGL: SPEC-3597 Signed-off-by: Corentin LABBE --- templates/boot/generic-qemu-tmpfs.jinja2 | 2 +- templates/machines/qemux86-64.jinja2 | 2 +- utils/agljobtemplate.py | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/templates/boot/generic-qemu-tmpfs.jinja2 b/templates/boot/generic-qemu-tmpfs.jinja2 index b89ac60..ef8273a 100644 --- a/templates/boot/generic-qemu-tmpfs.jinja2 +++ b/templates/boot/generic-qemu-tmpfs.jinja2 @@ -24,7 +24,7 @@ context: {%- if guestfs_interface is defined %} guestfs_interface: {{ guestfs_interface }} {%- endif %} - extra_options: ["{{ qemu_args }}"] + extra_options: ["{{ qemu_args }} -vnc unix:/tmp/vnc-{{ uniqid }}"] {% endblock %} {%- block deploy -%} {{ super() }} diff --git a/templates/machines/qemux86-64.jinja2 b/templates/machines/qemux86-64.jinja2 index 6c9363e..8bea92c 100644 --- a/templates/machines/qemux86-64.jinja2 +++ b/templates/machines/qemux86-64.jinja2 @@ -6,7 +6,7 @@ {%- set sdk_arch = "x86-64" %} {%- set device_mach = "x86" %} {%- set qemu_arch = "x86_64" %} -{%- set qemu_args = "-cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt -smp 2 -m 2048 -soundhw hda -device usb-ehci -device virtio-rng-pci" %} +{%- set qemu_args = "-cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt -smp 2 -m 2048 -soundhw hda -device usb-ehci -device virtio-rng-pci -vga virtio" %} {%- set qemu_cmdline = "console=ttyS0,115200 root=/dev/hda verbose systemd.log_color=false rw fstab=no no_timer_check" %} {%- set rootfs_type = rootfs_type|default("rootvd") %} {%- if (build_type == 'daily') or (build_type == 'release') or (build_type == 'snapshot') or (build_type == 'prerelease') %} diff --git a/utils/agljobtemplate.py b/utils/agljobtemplate.py index 28e06ec..3f4d960 100644 --- a/utils/agljobtemplate.py +++ b/utils/agljobtemplate.py @@ -8,7 +8,7 @@ from urllib.parse import urlparse from urllib.parse import urljoin from urllib.parse import urlsplit import ast - +import random def get_extension(path): return path.split('.')[-1] @@ -107,6 +107,11 @@ class Agljobtemplate(object): job['build_type'] = build_type job['image_type'] = "AGL-%s" % build_type + if patchset != None: + job["uniqid"] = "AGL-%s-%s-%s-%d" % (machine, changeid, patchset, random.randint(1, 999999)) + else: + job["uniqid"] = "AGL-%s-%s-%s-%d" % (machine, branch, version, random.randint(1, 999999)) + defaults, infra = parse_cfg_file(self._template_path, 'default.cfg', build_type) # If the user doesn't specify an URL, use the default one from the build-type -- cgit 1.2.3-korg