ansible/roles/openqa/dispatcher/files/openqa-arm-delete
2016-10-03 12:04:12 -07:00

51 lines
1.6 KiB
Python
Executable file

#!/usr/bin/env python
# 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
"""
import os
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)