From 2d17c000ca7a24eb5cae49cf12dd14ad4eaa21fc Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mar 28 2017 09:46:47 +0000 Subject: multi-volume support for buildNotification --- diff --git a/builder/kojid b/builder/kojid index 78cb2ce..f76da1c 100755 --- a/builder/kojid +++ b/builder/kojid @@ -4601,15 +4601,25 @@ Build Info: %(weburl)s/buildinfo?buildID=%(build_id)i\r if not result: result = 'Unknown' - files = self.session.listTaskOutput(task_id) - logs = [filename for filename in files if filename.endswith('.log')] - rpms = [filename for filename in files if filename.endswith('.rpm') and not filename.endswith('.src.rpm')] - srpms = [filename for filename in files if filename.endswith('.src.rpm')] - misc = [filename for filename in files if filename not in logs + rpms + srpms] + logs, rpms, srpms, misc = [], [], [], [] + files_data = self.session.listTaskOutput(task_id) + for filename in files_data: + if filename.endswith('.log'): + logs += [(filename, volume) for volume in files_data[filename]] + # all rpms + srpms are expected to be in builddir + elif filename.endswith('.src.rpm'): + srpms.append(filename) + elif filename.endswith('.rpm'): + rpms.append(filename) + else: + misc += [(filename, volume) for volume in files_data[filename]] - logs.sort() + # sort by volumes and filenames + logs.sort(key=lambda x: x[1]) + misc.sort(key=lambda x: x[1]) + logs.sort(key=lambda x: x[0]) + misc.sort(key=lambda x: x[0]) rpms.sort() - misc.sort() data[task_id] = {} data[task_id]['id'] = taskinfo['id'] @@ -4705,16 +4715,16 @@ Build Info: %(weburl)s/buildinfo?buildID=%(build_id)i\r for filetype in ['logs', 'rpms', 'misc']: if task[filetype]: output += "%s:\r\n" % filetype - for file in task[filetype]: + for (file, volume) in task[filetype]: if filetype == 'rpms': output += " %s\r\n" % '/'.join([buildurl, task['build_arch'], file]) elif filetype == 'logs': if tasks[task_state] != 'closed': - output += " %s/getfile?taskID=%s&name=%s\r\n" % (weburl, task['id'], file) + output += " %s/getfile?taskID=%s&name=%s&volume=%s\r\n" % (weburl, task['id'], file, volume) else: output += " %s\r\n" % '/'.join([buildurl, 'data', 'logs', task['build_arch'], file]) elif task[filetype] == 'misc': - output += " %s/getfile?taskID=%s&name=%s\r\n" % (weburl, task['id'], file) + output += " %s/getfile?taskID=%s&name=%s&volume=%s\r\n" % (weburl, task['id'], file, volume) output += "\r\n" output += "\r\n"