#30 Revise openQA scheduler for Pungi 4
Closed: Fixed None Opened 8 years ago by adamwill.

Pungi 4 is going to completely change how we should do openQA scheduling. The good news is we can make it better and simpler. The bad news is we have to more or less re-do it from scratch.

I've been looking into this and bugging dgilmore and threebean about it lately. I more or less have a plan for how to go about it. Here's the very simple summary:

  1. Listen for fedmsg 'pungi.compose.status.change' messages with appropriate statuses
  2. Grab the 'compose_id' and 'location' values
  3. Read out the list of images in the compose from the Pungi metadata, isolate the images we want to test
  4. Synthesize a 'flavor' for each image, pick a 'universal' image
  5. Do an openQA POST for each image: VERSION taken from the compose_id, BUILD is the compose_id, FLAVOR is the synthesized flavor, and ISOURL is the URL (or we can stick with doing the downloading ourselves and passing ISO)

Notes: compose_id does not match my versioning concept from wikitcms/fedfind, so the BUILD values will be different. We'll have to tweak the 'interpretation' of the BUILD value for wiki reporting purposes, and/or change the names of the wiki pages. I'm also expecting the FLAVOR values to change - we would have to do an awful lot of somersaults to produce the same values fedfind did, and it doesn't seem worthwhile - so we'll have to change the flavor names in openqa_fedora also.

We can either include a fedmsg listener in the scheduler codebase itself, or we can have the scheduler remain a simple program/module that expects to be passed a compose_id and location, and have taskotron do the work of listening out for fedmsgs and invoking the scheduler (either by importing it or just by calling the CLI, whichever seems better).

I've done some preliminary work on this this afternoon, https://paste.fedoraproject.org/315098/53847970/ is where I'm up to. get_images() drops into schedule.py, the default definition of IMAGES goes in config.py (along with a bit of code to override it from an images.json file if one exists) and schedule.py imports it along with CONFIG.


I've now pushed my pungi4 branches of openqa_fedora and openqa_fedora_tools to the repo. They seem to basically work, with a few provisos and caveats noted in the commit messages and source comments.

I'm not quite ready to post a diff yet, but do take a poke and see if they work for you. I'll talk to tflink about fedmsg listener planning tomorrow probably.

This is all done and working for the last week or two.

Login to comment on this ticket.

Metadata