summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Keating <jkeating at redhat dot com>2007-06-26 14:49:35 -0400
committerJesse Keating <jkeating at redhat dot com>2007-06-26 14:49:35 -0400
commit73afafe9275fa29b9cb314ec64110c479d3cbff2 (patch)
tree7a7250330b49083c6797312e65926878fa13d6e8
parent6aac798618bb09104c1034faf4cab9cff34a7575 (diff)
downloadreleng-73afafe9275fa29b9cb314ec64110c479d3cbff2.tar.gz
releng-73afafe9275fa29b9cb314ec64110c479d3cbff2.tar.xz
releng-73afafe9275fa29b9cb314ec64110c479d3cbff2.zip
add a utility to help clean out override tags
-rwxr-xr-xscripts/clean-overrides.py72
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))