1
0
mirror of https://pagure.io/fedora-qa/createhdds.git synced 2024-09-25 06:07:22 +00:00
Commit Graph

21 Commits

Author SHA1 Message Date
Adam Williamson
0396d70de0 handle errors while waiting for compose smartly
Summary:
So the first attempt to use the waiting stuff in production
failed because, at some point, koji_done got a socket.error
from the server. Not sure if that was a Koji outage or some
kind of rate control, but even if it's rate control and we need
to tweak the wait interval, this seems advisable: we shouldn't
die the first time we hit any kind of error while waiting, we
should retry a few times first (with increasingly long delays
between the retry attempts). I know bare except clauses are BAD,
but I think it's OK here as we can't really cover every possible
exception which might get raised in any module during a 'go hit
a server and do a bunch of stuff' operation, and if the error
keeps happening we *are* going to raise it eventually.

Test Plan:
Check I didn't break the 'normal' case, and try causing
an error to appear somehow (e.g. disconnect from the network or
hack up the 'client' instantiation in fedfind to use the wrong URL)
and see if the error handling works as intended.

Reviewers: garretraziel, jskladan

Reviewed By: garretraziel, jskladan

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D532
2015-08-27 15:51:15 -07:00
Adam Williamson
b8fe095296 drop 'all', add 'current' check and waiting to 'compose'
Summary:
This is an alternative to D516. It drops the 'all' subcommand
entirely and adds some capabilities to 'compose' to make it
suitable for scripting. --ifnotcurrent will check if the compose
is the same as the current validation event, and bail out if it
is. --wait waits for the compose to be available. I've also
enhanced fedfind (in 1.4.1) to allow passing just 'Branched'
as the milestone; it will guess the release and date, now (it
didn't before).

With all of that taken together, we could have three cron jobs,
one for 'current', one for 'branched', and one for 'rawhide'.
That way we don't have to do any clever multiprocess/round-robin
waiting stuff, and the jobs for each release will be run and
reported as fast as possible (and we can run the compose report
right after the trigger script and have that sent out
efficiently too).

Test Plan:
Try all the possibilities with 'compose' - especially
check that it works with just '-m Rawhide' and '-m Branched',
and that the --wait and --ifnotcurrent args work as intended.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D525
2015-08-24 11:38:50 -07:00
Adam Williamson
b2a19e1894 pass a proper 'version' value
Summary:
We can just parse the release out of the 'build' value, here.
All tests still run properly because we use the * wildcard
in the job groups and so on. Passing a proper 'version' value
prevents T581: when you schedule jobs from an ISO, openQA
will obsolete any running or scheduled jobs with the same
DISTRI, FLAVOR, VERSION and ARCH.

Test Plan:
Schedule jobs for two composes at the same time
(e.g. Branched and Rawhide), see that the second set does
not obsolete the first. Make sure setting VERSION has no
unexpected consequences.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D522
2015-08-20 23:48:26 -07:00
Adam Williamson
269dbbe004 schedule tests for i386 by default
Summary:
D500 adds 32-bit test definitions to the test templates, so we
can schedule that arch again.

Test Plan: Goes along with D500, same test plan.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D501
2015-08-15 21:10:50 -04:00
Adam Williamson
f681dce47e fix previous commit: job IDs are ints not strs
Forgot to fix this up before landing. As landed it didn't work
because job IDs are ints not strs.
2015-08-10 11:14:37 -07:00
Adam Williamson
836dec71fe print job ID lists with just space separators
Summary:
This way you can just copy/paste the damn list for report_job_
results instead of reformatting it, if you want to feed it in
manually for any reason.

Test Plan:
Run some commands that schedule jobs and make sure they're
printed as '1 2 3' not '[1, 2, 3]'

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D493
2015-08-10 11:11:20 -07:00
Jan Sedlák
ba512e93cd change default logging level to INFO
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D480
2015-07-29 14:31:05 +02:00
Adam Williamson
803573edbc drop i386 from default arches for now
Summary:
We've never quite set things up to run 32-bit tests. We should,
at some point, but for now we're just wasting a bunch of time/
bandwidth downloading them and never testing them.

Test Plan:
Schedule a run and make sure all the same tests are still run,
but half as many images are downloaded...

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D455
2015-07-20 07:41:15 -07:00
Garret Raziel
b360155048 use openqa-python client instead of subprocess calling
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D425
2015-07-10 10:40:31 +02:00
Garret Raziel
894e27ea84 allow running OpenQA in docker container, add logging instead of printing to stdout
Summary:
Logging is introduced instead of output to stdout and several
new options are added - user can specify directory for downloading
isos and he can also specify docker container where openqa is
running. Info about newest tested version is not written if no
images were found.

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D420
2015-07-09 10:31:53 +02:00
Adam Williamson
093c2b5be7 typo fix
Summary:
Wrong brace used for a str.format() call - caused a crash when
no universal test image is found for a compose.

Test Plan:
Check that tests still run. Ideally try testing a compose with
no universal image (e.g. a Rawhide nightly with no boot.iso).

Reviewers: garretraziel, kparal

Reviewed By: kparal

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D384
2015-06-11 10:00:26 -07:00
Adam Williamson
cbe7769748 handling scheduling of jobs for multiple images
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.

This also adds a mechanism for TESTCASES (in conf_test_suites)
to define a callback which will be called with the flavor of
the image being tested; the result of the callback will be used
as the 'test name' for relval result reporting purposes. This
allows us to report results against the correct 'test instance'
for the image being tested, for tests like Boot_default_install
which have 'test instances' for each image. We can extend this
general approach in future for other cases where we have
multiple 'test instances' for a single test case.
2015-03-18 14:51:01 -07:00
Adam Williamson
8c7a99fae8 Polishing of the download_all() method
The patch jskladan applied was an older broken one I sent
accidentally; apologies. This is more or less my intended
version, with some of the cleanups from jskladan preserved
and a couple of his suggestions added (!= instead of not ==,
and a bit of just-in-case exception handling).
2015-02-20 10:01:36 +01:00
Josef Skladanka
49c3e75edf Minor polishing 2015-02-18 11:33:45 +01:00
Adam Williamson
6c04ca5904 Moar of the AdamW's wild changes 2015-02-18 10:02:50 +01:00
Adam Williamson
b54aed6aa1 Use python-wikitcms and fedfind
The basic approach is that openqa_trigger gets a ValidationEvent from
python-wikitcms - either the Wiki.current_event property for
'current', or the event specified, obtained via the newly-added
Wiki.get_validation_event(), for 'event'. For 'event' it then just
goes ahead and runs the jobs and prints the IDs. For 'current' it
checks the last run compose version for each arch and runs if needed,
as before. The ValidationEvent's 'sortname' property is the value
written out to PERSISTENT to track the 'last run' - this property is
intended to always sort compose events 'correctly', so we should
always run when appropriate even when going from Rawhide to Branched,
Branched to a TC, TC to RC, RC to (next milestone) TC.

On both paths it gets a fedfind.Release object via the ValidationEvent
- ValidationEvents have a ff_release property which is the
fedfind.Release object that matches that event. It then queries
fedfind for image locations using a query that tries to get just *one*
generic-ish network install image for each arch. It passes the
location to download_image(), which is just download_rawhide_iso()
renamed and does the same job, only it can be simpler now.

From there it works pretty much as before, except we use the
ValidationEvent's 'version' property as the BUILD setting for OpenQA,
and report_job_results get_relval_commands() is tweaked slightly to
parse this properly to produce a correct report-auto command.

Probably the most likely bits to break here are the sortname thing
(see wikitcms helpers.py fedora_release_sort(), it's pretty stupid, I
should re-write it) and the image query, which might wind up getting
more than one image depending on how exactly the F22 Alpha composes
look. I'll keep a close eye on that. We can always take the list from
fedfind and further filter it so we have just one image per arch.
Image objects have a .arch attribute so this will be easy to do if
necessary. I *could* give the fedfind query code a 'I'm feeling lucky'-
ish mode to only return one image per (whatever), but not sure if that
would be too specialized, I'll think about it.
2015-02-16 18:04:40 +01:00
Garret Raziel
c8e3496139 small fix of version check 2015-02-11 11:04:04 +01:00
Josef Skladanka
c29fbde4b2 Added some printouts to openqa_trigger 2015-02-04 17:15:08 +01:00
Josef Skladanka
471e13791e Make the thing work!
Fixed some issues & test-suites "metadata"
2015-02-03 17:46:41 +01:00
Josef Skladanka
c003f6e445 Add _ as a separator in BUILD 2015-01-30 14:58:12 +01:00
Josef Skladanka
ec62bb2a44 Automated reporting using relval 2015-01-29 15:18:56 +01:00