Hotfix Koschei to work with Pagure 5

See: https://github.com/msimacek/koschei/issues/272
This commit is contained in:
Mikolaj Izdebski 2018-11-21 05:25:41 +00:00
parent 51ccb150d1
commit fbdc98ca3c
3 changed files with 70 additions and 2 deletions

View file

@ -0,0 +1,44 @@
# Copyright (C) 2018 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Author: Mikolaj Izdebski <mizdebsk@redhat.com>
import requests
from koschei.config import get_config
from koschei.plugin import listen_event
def get_packages_per_user(session):
session.log.debug("Requesting pagure_owner_alias.json")
req = requests.get(get_config('hotfix_pagure_extras.owner_alias_url'))
if not req.ok:
session.log.info("Failed to get pagure_owner_alias.json, status=%d",
req.status_code)
return {}
pkgs_per_user = {}
for pkg, users in req.json()['rpms'].items():
for user in users:
pkgs_per_user.setdefault(user, []).append(pkg)
return pkgs_per_user
@listen_event('get_user_packages')
def get_user_packages(session, username):
def create():
return get_packages_per_user(session)
pkg_map = session.cache('hotfix_pagure_extras').get_or_create('packages_per_user', create)
return pkg_map.get(str(username))

View file

@ -52,3 +52,17 @@
tags:
- koschei
- service
- name: create directory for hotfix_pagure_extras plugin
file: name=/usr/lib/python3.6/site-packages/koschei/plugins/hotfix_pagure_extras_plugin state=directory
tags:
- koschei
- hotfix
- name: install hotfix_pagure_extras plugin
copy: src=hotfix_pagure_extras_plugin.py dest=/usr/lib/python3.6/site-packages/koschei/plugins/hotfix_pagure_extras_plugin/frontend.py
notify:
- reload httpd
tags:
- koschei
- hotfix

View file

@ -39,9 +39,9 @@ config = {
},
},
{% if env == 'staging' %}
"plugins": ['pagure', 'copr'],
"plugins": ['hotfix_pagure_extras', 'copr'],
{% else %}
"plugins": ['pagure'],
"plugins": ['hotfix_pagure_extras'],
{% endif %}
"caching": {
"pagure": {
@ -53,10 +53,20 @@ config = {
},
},
},
"hotfix_pagure_extras": {
"backend": "dogpile.cache.memcached",
"expiration_time": 3600, # 1 hour
"arguments": {
"url": "memcached01:11211",
},
},
},
"pagure": {
"api_url": "https://src{{ env_suffix }}.fedoraproject.org/api/0",
},
"hotfix_pagure_extras": {
"owner_alias_url": "https://src{{ env_suffix }}.fedoraproject.org/extras/pagure_owner_alias.json",
},
"frontend": {
"builds_per_page": 8,
"auth": {