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:
|
||||
- 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
|
||||
|
|
|
@ -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": {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue