From ede5bf34f39d687887535a88beffb73d400a4c5b Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mar 04 2020 13:46:35 +0000 Subject: [PATCH 1/2] Don't use listTagged(tag, *) for untag-build Fixes: https://pagure.io/koji/issue/2037 --- diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py index 11353be..cd248ec 100644 --- a/cli/koji_cli/commands.py +++ b/cli/koji_cli/commands.py @@ -3,6 +3,7 @@ from __future__ import absolute_import, division import ast import fnmatch import hashlib +import itertools import json import logging import os @@ -6608,8 +6609,17 @@ def handle_untag_build(goptions, session, args): builds.append(binfo) seen_pkg[binfo['name']] = 1 else: - tagged = session.listTagged(args[0]) + # find all pkg's builds in tag + pkgs = set([koji.parse_NVR(nvr)['name'] for nvr in args[1:]]) + tagged = [] + with session.multicall() as m: + for pkg in pkgs: + tagged.append(m.listTagged(args[0], package=pkg)) + # flatten + tagged = list(itertools.chain([t.result[0] for t in tagged])) idx = dict([(b['nvr'], b) for b in tagged]) + + # check exact builds builds = [] for nvr in args[1:]: binfo = idx.get(nvr) From c4fcc7fda76ae2c04ef397ebbf1b294599a89022 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mar 04 2020 13:57:00 +0000 Subject: [PATCH 2/2] fix chain iteration Fixes: https://pagure.io/koji/issue/2037 --- diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py index cd248ec..aaf2dad 100644 --- a/cli/koji_cli/commands.py +++ b/cli/koji_cli/commands.py @@ -6616,7 +6616,7 @@ def handle_untag_build(goptions, session, args): for pkg in pkgs: tagged.append(m.listTagged(args[0], package=pkg)) # flatten - tagged = list(itertools.chain([t.result[0] for t in tagged])) + tagged = list(itertools.chain(*[t.result for t in tagged])) idx = dict([(b['nvr'], b) for b in tagged]) # check exact builds