From fcbd4399a09f3fa962b48947efedac405ea20121 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 20 2020 13:06:08 +0000 Subject: [PATCH 1/4] Rename the utils variable to not conflict with the utils module Signed-off-by: Pierre-Yves Chibon --- diff --git a/runner.py b/runner.py index f6211d0..e9da11e 100644 --- a/runner.py +++ b/runner.py @@ -97,15 +97,15 @@ def schedule(conf): # Multi Build Gating multi_args = conf["workflow_multi_gating_args"].split() - utils = MonitoringUtils() + monit_utils = MonitoringUtils() notify( topic=f"multi-build.start", message={"arguments": multi_args, "runid": runid,}, ) try: - output = monitor_gating_multi_builds.main(multi_args, utils=utils) + output = monitor_gating_multi_builds.main(multi_args, utils=monit_utils) finally: - _clean_up_side_tags(utils) + _clean_up_side_tags(monit_utils) output_text = "\n".join(output) if "[FAILED]" not in output_text: From 2f90b908cc5a638e54c6fd3534229bc13118222e Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 20 2020 13:12:51 +0000 Subject: [PATCH 2/4] Refactor the code to make explicit what is imported from utils With this, we are also following the principal of stdlib imports first, then 3rd party lib, then application-specific lib. We're also renaming the list of blocking_issues so it does not conflict with the function. Signed-off-by: Pierre-Yves Chibon --- diff --git a/runner.py b/runner.py index e9da11e..a4d30b0 100644 --- a/runner.py +++ b/runner.py @@ -9,7 +9,6 @@ import datetime import sched import sys import time -import utils import uuid import fedora_messaging.api @@ -18,7 +17,7 @@ import toml import monitor_gating_single_build import monitor_gating_multi_builds -from utils import MonitoringUtils, run_command +from utils import MonitoringUtils, blocking_issues, run_command s = sched.scheduler(time.time, time.sleep) conf = toml.load @@ -135,12 +134,12 @@ def schedule(conf): }, ) - blocking_issues = utils.blocking_issues(blocker_tags) + blocking_issues_list = blocking_issues(blocker_tags) now = datetime.datetime.utcnow().strftime("%H:%M:%S") - if blocking_issues: + if blocking_issues_list: print( f"{now} Next run in: {delay_when_failing} seconds because of " - f"{len(blocking_issues)} open issues", + f"{len(blocking_issues_list)} open issues", flush=True, ) s.enter(delay_when_failing, 1, schedule, argument=(conf,)) From 542bb3ed83a28eca8ed1f9686dbe4c29dc9c24de Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 20 2020 13:15:12 +0000 Subject: [PATCH 3/4] Run black on the entire project Signed-off-by: Pierre-Yves Chibon --- diff --git a/clean_up_side_tags.py b/clean_up_side_tags.py index 59d7afd..982cc06 100644 --- a/clean_up_side_tags.py +++ b/clean_up_side_tags.py @@ -14,12 +14,12 @@ _log = logging.getLogger(__name__) def get_cli_args(args): parser = argparse.ArgumentParser( - prog="clean up side-tags", formatter_class=argparse.ArgumentDefaultsHelpFormatter + prog="clean up side-tags", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, ) parser.add_argument( - "conf", - help="Configuration file used by the runner", + "conf", help="Configuration file used by the runner", ) return parser.parse_args(args) @@ -33,7 +33,9 @@ def run_command(command) -> bytes: try: output = subprocess.check_output(command, stderr=subprocess.PIPE) except subprocess.CalledProcessError as e: - _log.error("Command `{}` return code: `{}`".format(" ".join(command), e.returncode)) + _log.error( + "Command `{}` return code: `{}`".format(" ".join(command), e.returncode) + ) _log.error("stdout:\n-------\n{}".format(e.stdout)) _log.error("stderr:\n-------\n{}".format(e.stderr)) pass @@ -45,14 +47,14 @@ def main(args): conf = toml.load(args.conf) if conf.get("kb_principal") and conf.get("kb_keytab_file"): - print(f"Logging as {conf['kb_principal']} into kerberos using: {conf['kb_keytab_file']}") + print( + f"Logging as {conf['kb_principal']} into kerberos using: {conf['kb_keytab_file']}" + ) cmd = ["kinit", conf["kb_principal"], "-kt", conf["kb_keytab_file"]] run_command(cmd) # list side-tags: - cmd = [ - conf["fedpkg"], "list-side-tags", "--user", conf["kb_principal"] - ] + cmd = [conf["fedpkg"], "list-side-tags", "--user", conf["kb_principal"]] output = run_command(cmd) if not output: @@ -63,15 +65,12 @@ def main(args): # Remove all the side-tags but the last one (which is the latest one), which # we keep in case there is a run ongoing for line in output[:-1]: - side_tag = line.split('\t')[0] + side_tag = line.split("\t")[0] print("Removing side-tag: %s" % side_tag) - cmd = [ - conf["fedpkg"], "remove-side-tag", side_tag - ] + cmd = [conf["fedpkg"], "remove-side-tag", side_tag] output = run_command(cmd) - if __name__ == "__main__": """ Main method. """ diff --git a/runner.py b/runner.py index a4d30b0..20c99f6 100644 --- a/runner.py +++ b/runner.py @@ -50,9 +50,7 @@ def notify(topic, message): def _clean_up_side_tags(utils): try: print(" Removing side-tag: %s" % utils.side_tag_name) - cmd = [ - conf["fedpkg"], "remove-side-tag", utils.side_tag_name - ] + cmd = [conf["fedpkg"], "remove-side-tag", utils.side_tag_name] output = run_command(cmd) except Exception: pass @@ -127,11 +125,7 @@ def schedule(conf): print(sys.exc_info()[0]) notify( - topic=f"multi-build.end.error", - message={ - "runid": runid, - "exception": err, - }, + topic=f"multi-build.end.error", message={"runid": runid, "exception": err,}, ) blocking_issues_list = blocking_issues(blocker_tags) From 315b954a1a35f9f03ab2258caf416c01525173a5 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 20 2020 13:17:43 +0000 Subject: [PATCH 4/4] flake8 and black fixes for the entire project Signed-off-by: Pierre-Yves Chibon --- diff --git a/runner.py b/runner.py index 20c99f6..5c68a87 100644 --- a/runner.py +++ b/runner.py @@ -13,10 +13,13 @@ import uuid import fedora_messaging.api import fedora_messaging.exceptions -import toml -import monitor_gating_single_build import monitor_gating_multi_builds + +import monitor_gating_single_build + +import toml + from utils import MonitoringUtils, blocking_issues, run_command s = sched.scheduler(time.time, time.sleep) @@ -51,7 +54,7 @@ def _clean_up_side_tags(utils): try: print(" Removing side-tag: %s" % utils.side_tag_name) cmd = [conf["fedpkg"], "remove-side-tag", utils.side_tag_name] - output = run_command(cmd) + run_command(cmd) except Exception: pass @@ -74,7 +77,7 @@ def schedule(conf): single_args = conf["workflow_single_gating_args"].split() notify( topic=f"single-build.start", - message={"arguments": single_args, "runid": runid,}, + message={"arguments": single_args, "runid": runid}, ) output = monitor_gating_single_build.main(single_args) output_text = "\n".join(output) @@ -97,7 +100,7 @@ def schedule(conf): monit_utils = MonitoringUtils() notify( topic=f"multi-build.start", - message={"arguments": multi_args, "runid": runid,}, + message={"arguments": multi_args, "runid": runid}, ) try: output = monitor_gating_multi_builds.main(multi_args, utils=monit_utils) @@ -125,7 +128,7 @@ def schedule(conf): print(sys.exc_info()[0]) notify( - topic=f"multi-build.end.error", message={"runid": runid, "exception": err,}, + topic=f"multi-build.end.error", message={"runid": runid, "exception": err}, ) blocking_issues_list = blocking_issues(blocker_tags) diff --git a/utils.py b/utils.py index 265b2e2..411a7a2 100644 --- a/utils.py +++ b/utils.py @@ -172,7 +172,7 @@ class MonitoringUtils: info_log = f"Creating PR from forks/{username}/{namespace}/{name}" self.print_user(info_log) url = "/".join( - [base_url.rstrip("/"), "api/0", namespace, name, "pull-request/new",] + [base_url.rstrip("/"), "api/0", namespace, name, "pull-request/new"] ) data = { "branch_to": branch, @@ -258,9 +258,7 @@ class MonitoringUtils: "koji", ] if koji_url: - command.extend( - ["-s", koji_url,] - ) + command.extend(["-s", koji_url]) command.extend(["call", "listTags", nevr]) success = False