There is a running gag built into openQA called interactive mode. It goes like this: "if you need the interactive mode, it's broken". The reason: the so called interactive mode is a collection of hacks - in theory making it possible to update needles in a running test.

But in fact it's a UI desaster that almost never works. So the goal of this hackweek project is to get rid of it - and instead build a real control from the webui into the backend allowing tests to be written on the fly including needle creation/updates. Easy as that.

Looking for hackers with the skills:

openqa

This project is part of:

Hack Week 14 Hack Week 16

Activity

  • over 5 years ago: cdywan liked this project.
  • almost 7 years ago: dheidler liked this project.
  • over 7 years ago: ammartinez disliked this project.
  • over 7 years ago: ammartinez liked this project.
  • over 7 years ago: michals liked this project.
  • over 7 years ago: bfilho liked this project.
  • over 7 years ago: nadvornik liked this project.
  • over 7 years ago: ancorgs liked this project.
  • over 7 years ago: bruclik liked this project.
  • over 7 years ago: hennevogel liked this project.
  • over 7 years ago: bruclik liked this project.
  • over 7 years ago: dmaiocchi disliked this project.
  • over 7 years ago: osukup liked this project.
  • over 7 years ago: cbruckmayer liked this project.
  • over 7 years ago: jmoellers liked this project.
  • over 7 years ago: mlin7442 liked this project.
  • over 7 years ago: szarate liked this project.
  • over 7 years ago: yfjiang liked this project.
  • about 8 years ago: StefanBruens liked this project.
  • over 8 years ago: fcrozat liked this project.
  • over 8 years ago: okurz liked this project.
  • over 8 years ago: dmaiocchi liked this project.
  • over 8 years ago: coolo started this project.
  • over 8 years ago: coolo added keyword "openqa" to this project.
  • over 8 years ago: coolo originated this project.

  • Comments

    • coolo
      over 7 years ago by coolo | Reply

      Time to get serious - the base is refactored

    • coolo
      over 7 years ago by coolo | Reply

      Current state of afair:

      To enable interactive mode:

      Javascript of the browser POSTS to /worker//commands of the webui Webui does a DBUS call to WebSocket Service WebSocket Service will issue a command to the worker through WS Worker POSTS to the commands process of isotovideo That one will call into the main loop, which then sets the variable

      The problem is not the complexity of this in general - the problem is that the missing return channel / error handling.

      If isotovideo is busy with a long running command (i.e. typestring $theworld), it won't react to the commands requests.

      Having a direct WS line between JS and commands process sounds like the easiest to handle. This would remove the need to adapt 3 more places if I want to adapt the workflow.

      So first step: add a step to create this channel - checking permissions in the process.

    Similar Projects

    Hack on isotest-ng - a rust port of isotovideo (os-autoinst aka testrunner of openQA) by szarate

    Description

    Some time ago, I managed to convince ByteOtter to hack something that resembles isotovideo but in Rust, not because I believe that Perl is dead, but more because there are certain limitations in the perl code (how it was written), and its always hard to add new functionalities when they are about implementing a new backend, or fixing bugs (Along with people complaining that Perl is dead, and that they don't like it)

    In reality, I wanted to see if this could be done, and ByteOtter proved that it could be, while doing an amazing job at hacking a vnc console, and helping me understand better what RuPerl needs to work.

    I plan to keep working on this for the next few years, and while I don't aim for feature completion or replacing isotovideo tih isotest-ng (name in progress), I do plan to be able to use it on a daily basis, using specialized tooling with interfaces, instead of reimplementing everything in the backend

    Todo

    • Add make targets for testability, e.g "spawn qemu and type"
    • Add image search matching algorithm
    • Add a Null test distribution provider
    • Add a Perl Test Distribution Provider
    • Fix unittests https://github.com/os-autoinst/isotest-ng/issues/5
    • Research OpenTofu how to add new hypervisors/baremetal to OpenTofu
    • Add an interface to openQA cli

    Goals

    • Implement at least one of the above, prepare proposals for GSoC
    • Boot a system via it's BMC

    Resources

    See https://github.com/os-autoinst/isotest-ng


    Setup a new openQA on more powerful server by JNa

    Description

    • currently local openQA storage is insufficient

    Goals

    -Migrate to more powerful machine

    Resources

    -Service Rainbow


    Learn obs/ibs sync tool by xlai

    Description

    Once images/repo are built from IBS/OBS, there is a tool to sync the image from IBS/OBS to openqa asset directory and trigger openqa jobs accordingly.

    Goals

    Check how the tool is implemented, and be capable to add/modify our needed images/repo in future by ourselves.

    Resources

    • https://github.com/os-autoinst/openqa-trigger-from-obs
    • https://gitlab.suse.de/openqa/openqa-trigger-from-ibs-plugin/-/tree/master?ref_type=heads


    New features in openqa-trigger-from-obs for openQA by jlausuch

    Description

    Implement new features in openqa-trigger-from-obs to make xml more flexible.

    Goals

    One of the features to be implemented: - Possibility to define "VERSION" and "ARCH" variables per flavor instead of global.

    Resources

    https://github.com/os-autoinst/openqa-trigger-from-obs


    OpenQA Golang api client by hilchev

    Description

    I would like to make a simple cli tool to communicate with the OpenQA API

    Goals

    • OpenQA has a ton of information that is hard to get via the UI. A tool like this would make my life easier :)
    • Would potentially make it easier in the future to make UI changes without Perl.
    • Improve my Golang skills

    Resources

    • https://go.dev/doc/
    • https://openqa.opensuse.org/api