Install koschei-refresh-module script

This commit is contained in:
Mikolaj Izdebski 2017-10-03 14:15:37 +00:00
parent 1403f815f6
commit 7c273efe35
2 changed files with 36 additions and 2 deletions

View file

@ -0,0 +1,31 @@
#!/usr/libexec/koschei/koschei-admin
# Refresh group based on module contents
# Usage: koschei-refresh-module <group-name> <module-name> <module-stream>
import re
import sys
import os
from pdc_client import PDCClient
from koschei import data, backend, plugin
from koschei.config import load_config
import koschei.models as m
# Parse args
group_namespace=None
(_, group_name, module_name, module_stream) = sys.argv
if '/' in group_name:
(group_namespace, group_name) = group_name.split('/')
# Get latest module from PDC
pdc_url = 'https://{0}/rest_api/v1/'.format(os.environ['PDC'])
pdc = PDCClient(pdc_url, develop=True, ssl_verify=True)
modules = pdc['unreleasedvariants'](variant_type='module', variant_name=module_name, variant_version=module_stream, active=True, page_size=-1)
latest_module = sorted(modules, key=lambda mod: mod['variant_release'])[-1]
group_content = [re.match(r'^(.+)-[^-]+-[^-]+\.src.rpm$', rpm).group(1) for rpm in latest_module['rpms'] if rpm.endswith('.src.rpm')]
# Update contents of Koschei group
load_config(['/usr/share/koschei/config.cfg', '/etc/koschei/config-backend.cfg'])
session = backend.KoscheiBackendSession()
group = session.db.query(m.PackageGroup).filter_by(name=group_name, namespace=group_namespace).one()
data.set_group_content(session, group, group_content)
session.db.commit()

View file

@ -100,9 +100,12 @@
- name: Copy refresh-group script
copy: >
src=koschei-refresh-group
dest=/usr/local/bin/koschei-refresh-group
src={{ item }}
dest=/usr/local/bin/{{ item }}
mode=755
with_items:
- koschei-refresh-group
- koschei-refresh-module
tags:
- koschei
- config