| |
@@ -50,6 +50,20 @@
|
| |
"""openQA base URL."""
|
| |
return CONFIG.get('consumers', 'prod_oqa_baseurl')
|
| |
|
| |
+ @property
|
| |
+ def openqa_update_arches(self):
|
| |
+ """openQA list of supported arches for update msg."""
|
| |
+ archstr = CONFIG.get('consumers', 'update_arches')
|
| |
+ arches = archstr.replace(' ','').split(',')
|
| |
+ return arches
|
| |
+
|
| |
+ @property
|
| |
+ def openqa_not_scheduled_events(self):
|
| |
+ """openQA list of events not to be scheduled."""
|
| |
+ strcomp = CONFIG.get('consumers', 'not_scheduled_events')
|
| |
+ if strcomp:
|
| |
+ strcomp = strcomp.replace(' ','').split(',')
|
| |
+ return strcomp
|
| |
|
| |
class OpenQAStagingConsumer(fedmsg.consumers.FedmsgConsumer):
|
| |
"""Staging mixin for both wiki and ResultsDB reporters so they can
|
| |
@@ -67,6 +81,20 @@
|
| |
"""openQA base URL."""
|
| |
return CONFIG.get('consumers', 'stg_oqa_baseurl')
|
| |
|
| |
+ @property
|
| |
+ def openqa_update_arches(self):
|
| |
+ """openQA list of supported arches for update msg."""
|
| |
+ archstr = CONFIG.get('consumers', 'update_arches')
|
| |
+ arches = archstr.replace(' ','').split(',')
|
| |
+ return arches
|
| |
+
|
| |
+ @property
|
| |
+ def openqa_not_scheduled_events(self):
|
| |
+ """openQA list of events not to be scheduled."""
|
| |
+ strcomp = CONFIG.get('consumers', 'not_scheduled_events')
|
| |
+ if strcomp:
|
| |
+ strcomp = strcomp.replace(' ','').split(',')
|
| |
+ return strcomp
|
| |
|
| |
class OpenQATestConsumer(fedmsg.consumers.FedmsgConsumer):
|
| |
"""Test mixin for both wiki and ResultsDB reporters so they can
|
| |
@@ -85,6 +113,20 @@
|
| |
"""openQA base URL."""
|
| |
return CONFIG.get('consumers', 'test_oqa_baseurl')
|
| |
|
| |
+ @property
|
| |
+ def openqa_update_arches(self):
|
| |
+ """openQA list of supported arches for update msg."""
|
| |
+ archstr = CONFIG.get('consumers', 'update_arches')
|
| |
+ arches = archstr.replace(' ','').split(',')
|
| |
+ return arches
|
| |
+
|
| |
+ @property
|
| |
+ def openqa_not_scheduled_events(self):
|
| |
+ """openQA list of events not to be scheduled."""
|
| |
+ strcomp = CONFIG.get('consumers', 'not_scheduled_events')
|
| |
+ if strcomp:
|
| |
+ strcomp = strcomp.replace(' ','').split(',')
|
| |
+ return strcomp
|
| |
|
| |
# SCHEDULER CLASSES
|
| |
|
| |
@@ -112,6 +154,12 @@
|
| |
self._log('info', "Not scheduling jobs for modular compose {0}".format(compstr))
|
| |
return
|
| |
|
| |
+ for compname in self.openqa_not_scheduled_events:
|
| |
+ if compname in compstr:
|
| |
+ self._log('warning', "Not scheduling jobs for {0} compose "
|
| |
+ "{1}".format(compname, compstr))
|
| |
+ return
|
| |
+
|
| |
if 'FINISHED' in status and location:
|
| |
# We have a complete pungi4 compose
|
| |
self._log('info', "Scheduling openQA jobs for compose {0}".format(compstr))
|
| |
@@ -145,6 +193,11 @@
|
| |
# to None, means 'run all tests'.
|
| |
flavors = []
|
| |
|
| |
+ if 'update' in self.openqa_not_scheduled_events:
|
| |
+ self._log('warning', "Not scheduling jobs for update event "
|
| |
+ "{0}".format(advisory))
|
| |
+ return
|
| |
+
|
| |
# if update is critpath, always run all update tests
|
| |
if critpath and advisory and version and idpref == 'FEDORA':
|
| |
self._log('info', "Scheduling openQA jobs for critical path update {0}".format(advisory))
|
| |
@@ -182,14 +235,20 @@
|
| |
# being None here results in our desired behaviour (jobs will
|
| |
# be created for *all* flavors)
|
| |
# pylint: disable=no-member
|
| |
- jobs = schedule.jobs_from_update(
|
| |
- advisory, version, flavors=flavors, openqa_hostname=self.openqa_hostname, force=True)
|
| |
- if jobs:
|
| |
- self._log('info', "openQA jobs run on update {0}: "
|
| |
- "{1}".format(advisory, ' '.join(str(job) for job in jobs)))
|
| |
- else:
|
| |
- self._log('warning', "No openQA jobs run!")
|
| |
- return
|
| |
+ for onearch in self.openqa_update_arches:
|
| |
+ # f28 is the last release to support ppc64 (BE)
|
| |
+ if onearch == 'ppc64' and str(version).isdigit() and int(version) > 28:
|
| |
+ self._log('info',
|
| |
+ "No update tests for {0} and F{1}".format(onearch, version))
|
| |
+ continue
|
| |
+ jobs = schedule.jobs_from_update(
|
| |
+ advisory, version, flavors=flavors, openqa_hostname=self.openqa_hostname, arch=onearch, force=True)
|
| |
+ if jobs:
|
| |
+ self._log('info', "openQA jobs run on update {0} {1}: "
|
| |
+ "{2}".format(advisory, onearch, ' '.join(str(job) for job in jobs)))
|
| |
+ else:
|
| |
+ self._log('warning', "No openQA jobs run for %s", onearch)
|
| |
+ return
|
| |
|
| |
self._log('debug', "Finished")
|
| |
return
|
| |
two new parameters in schedule.conf.sample as detailed in two commits below
and a third commit only for warning log.