[releng] Add find_tagged_retired_epel_builds.py
Till Maas
till at fedoraproject.org
Sat May 9 07:11:00 UTC 2015
commit f69d0f55b0a15c12c898b2624254989b15978afe
Author: Till Maas <opensource at till.name>
Date: Sat May 9 09:10:08 2015 +0200
Add find_tagged_retired_epel_builds.py
Signed-off-by: Till Maas <opensource at till.name>
scripts/find_tagged_retired_epel_builds.py | 91 ++++++++++++++++++++++++++++
1 files changed, 91 insertions(+), 0 deletions(-)
---
diff --git a/scripts/find_tagged_retired_epel_builds.py b/scripts/find_tagged_retired_epel_builds.py
new file mode 100755
index 0000000..8dbaea0
--- /dev/null
+++ b/scripts/find_tagged_retired_epel_builds.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python -tt
+# vim: fileencoding=utf8
+# SPDX-License-Identifier: GPL-2.0+
+
+import argparse
+import getpass
+import logging
+import time
+
+
+from autosigner import SubjectSMTPHandler
+from block_retired import get_packages, run_koji
+
+
+log = logging.getLogger(__name__)
+
+
+# copied from block_retired.py
+def setup_logging(debug=False, mail=False):
+ if debug:
+ log.setLevel(logging.DEBUG)
+ else:
+ log.setLevel(logging.INFO)
+
+ formatter = logging.Formatter(
+ '%(asctime)s: %(levelname)s: %(message)s',
+ )
+ # Log in UTC
+ formatter.converter = time.gmtime
+
+ console_logger = logging.StreamHandler()
+ if debug:
+ console_logger.setLevel(logging.DEBUG)
+ else:
+ console_logger.setLevel(logging.INFO)
+ console_logger.setFormatter(formatter)
+ log.addHandler(console_logger)
+
+ if mail:
+ # FIXME: Make this a config option
+ fedora_user = getpass.getuser()
+ mail_logger = SubjectSMTPHandler(
+ "127.0.0.1", fedora_user, [fedora_user],
+ "EPEL retired build monitor event")
+ if debug:
+ mail_logger.setLevel(logging.DEBUG)
+ mail_logger.setFormatter(formatter)
+ mail_logger.subject_prefix = "EPEL retired builld monitor: "
+ log.addHandler(mail_logger)
+
+
+def check_tag(tag, staging):
+ buildtag = tag + "-build"
+ _, blocked_in_tag = get_packages(tag)
+ unblocked_in_buildtag, _ = get_packages(buildtag)
+
+ for package in sorted(blocked_in_tag):
+ if package in unblocked_in_buildtag:
+ log.debug("Checking %s", package)
+ cmd = ["latest-build", buildtag, package]
+ process, latest_build, stderr = run_koji(cmd, staging=staging)
+ if tag in latest_build and buildtag not in latest_build:
+ yield dict(package=package, latest_build=latest_build)
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ description="Check if there are EPEL builds from retired packages "
+ "still in the buildroot.")
+ parser.add_argument("--debug", default=False, action="store_true")
+ parser.add_argument("--tag", default=None,
+ help="Tag to check, default: all")
+ parser.add_argument(
+ "--staging", default=False, action="store_true",
+ help="Talk to staging services (pkgdb), instead of production")
+ args = parser.parse_args()
+
+ setup_logging(args.debug)
+
+ if args.tag is None:
+ for tag in ["dist-5E-epel", "dist-6E-epel", "epel7"]:
+ print("Tag: " + tag)
+ problems = check_tag(tag, args.staging)
+ for problem in problems:
+ print problem["package"]
+ log.debug(problem["latest_build"])
+ else:
+ problems = check_tag(args.tag, args.staging)
+ for problem in problems:
+ print problem["package"]
+ log.debug(problem["latest_build"])
More information about the rel-eng
mailing list