Hotfix Koschei to work with Pagure 5
See: https://github.com/msimacek/koschei/issues/272
This commit is contained in:
parent
51ccb150d1
commit
fbdc98ca3c
3 changed files with 70 additions and 2 deletions
44
roles/koschei/frontend/files/hotfix_pagure_extras_plugin.py
Normal file
44
roles/koschei/frontend/files/hotfix_pagure_extras_plugin.py
Normal 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))
|
|
@ -52,3 +52,17 @@
|
||||||
tags:
|
tags:
|
||||||
- koschei
|
- koschei
|
||||||
- service
|
- 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
|
||||||
|
|
|
@ -39,9 +39,9 @@ config = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{% if env == 'staging' %}
|
{% if env == 'staging' %}
|
||||||
"plugins": ['pagure', 'copr'],
|
"plugins": ['hotfix_pagure_extras', 'copr'],
|
||||||
{% else %}
|
{% else %}
|
||||||
"plugins": ['pagure'],
|
"plugins": ['hotfix_pagure_extras'],
|
||||||
{% endif %}
|
{% endif %}
|
||||||
"caching": {
|
"caching": {
|
||||||
"pagure": {
|
"pagure": {
|
||||||
|
@ -53,10 +53,20 @@ config = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"hotfix_pagure_extras": {
|
||||||
|
"backend": "dogpile.cache.memcached",
|
||||||
|
"expiration_time": 3600, # 1 hour
|
||||||
|
"arguments": {
|
||||||
|
"url": "memcached01:11211",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"pagure": {
|
"pagure": {
|
||||||
"api_url": "https://src{{ env_suffix }}.fedoraproject.org/api/0",
|
"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": {
|
"frontend": {
|
||||||
"builds_per_page": 8,
|
"builds_per_page": 8,
|
||||||
"auth": {
|
"auth": {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue