Project

General

Profile

Actions

action #87695

open

coordination #58184: [saga][epic][use case] full version control awareness within openQA

coordination #48641: [epic] Trigger openQA tests in pull requests of any product github pull request

Full openQA test development, maintenance and administration from browser without the need of a local terminal size:M

Added by okurz over 3 years ago. Updated 2 days ago.

Status:
In Progress
Priority:
Low
Assignee:
Category:
Feature requests
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

Motivation

To allow easier workflows for web centric users, e.g. using https://github.com/features/codespaces , we should offer possibilities to interact with openQA without needing a local terminal with openqa cli tools, maybe using curl only.

Acceptance criteria

  • AC1: openQA jobs can be triggered from remote web-based IDEs (or just terminals)

Suggestions

Further details

Related to #86063


Related issues 2 (2 open0 closed)

Related to openQA Project - coordination #154768: [saga][ux] State-of-art user experience for openQANew2023-05-26

Actions
Copied from openQA Project - action #86063: [epic] Add possibility to trigger openQA API calls, e.g. single "jobs", without the need of the client / over the webUI / with curlBlockedokurz2021-01-13

Actions
Actions #1

Updated by okurz over 3 years ago

  • Copied from action #86063: [epic] Add possibility to trigger openQA API calls, e.g. single "jobs", without the need of the client / over the webUI / with curl added
Actions #2

Updated by okurz about 1 year ago

  • Target version changed from future to Ready
Actions #3

Updated by okurz about 1 year ago

  • Subject changed from [epic] full openQA test development, maintenance and administration from browser without the need of a local terminal to Full openQA test development, maintenance and administration from browser without the need of a local terminal
  • Description updated (diff)
Actions #4

Updated by okurz about 1 year ago

  • Description updated (diff)
Actions #5

Updated by okurz about 1 year ago

  • Subject changed from Full openQA test development, maintenance and administration from browser without the need of a local terminal to Full openQA test development, maintenance and administration from browser without the need of a local terminal size:M
  • Description updated (diff)
  • Status changed from New to Workable
Actions #7

Updated by okurz 10 months ago

  • Target version changed from Ready to future
Actions #8

Updated by szarate 4 months ago

Actions #9

Updated by okurz 27 days ago

  • Description updated (diff)
  • Target version changed from future to Ready
Actions #10

Updated by tinita 4 days ago

  • Status changed from Workable to In Progress
  • Assignee set to tinita
Actions #11

Updated by okurz 3 days ago

  • Description updated (diff)
Actions #12

Updated by tinita 3 days ago

I was able to build from this Dockerfile and run it in codespace:

FROM docker.io/opensuse/leap:15.6

RUN zypper in -y git bash

RUN zypper in -y openQA-single-instance openQA-bootstrap \
    qemu-arm qemu-ppc qemu-x86 qemu-tools sudo iputils os-autoinst-distri-opensuse-deps && \
    zypper clean -a

Branch: https://github.com/perlpunk/openQA/tree/codespace

I started openqa-bootstrap and had a working webui on https://some-name-80.app.github.dev.

I cloned this test: https://openqa.opensuse.org/tests/4191283
However the test died:

[2024-05-15T21:55:44.230858Z] [info] [pid:6527] ::: backend::baseclass::die_handler: Backend process died, backend errors are reported below in the following lines:
  QEMU terminated before QMP connection could be established. Check for errors below
[2024-05-15T21:55:44.231141Z] [info] [pid:6527] ::: OpenQA::Qemu::Proc::save_state: Saving QEMU state to qemu_state.json
[2024-05-15T21:55:44.234059Z] [debug] [pid:6527] Passing remaining frames to the video encoder
[2024-05-15T21:55:44.334945Z] [debug] [pid:6527] Waiting for video encoder to finalize the video
[2024-05-15T21:55:44.335038Z] [debug] [pid:6527] The built-in video encoder (pid 6530) terminated
[2024-05-15T21:55:44.335922Z] [debug] [pid:6527] QEMU: QEMU emulator version 8.2.2 (SUSE Linux Enterprise 15)
[2024-05-15T21:55:44.335985Z] [debug] [pid:6527] QEMU: Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers
[2024-05-15T21:55:44.336058Z] [warn] [pid:6527] !!! : qemu-system-x86_64: CPU model 'host' requires KVM or HVF
[2024-05-15T21:55:44.336762Z] [debug] [pid:6527] sending magic and exit
[2024-05-15T21:55:44.337059Z] [debug] [pid:6294] received magic close
[2024-05-15T21:55:44.441401Z] [warn] [pid:6294] !!! main: failed to start VM at /usr/lib/os-autoinst/backend/driver.pm line 104.

[2024-05-15T21:55:44.441738Z] [debug] [pid:6294] stopping command server 6516 because test execution ended through exception

I also cloned a different test using a Python test module and it complained that Inline::Python is not installed.

Actions #13

Updated by tinita 3 days ago

Adding "runArgs": [ "--privileged", "--device", "/dev/kvm" ] in devcontainer.json did not help

Actions #14

Updated by tinita 3 days ago

I added QEMU_APPEND="-enable-kvm" to openqa-clone-job. Now I get:

[2024-05-16T08:45:29.471397Z] [debug] [pid:6331] QEMU: Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers
[2024-05-16T08:45:29.471444Z] [debug] [pid:6331] QEMU: Could not access KVM kernel module: Permission denied
[2024-05-16T08:45:29.471548Z] [warn] [pid:6331] !!! : qemu-system-x86_64: failed to initialize kvm: Permission denied
[2024-05-16T08:45:29.472298Z] [debug] [pid:6331] sending magic and exit
[2024-05-16T08:45:29.472581Z] [debug] [pid:6098] received magic close
[2024-05-16T08:45:29.577241Z] [warn] [pid:6098] !!! main: failed to start VM at /usr/lib/os-autoinst/backend/driver.pm line 104.
Actions #15

Updated by tinita 3 days ago

I did:

chown root:kvm /dev/kvm

Now I get:

[2024-05-16T08:49:46.622010Z] [warn] [pid:8060] !!! : qemu-system-x86_64: -vnc :91,share=force-shared: Failed to find an available port: Address already in use
Actions #16

Updated by tinita 2 days ago

In our collab session we tried several things to change the vnc port.
In the end it helped to restart the worker instance with an instance number of 10 instead of 1. (we needed to create the pool directory first)
With that qemu started and the test passed.

We didn't find out why the default 5091 port did not work, as there was nothing else listening on that port.

But it would be good if the bootstrap script and our code was a bit more flexible to configure certain ports.
Also it would be nice if one could just stop everything and restart the bootstrap script after making changes. Running the bootstrap script twice currently fails early when adding the zypper repository (complaining that it already exists).

Actions #17

Updated by tinita 2 days ago

https://github.com/os-autoinst/openQA/pull/5644 Make VNC port offset configurable

Actions

Also available in: Atom PDF