[releng] check-latest-build: PEP8 compliance/implement --fix

Till Maas till at fedoraproject.org
Mon Sep 29 19:32:14 UTC 2014


commit 55d88e291c35640b4b560a2754d739d75393d237
Author: Till Maas <opensource at till.name>
Date:   Mon Sep 29 21:32:44 2014 +0200

    check-latest-build: PEP8 compliance/implement --fix

 scripts/check-latest-build.py |   63 ++++++++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 25 deletions(-)
---
diff --git a/scripts/check-latest-build.py b/scripts/check-latest-build.py
index 6370939..422ee0c 100755
--- a/scripts/check-latest-build.py
+++ b/scripts/check-latest-build.py
@@ -9,33 +9,37 @@
 # It can happen when bodhi pushes multiple builds of one package.
 #
 
+import argparse
+import logging
+log = logging.getLogger(__name__)
+import subprocess
 
-import sys
-import os
 import koji
-import time
-import string
-import rpm 
-import shutil
-import argparse
+import rpm
 
 # get parameters from command line
 parser = argparse.ArgumentParser()
 parser.add_argument("--arch", help="use when checking secondary arch koji")
-parser.add_argument("--fix", help="retag the highest NVR to became the latest (no-op now)", action="store_true")
-parser.add_argument("--verbose", help="be verbose during processing", action="store_true")
+parser.add_argument("--fix", help="retag the highest NVR to became the latest",
+                    action="store_true")
+parser.add_argument("--verbose", help="be verbose during processing",
+                    action="store_true")
+parser.add_argument("--debug", help="Enable debug output", action="store_true")
 parser.add_argument("tag", help="tag to check")
 parser.add_argument("package", nargs="*", help="packages to check")
 args = parser.parse_args()
 
-#print("tag=%s arch=%s pkgs=%s" % (args.tag, args.arch, args.package))
+if args.debug:
+    log.setLevel(logging.DEBUG)
+log.debug("tag=%s arch=%s pkgs=%s", args.tag, args.arch, args.package)
 
 if args.arch is None:
     KOJIHUB = 'http://koji.fedoraproject.org/kojihub'
 else:
     KOJIHUB = 'http://%s.koji.fedoraproject.org/kojihub' % (args.arch)
 
-def _rpmvercmp ((e1, v1, r1), (e2, v2, r2)):
+
+def _rpmvercmp((e1, v1, r1), (e2, v2, r2)):
     """find out which build is newer"""
     if e1 == "None":
         e1 = "0"
@@ -43,30 +47,32 @@ def _rpmvercmp ((e1, v1, r1), (e2, v2, r2)):
         e2 = "0"
     rc = rpm.labelCompare((e1, v1, r1), (e2, v2, r2))
     if rc == 1:
-        #first evr wins
+        # first evr wins
         return 1
     elif rc == 0:
-        #same evr
+        # same evr
         return 0
     else:
-        #second evr wins
+        # second evr wins
         return -1
 
 
 kojisession = koji.ClientSession(KOJIHUB)
 
 if args.package == []:
-    latest_builds = sorted(kojisession.listTagged(args.tag, latest=True), key = lambda pkg: pkg['package_name'])
+    latest_builds = sorted(kojisession.listTagged(args.tag, latest=True),
+                           key=lambda pkg: pkg['package_name'])
 else:
-#    print("pkgs=%s" % (args.package))
+    log.debug("pkgs=%s", args.package)
     latest_builds = []
     for p in args.package:
-	latest_builds += kojisession.listTagged(args.tag, latest=True, package=p)
+        latest_builds += kojisession.listTagged(args.tag, latest=True,
+                                                package=p)
 
 num = len(latest_builds)
 
-#print "latest builds=%d" % (num)
-#print("%s" % (latest_builds))
+log.debug("latest builds=%d", num)
+log.debug(str(latest_builds))
 
 for build in latest_builds:
     latest_evr = (str(build['epoch']), build['version'], build['release'])
@@ -75,9 +81,16 @@ for build in latest_builds:
 
     builds = kojisession.listTagged(args.tag, package=build['package_name'])
     for b in builds:
-	evr = (str(b['epoch']), b['version'], b['release'])
-	res = _rpmvercmp(latest_evr, evr)
-	if res == -1:
-	    print("\tlatest is %s, but higher exists - %s" % (build['nvr'], b['nvr']))
-	    if args.fix is True:
-		print("\t\tretagging (no-op)")
+        evr = (str(b['epoch']), b['version'], b['release'])
+        res = _rpmvercmp(latest_evr, evr)
+        if res == -1:
+            print("\tlatest is %s, but higher exists - %s" % (build['nvr'],
+                                                              b['nvr']))
+            if args.fix is True:
+                cmd = ["koji", "untag-build", args.tag, b['nvr']]
+                print("running: " + " ".join(cmd))
+                subprocess.check_call(cmd)
+
+                cmd = ["koji", "tag-build", args.tag, b['nvr']]
+                print("running: " + " ".join(cmd))
+                subprocess.check_call(cmd)


More information about the rel-eng mailing list