From 7cef29d843fabce5abab317303e9016c91414913 Mon Sep 17 00:00:00 2001 From: Ondrej Nosek Date: Fri, 24 May 2019 11:21:34 +0200 Subject: [PATCH] Show nvr in container-build JIRA: COMPOSE-3481 Signed-off-by: Ondrej Nosek --- pyrpkg/__init__.py | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py index 291b9ac..0348420 100644 --- a/pyrpkg/__init__.py +++ b/pyrpkg/__init__.py @@ -3036,6 +3036,39 @@ class Commands(object): # Run the command self._run_command(cmd, shell=True) + def _process_koji_task_result(self, task_id): + """ + Parse and modify output from brew/koji containing information about + task (and eventually builds). + + :param int task_id: id of the current task + :return: record containing information about repositories, builds and nvrs + :rtype: dict(str, str) + """ + koji_result = self.kojisession.getTaskResult(task_id) + if not koji_result: + raise rpkgError('Unknown task: %s' % task_id) + koji_builds = koji_result.get("koji_builds", []) + koji_result["koji_builds"] = [] + + for build_id in koji_builds: + try: + build_id = int(build_id) + except ValueError: + raise rpkgError("Can not convert 'build_id' to integer: %s" % build_id) + + bdata = self.kojisession.getBuild(build_id) + if not bdata: + raise rpkgError('Unknown build: %s' % build_id) + nvr = bdata.get("nvr") + if nvr: + koji_result.setdefault("nvrs", []).append(nvr) + + koji_result["koji_builds"].append( + "%s/buildinfo?buildID=%d" % (self.kojiweburl, build_id)) + + return koji_result + def container_build_koji(self, target_override=False, opts={}, kojiconfig=None, kojiprofile=None, build_client=None, @@ -3105,14 +3138,7 @@ class Commands(object): if not nowait: rv = koji_task_watcher(self.kojisession, [task_id]) if rv == 0: - result = self.kojisession.getTaskResult(task_id) - try: - result["koji_builds"] = [ - "%s/buildinfo?buildID=%s" % (self.kojiweburl, - build_id) - for build_id in result.get("koji_builds", [])] - except TypeError: - pass + result = self._process_koji_task_result(task_id) log_result(self.log.info, result) finally: -- 2.20.1