1
1
#!/usr/bin/env python
2
2
3
3
import os
4
- import re
5
- from multiprocessing .pool import ThreadPool
6
- from subprocess import check_output
7
4
5
+ import koji
8
6
import requests
9
7
10
- # export VER=8.2; for t in incoming ci testing candidates lab; do echo "\*\*\* v$VER-$t \*\*\*"; koji list-tagged v$VER-$t; echo; done
11
-
12
8
def print_header (out ):
13
9
print ('''
14
10
<!DOCTYPE html>
@@ -78,6 +74,11 @@ def print_table_line(out, build, link, issues, by):
78
74
</tr>
79
75
''' , file = out )
80
76
77
+ # open koji session
78
+ config = koji .read_config ("koji" )
79
+ session = koji .ClientSession ('https://kojihub.xcp-ng.org' , config )
80
+ session .ssl_login (config ['cert' ], None , config ['serverca' ])
81
+
81
82
# load the issues from plane, so we can search for the plane card related to a build
82
83
resp = requests .get ('https://project.vates.tech/api/v1/workspaces/vates-global/projects/43438eec-1335-4fc2-8804-5a4c32f4932d/issues/' ,
83
84
headers = {'x-api-key' : os .environ ['PLANE_TOKEN' ]})
@@ -88,17 +89,9 @@ def print_table_line(out, build, link, issues, by):
88
89
tags = [f'v{ v } -{ p } ' for v in ['8.2' , '8.3' ] for p in ['incoming' , 'ci' , 'testing' , 'candidates' , 'lab' ]]
89
90
for tag in tags :
90
91
print_table_header (out , tag )
91
- koji_output = check_output (['koji' , 'list-tagged' , '--quiet' , tag ]).decode ('utf8' )
92
- builds = [line .split () for line in koji_output .splitlines ()]
93
- with ThreadPool () as p :
94
- build_info_outputs = p .map (lambda b : check_output (['koji' , 'buildinfo' , b [0 ]]).decode ('utf8' ), builds )
95
- for build_info_output in build_info_outputs :
96
- kv_lines = [line .split (': ' ) for line in build_info_output .splitlines ()]
97
- build_info = dict (kv for kv in kv_lines if len (kv ) == 2 )
98
- id = re .search (r'\[(.+)\]' , build_info ['BUILD' ]).group (1 )
99
- build_url = f'https://koji.xcp-ng.org/buildinfo?buildID={ id } '
92
+ for build in session .listTagged (tag ):
93
+ build_url = f'https://koji.xcp-ng.org/buildinfo?buildID={ build ['build_id' ]} '
100
94
build_issues = [i for i in project_issues ['results' ] if f'href="{ build_url } "' in i ['description_html' ]]
101
- print_table_line (out , build_info ['BUILD' ].split ()[0 ], build_url ,
102
- build_issues , build_info ['Built by' ])
95
+ print_table_line (out , build ['nvr' ], build_url , build_issues , build ['owner_name' ])
103
96
print_table_footer (out )
104
97
print_footer (out )
0 commit comments