From 42518169e9b96982dd2036bb46b032a02ca5e95b Mon Sep 17 00:00:00 2001 From: James Antill Date: Nov 14 2024 20:45:15 +0000 Subject: [PATCH 1/2] Move ping maintainers code out of the log parsing loop. --- diff --git a/compose_tracker.py b/compose_tracker.py index 602f735..ca74332 100755 --- a/compose_tracker.py +++ b/compose_tracker.py @@ -328,6 +328,25 @@ class Consumer(object): lines = [] pass + sent_ping = False + def _ping_maintainers(line): + sent_ping = True + if not eln: + maintainers, variant, sub_variant = self.get_maintainers(line, ks_url) or (None, None, None) + else: + maintainers, line = self.get_maintainers('eln', ks_url) or (None, None, None) + if not maintainers: + logger.info("No maintainers info available. The ticket will be filed without pinging any maintainers") + else: + if not eln: + ping_line = f'Variant: {variant}, subvariant: {sub_variant} task failed. Pinging maintainers: ' + else: + ping_line = f'ELN compose has failed. Pinging maintainers: ' + for maintainer in maintainers: + ping_line += f'@{maintainer} ' + content += ping_line + '\n\n' + logger.info(ping_line) + phases = {} for x in range(1, len(lines)): linedate = lines[x-1][:19] # keep only the date for each line @@ -369,21 +388,7 @@ class Consumer(object): if self.config["ks_repo"]: # Ping the maintainers - if not eln: - maintainers, variant, sub_variant = self.get_maintainers(line, ks_url) or (None, None, None) - else: - maintainers, line = self.get_maintainers('eln', ks_url) or (None, None, None) - if not maintainers: - logger.info("No maintainers info available. The ticket will be filed without pinging any maintainers") - else: - if not eln: - ping_line = f'Variant: {variant}, subvariant: {sub_variant} task failed. Pinging maintainers: ' - else: - ping_line = f'ELN compose has failed. Pinging maintainers: ' - for maintainer in maintainers: - ping_line += f'@{maintainer} ' - content += ping_line + '\n\n' - logger.info(ping_line) + _ping_maintainers(line) # If this is the Compose run failed line, then add it # to the description too From 3301404157f52688f2a27511cdc1d2eb84c546ce Mon Sep 17 00:00:00 2001 From: James Antill Date: Nov 14 2024 20:52:27 +0000 Subject: [PATCH 2/2] Make sure ELN gets pings about entire failures. --- diff --git a/compose_tracker.py b/compose_tracker.py index ca74332..61372cd 100755 --- a/compose_tracker.py +++ b/compose_tracker.py @@ -397,6 +397,10 @@ class Consumer(object): content+= f'- Compose run failed because: {text}\n' content+= "```\n%s\n```\n" % (line) + if eln and not sent_ping: # ELN fails as a single unit, so make sure pings happen + ks_url = self.config["ks_repo"] + '/raw/main/f/maintainers.toml' + _ping_maintainers('') + compose_start = dt.datetime.fromisoformat(lines[0][:19]) compose_end = dt.datetime.fromisoformat(lines[-1][:19]) content+= f"Compose Total time: {compose_end - compose_start}\n"