This handles scheduling of jobs for more than one type of
image; currently we'll run tests for Workstation live as well.
It requires some cleverness to run some tests for *all* images
(currently just default_boot_and_install) but run all the tests
that can be run with any non-live installer image with the best
image available for the compose. We introduce a special (openQA,
not fedfind) 'flavor' called 'universal'; we run a couple of
checks to find the best image in the compose for running the
universal tests, and schedule tests for the 'universal' flavor
with that image. The 'best' image is a server or 'generic' DVD
if possible, and if not, a server or 'generic' boot.iso.
ISO files have the compose's version identifier prepended to
their names. Otherwise they retain their original names, which
should usually be unique within a given compose, except for
boot.iso files, which have their payload and arch added into
their names to ensure they don't overwrite each other.
report result under correct test case name for multi-image test
This adds a mechanism where TESTCASE dicts can include a
name_cb key with the value as a callback function that should
be called with an openQA job's 'flavor' as the single arg.
The result of the function should be the testcase name that
will be passed to relval. This should allow us to report
results for boot_default_install correctly, whichever image the
test is run against.
Feel free to make this into an one-liner. We have much longer lines in the code anyway, and I think that 80 characters/line is obsolete anyway. Under 120 is absolutely fine, more than 120 chars per line is acceptable when it improves readability.