action #164388
opencoordination #161168: [epic] Support hooks for obs-sync plugin
[timeboxed:20h][spike solution] Adaptable product scheduling in openqa-trigger-from-obs - take 2
0%
Description
Motivation¶
As findings in #161879#note-6 reveal, the change to make scheduling more dynamically needs to be done in openqa-trigger-from-obs
directly (as the openQA sync plugin is just a script runner and frontend). There are various ways to influence the job scheduling, e.g. adding support for invoking a hook script which could again be done on various levels/places. One could alter the script generator (scriptgen.py
) directly to change the generated scripts or one could alter rsync.sh
as shown in https://github.com/os-autoinst/openqa-trigger-from-obs/pull/249. It is also questionable whether we still want to top-level script generator (scriptgen.py
). The point is: There are many options to discuss/explore. If we just make it print "Hello world" somehow/somewhere as a first step this is not going to help us find what we need to solve the actual problem. We tried in #162515 and failed to come up with a viable prototype so we need to brainstorm to understand what is actually required.
Acceptance criteria¶
- AC1: We know what we need to change in our current mechanism for triggering tests in the light of #159828.
- AC2: We know who (which team) is going to change what parts.
Suggestion¶
- Read #161879#note-6 and related source files to get an idea of how openqa-trigger-from-obs works
- Read and understand where #162515 failed
- Conduct a pair programming session with members from QE Core and QE Tools (or possibly other interested teams) to come up with a draft PR for https://github.com/os-autoinst/openqa-trigger-from-obs.
Updated by okurz 3 months ago
- Copied from action #162515: [timeboxed:20h][spike solution] Adaptable product scheduling in openqa-trigger-from-obs size:S added
Updated by okurz 3 months ago · Edited
(Andrii Nikitin) we did workarounds with variable= in xml https://gitlab.suse.de/openqa/openqa-trigger-from-ibs-plugin/-/blob/master/xml/SUSE:ALP:Standard:Staging.xml?ref_type=heads#L8 which theoretically can have any bash commands. They look like this in production https://openqa.suse.de/admin/obs_rsync/SUSE:ALP:Source:Standard:1.0:Staging:A/runs/.run_last/download/openqa.cmd not sure if such hooks could help (edited)
(Oliver Kurz) @Santiago Zarate see? that's yet another instance what I mean with "it's already possible. You need to tell us what's missing" :slightly_smiling_face: Is maybe the variable=approach good enough?
(Andrii Nikitin) yeah usually I request isos post commands that need to be executed. Then try to figure out how to generate them. theoretically we can add something like prescript / postscript to xml. In any case I think it will be simpler if we have exact expected commands in bash (even stubs), then see how to add that to xml and let scriptgen.py generate expected output.
What the approach mentions is https://gitlab.suse.de/openqa/openqa-trigger-from-ibs-plugin/-/blame/master/xml/SUSE:ALP:Standard:Staging.xml using
variable="ASSET_1=$( grep updateinfo $thisdir/files_asset.lst | head -n 1)"
I would assume with the same approach the test schedule can be adapted, e.g. setting "INCLUDE_MODULES" or "EXCLUDE_MODULES" or "SCHEDULE"
Updated by okurz 3 months ago · Edited
Related: https://github.com/os-autoinst/openqa-trigger-from-obs/pull/255 (merged)