diff options
author | Jesse Keating <jkeating at redhat dot com> | 2007-06-26 14:49:35 -0400 |
---|---|---|
committer | Jesse Keating <jkeating at redhat dot com> | 2007-06-26 14:49:35 -0400 |
commit | 73afafe9275fa29b9cb314ec64110c479d3cbff2 (patch) | |
tree | 7a7250330b49083c6797312e65926878fa13d6e8 /scripts/clean-overrides.py | |
parent | 6aac798618bb09104c1034faf4cab9cff34a7575 (diff) | |
download | releng-73afafe9275fa29b9cb314ec64110c479d3cbff2.tar.gz releng-73afafe9275fa29b9cb314ec64110c479d3cbff2.tar.xz releng-73afafe9275fa29b9cb314ec64110c479d3cbff2.zip |
add a utility to help clean out override tags
Diffstat (limited to 'scripts/clean-overrides.py')
-rwxr-xr-x | scripts/clean-overrides.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/scripts/clean-overrides.py b/scripts/clean-overrides.py new file mode 100755 index 0000000..a11d3bf --- /dev/null +++ b/scripts/clean-overrides.py @@ -0,0 +1,72 @@ +#!/usr/bin/python +# +# clean-overrides.py - A utility to examine a buildroot override tag and +# compare contents to an updates tag. +# +# Copyright (c) 2007 Red Hat +# +# Authors: +# Jesse Keating <jkeating@redhat.com> + + +import koji +import rpm +import sys + +def usage(): + print """ + override-cleanup.py overridetag updatetag + """ + +def compare(pkgA, pkgB): + pkgdictA = koji.parse_NVR(pkgA) + pkgdictB = koji.parse_NVR(pkgB) + + rc = rpm.labelCompare(('0', pkgdictA['version'], pkgdictA['release']), + ('0', pkgdictB['version'], pkgdictB['release'])) + + return rc + +if len(sys.argv) > 1 and sys.argv[1] in ['-h', '--help', '-help', '--usage']: + usage() + sys.exit(0) +elif len(sys.argv) < 3: + usage() + sys.exit(1) +else: + overtag, updatetag = sys.argv[1:] + +kojisession = koji.ClientSession('http://koji.fedoraproject.org/kojihub') + +f7overrides = kojisession.listTagged(overtag) +f7stables = kojisession.listTagged(updatetag, latest=True) + +stabledict = {} +equal = [] +older = [] + +for build in f7stables: + stabledict[build['package_id']] = build['nvr'] + +for build in f7overrides: + if build['package_id'] in stabledict.keys(): + rc = compare(build['nvr'], stabledict[build['package_id']]) + if rc == 0: + equal.append(build['nvr']) + if rc < 0: + older.append(build['nvr']) + +if equal: + print "Builds that exist both in %s and %s:" % (overtag, updatetag) + for build in equal: + print build + print "" + +if older: + print "Builds that are older in %s than in %s." % (overtag, updatetag) + for build in older: + print build + print "" + +if equal or older: + print "Suggest: koji untag-pkg --force --all %s %s %s" % (overtag, ' '.join(equal), ' '.join(older)) |