openqa/dispatcher: add an ugly workaround for openQA #673
We currently can't tell openQA to download the ARM kernel and initramfs with a filename unique to the build being tested, so they just get downloaded as `vmlinuz` and `initrd.img`, which means that when the next compose is tested, we won't download them again, we'll just use the existing copies (which are no longer the right ones). Because of this our current 'F25' and 'Rawhide' ARM tests are actually still using some F24 kernel image. Until the openQA bug which prevents us giving the files unique names is resolved, here's a hacky workaround: a script which wipes the files every hour if no openQA jobs are pending.
This commit is contained in:
parent
8bb834ccaa
commit
f96b283dec
2 changed files with 52 additions and 0 deletions
49
roles/openqa/dispatcher/files/openqa-arm-delete
Executable file
49
roles/openqa/dispatcher/files/openqa-arm-delete
Executable file
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright (C) 2016 Red Hat
|
||||
#
|
||||
# This script is free software; you can redistribute it
|
||||
# and/or modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation, either version 3 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): Adam Williamson <awilliam@redhat.com>
|
||||
|
||||
"""Simple script to wipe ARM vmlinuz/initrd if no tests are running.
|
||||
Works around https://github.com/os-autoinst/openQA/pull/673
|
||||
"""
|
||||
|
||||
from openqa_client.client import OpenQA_Client
|
||||
from openqa_client.const import JOB_PENDING_STATES
|
||||
|
||||
def main():
|
||||
"""Main function."""
|
||||
client = OpenQA_Client()
|
||||
params = {
|
||||
'arch': 'arm',
|
||||
'state': ','.join(JOB_PENDING_STATES),
|
||||
}
|
||||
pending = client.openqa_request('GET', 'jobs', params=params)['jobs']
|
||||
if pending:
|
||||
# Not safe to wipe while jobs are running or scheduled.
|
||||
return
|
||||
|
||||
for _file in ('/var/lib/openqa/share/factory/other/initrd.img',
|
||||
'/var/lib/openqa/share/factory/other/vmlinuz'):
|
||||
if os.path.isfile(_file):
|
||||
os.remove(_file)
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
main()
|
||||
except KeyboardInterrupt:
|
||||
sys.stderr.write("Interrupted, exiting...\n")
|
||||
sys.exit(1)
|
|
@ -124,3 +124,6 @@
|
|||
- restart fedmsg-hub
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: Wipe ARM kernel/initramfs hourly (workaround https://github.com/os-autoinst/openQA/pull/673 )
|
||||
copy: src=openqa-arm-delete dest=/etc/cron.hourly owner=root group=root mode=0755
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue