Koji perm_id cache

This commit is contained in:
Neha Prasad
2017-07-07 12:37:17 -04:00
parent 93092a43be
commit 5ff58867f4
3 changed files with 54 additions and 1 deletions

View File

@@ -30,6 +30,7 @@ import tempfile
import glob
import datetime
import time
import dogpile.cache
import random
import string
import kobo.rpmlib
@@ -56,6 +57,7 @@ class KojiModuleBuilder(GenericBuilder):
backend = "koji"
_build_lock = threading.Lock()
newRegion = make_region().configure("dogpile.cache.memory")
@module_build_service.utils.validate_koji_tag('tag_name')
def __init__(self, owner, module, config, tag_name, components):
@@ -90,6 +92,10 @@ class KojiModuleBuilder(GenericBuilder):
return "<KojiModuleBuilder module: %s, tag: %s>" % (
self.module_str, self.tag_name)
@dogpile.cache.memory.cache_on_arguments()
def getPerms(self):
return dict([(p['name'], p['id']) for p in self.koji_session.getAllPerms()])
@module_build_service.utils.retry(wait_on=(IOError, koji.GenericError))
def buildroot_ready(self, artifacts=None):
"""
@@ -598,7 +604,8 @@ chmod 644 %buildroot/%_rpmconfigdir/macros.d/macros.modules
if taginfo['locked']:
raise SystemError("Tag %s: master lock already set. Can't edit tag" % taginfo['name'])
perm_ids = dict([(p['name'], p['id']) for p in self.koji_session.getAllPerms()])
perm_ids = self.getPerms()
if perm not in perm_ids:
raise ValueError("Unknown permissions %s" % perm)