Skip to content

Commit ae61827

Browse files
committed
[get_versions] add get_versions participant
Signed-off-by: David Greaves <david.greaves@jolla.com>
1 parent 10cf638 commit ae61827

3 files changed

Lines changed: 69 additions & 0 deletions

File tree

conf/supervisor/get_versions.conf

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[program:get_userdata]
2+
command = /usr/bin/skynet_exo /etc/supervisor/conf.d/get_versions.conf
3+
process_name = %(program_name)s_%(process_num)s
4+
numprocs = 1
5+
user = bossmaintainer
6+
umask = 022
7+
autostart = true
8+
autorestart = true
9+
startsecs = 5
10+
startretries = 100
11+
stopwaitsecs = 10
12+
redirect_stderr = true
13+
stdout_logfile = /var/log/supervisor/%(program_name)s_%(process_num)s.log
14+
stderr_logfile = off
15+
environment = PYTHONUNBUFFERED=1,HOME="/home/bossmaintainer",USER="bossmaintainer"
16+
17+
[participant]
18+
name = get_versions
19+
queue = get_versions
20+
regexp = get_versions
21+
code = /usr/share/boss-skynet/get_versions.py
22+

participants/get_versions.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from rpmUtils.miscutils import splitFilename
2+
from boss.obs import BuildServiceParticipant, RepositoryMixin
3+
4+
5+
class ParticipantHandler(BuildServiceParticipant, RepositoryMixin):
6+
"""Participant class as defined in SkyNET API."""
7+
8+
def __init__(self):
9+
"""Initializator."""
10+
11+
BuildServiceParticipant.__init__(self)
12+
13+
def handle_wi_control(self, ctrl):
14+
"""Control job thread."""
15+
pass
16+
17+
@BuildServiceParticipant.get_oscrc
18+
def handle_lifecycle_control(self, ctrl):
19+
"""Control participant thread."""
20+
pass
21+
22+
@BuildServiceParticipant.setup_obs
23+
def handle_wi(self, wid):
24+
"""Handle workitem."""
25+
if not wid.fields.versions:
26+
return
27+
versions = wid.fields.versions.as_dict()
28+
for pkg, d in versions.items():
29+
target = "%s/%s" % (d["repository"], d["arch"])
30+
31+
for binary in self.obs.getBinaryList(d["project"], target, pkg):
32+
n, v, r, e, a = splitFilename(binary)
33+
if n != d.get("binary", pkg):
34+
continue
35+
bininfo = self.obs.getBinaryInfo(d["project"],
36+
target, pkg, binary)
37+
versions[pkg].update({"version": v,
38+
"release": r.split("."),
39+
"epoch": e,
40+
"arch": a,
41+
"summary": bininfo["summary"],
42+
"description": bininfo["description"]})
43+
44+
wid.fields.versions = versions

rpm/boss-standard-workflow.spec

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ if [ $1 -ge 1 ] ; then
414414
setup_build_trial
415415
remove_build_trial
416416
get_build_results
417+
get_versions
417418
trigger_broken"
418419
skynet reload $PARTS || true
419420
fi
@@ -424,6 +425,7 @@ fi
424425
%{_datadir}/boss-skynet/do_revert_trial.py
425426
%{_datadir}/boss-skynet/get_build_trial_results.py
426427
%{_datadir}/boss-skynet/get_build_results.py
428+
%{_datadir}/boss-skynet/get_versions.py
427429
%{_datadir}/boss-skynet/trigger_broken.py
428430
%{_datadir}/boss-skynet/is_repo_published.py
429431
%{_datadir}/boss-skynet/setup_build_trial.py
@@ -432,6 +434,7 @@ fi
432434
%config(noreplace) %{svdir}/do_revert_trial.conf
433435
%config(noreplace) %{svdir}/get_build_trial_results.conf
434436
%config(noreplace) %{svdir}/get_build_results.conf
437+
%config(noreplace) %{svdir}/get_versions.conf
435438
%config(noreplace) %{svdir}/trigger_broken.conf
436439
%config(noreplace) %{svdir}/is_repo_published.conf
437440
%config(noreplace) %{svdir}/setup_build_trial.conf

0 commit comments

Comments
 (0)