action #108530
coordination #80142: [saga][epic] Scale out: Redundant/load-balancing deployments of openQA, easy containers, containers on kubernetes
coordination #108527: [epic] os-autoinst plugins (or wheels or leaves or scrolls) for scalable code reuse of helper functions and segmented test distributions
os-autoinst plugins: x11_start_program from os-autoinst-distri-openQA dynamically loaded from another git repo size:M
0%
Description
Acceptance criteria¶
- AC1: x11_start_program does not exist anymore in https://github.com/os-autoinst/os-autoinst-distri-openQA/blob/master/lib/susedistribution.pm
- AC2: The equivalent functionality is loaded from another git repository on github
Suggestions¶
- Create a local folder having perl modules, e.g. x11_start_program from https://github.com/os-autoinst/os-autoinst-distri-openQA/blob/master/lib/susedistribution.pm#L8 without the actual needle and leave it to the test distribution to provide it.
- Start with a local git repository, e.g. file://…
- Afterwards provide in github repo
- Provide the example as part of os-autoinst-distri-openQA, e.g. if a YAML file plugins.yaml exists next to a main.pm load all plugins from there
- Provide the os-autoinst code to git clone and load the above plugins.yaml (similar to how OpenQA/Isotovideo/Utils.pm loads main.pm)
- Use from test code like we already use stuff from "lib", e.g. with prefix "OpenQA:Plugin:…"
Out of scope¶
- Needles
- Additional helper tool
Related issues
History
#2
Updated by cdywan 3 months ago
Here's what I have so far:
- os-autoinst-wheel-launcher is a wheel. I don't currently have the priviledges to add this to os-autoinst in case we want that.
- os-autoinst/os-autoinst#2004 teaches isotovideo to grab wheels if they're being used.
- os-autoinst/os-autoinst-distri-openQA#82 makes use of the new wheel
I adjusted the code to not refer to x11 since there's no x11 involved and also to use %args the way we usually do in test functions.
Note that both "plugins" and "wheels" are being used. Feel free to let it sink in and make a case for one or the other.
#3
Updated by okurz 3 months ago
I think it looks awesome. My suggestions on the global scale:
- Follow https://metacpan.org/pod/Perl::Critic::Policy::NamingConventions::Capitalization, so OpenQA::Wheel::Launcher, not OpenQA::Wheel::launcher
- It's crucial that we provide self-tests for wheels. So how aobut a simple Test::Most test case in https://github.com/kalikiana/os-autoinst-wheel-launcher which mocks everything outside the repo
#4
Updated by openqa_review 3 months ago
- Due date set to 2022-04-12
Setting due date based on mean cycle time of SUSE QE Tools
#5
Updated by kraih 3 months ago
okurz wrote:
- Follow https://metacpan.org/pod/Perl::Critic::Policy::NamingConventions::Capitalization, so OpenQA::Wheel::Launcher, not OpenQA::Wheel::launcher
- It's crucial that we provide self-tests for wheels. So how aobut a simple Test::Most test case in https://github.com/kalikiana/os-autoinst-wheel-launcher which mocks everything outside the repo
+1 for both. And then run the tests in a GitHub Action.
#7
Updated by cdywan 3 months ago
Points discussed in the unblock:
- Add v: v0.1 to the
wheels.yaml
(we want this to be a string to avoid running into funny behavior once we get to e.g. v0.10) - Stick to the term wheels because both modules and plugins already have other meanings in openQA
- May want needles and metadata in wheels in the future but those don't need to be specified now
#8
Updated by cdywan 3 months ago
- Apparmor needs to expose podman: https://github.com/os-autoinst/openQA/pull/4606 (Error documented as part of #109235)
#9
Updated by cdywan 3 months ago
- Due date changed from 2022-04-12 to 2022-04-15
Also, I approached myself with the scrum master hat on wondering if the ticket should be resolved now. Apparently I didn't realize the overlap with my trainings going on this week. So I suggest I aim to wrap this up this week, and find out by tomorrow if I need any help.
#10
Updated by okurz 2 months ago
- Due date changed from 2022-04-15 to 2022-04-26
If there would be more people available right now I would ask for someone else to help you. Let's look into this after the Easter Break. If done after that, good, if not we can reconsider priorities and doing a mob session.
#11
Updated by cdywan 2 months ago
okurz wrote:
If there would be more people available right now I would ask for someone else to help you. Let's look into this after the Easter Break. If done after that, good, if not we can reconsider priorities and doing a mob session.
Turns out the mocking is proving to be challenging. After several attemps I moved the relevant unit tests into another PR. Maybe it's worth looking at #81899 in this context?
#13
Updated by okurz about 2 months ago
- Related to action #81899: [easy][beginner] Move code from isotovideo to a module size:M added