From 7c273efe3553af1112322a3c75321ae51abbf998 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Tue, 3 Oct 2017 14:15:37 +0000 Subject: [PATCH] Install koschei-refresh-module script --- .../backend/files/koschei-refresh-module | 31 +++++++++++++++++++ roles/koschei/backend/tasks/main.yml | 7 +++-- 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100755 roles/koschei/backend/files/koschei-refresh-module diff --git a/roles/koschei/backend/files/koschei-refresh-module b/roles/koschei/backend/files/koschei-refresh-module new file mode 100755 index 0000000000..d4bc9b381d --- /dev/null +++ b/roles/koschei/backend/files/koschei-refresh-module @@ -0,0 +1,31 @@ +#!/usr/libexec/koschei/koschei-admin +# Refresh group based on module contents +# Usage: koschei-refresh-module + +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() diff --git a/roles/koschei/backend/tasks/main.yml b/roles/koschei/backend/tasks/main.yml index 0473d9726f..d80aba88b5 100644 --- a/roles/koschei/backend/tasks/main.yml +++ b/roles/koschei/backend/tasks/main.yml @@ -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