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