refactor common functions into ReviewBot

This commit is contained in:
Ludwig Nussel 2015-03-19 16:42:18 +01:00
parent 938b0359bc
commit 39362a03f3
2 changed files with 32 additions and 27 deletions

View File

@ -145,6 +145,37 @@ class ReviewBot(object):
overall = ret
return overall
def check_action_maintenance_incident(self, req, a):
rev = self._get_verifymd5(a.src_project, a.src_package, a.src_rev)
return self.check_source_submission(a.src_project, a.src_package, rev, a.tgt_releaseproject, a.src_package)
def check_action_maintenance_release(self, req, a):
pkgname = a.src_package
if pkgname == 'patchinfo':
return None
linkpkg = self._get_linktarget_self(a.src_project, pkgname)
if linkpkg is not None:
pkgname = linkpkg
# packages in maintenance have links to the target. Use that
# to find the real package name
(linkprj, linkpkg) = self._get_linktarget(a.src_project, pkgname)
if linkpkg is None or linkprj is None or linkprj != a.tgt_project:
self.logger.error("%s/%s is not a link to %s"%(a.src_project, pkgname, a.tgt_project))
return False
else:
pkgname = linkpkg
src_rev = self._get_verifymd5(a.src_project, a.src_package)
return self.check_source_submission(a.src_project, a.src_package, src_rev, a.tgt_project, pkgname)
def check_action_submit(self, req, a):
rev = self._get_verifymd5(a.src_project, a.src_package, a.src_rev)
return self.check_source_submission(a.src_project, a.src_package, rev, a.tgt_project, a.tgt_package)
def check_source_submission(self, src_project, src_package, src_rev, target_project, target_package):
""" default implemention does nothing """
self.logger.info("%s/%s@%s -> %s/%s"%(src_project, src_package, src_rev, target_project, target_package))
return None
# XXX used in other modules
def _get_verifymd5(self, src_project, src_package, rev=None):
query = { 'view': 'info' }

View File

@ -51,33 +51,7 @@ class FactorySourceChecker(ReviewBot.ReviewBot):
ReviewBot.ReviewBot.__init__(self, *args, **kwargs)
self.review_messages = { 'accepted' : 'ok', 'declined': 'the package needs to be accepted in Factory first' }
def check_action_maintenance_incident(self, req, a):
rev = self._get_verifymd5(a.src_project, a.src_package, a.src_rev)
return self._check_package(a.src_project, a.src_package, rev, a.tgt_releaseproject, a.src_package)
def check_action_maintenance_release(self, req, a):
pkgname = a.src_package
if pkgname == 'patchinfo':
return None
linkpkg = self._get_linktarget_self(a.src_project, pkgname)
if linkpkg is not None:
pkgname = linkpkg
# packages in maintenance have links to the target. Use that
# to find the real package name
(linkprj, linkpkg) = self._get_linktarget(a.src_project, pkgname)
if linkpkg is None or linkprj is None or linkprj != a.tgt_project:
self.logger.error("%s/%s is not a link to %s"%(a.src_project, pkgname, a.tgt_project))
return False
else:
pkgname = linkpkg
src_rev = self._get_verifymd5(a.src_project, a.src_package)
return self._check_package(a.src_project, a.src_package, src_rev, a.tgt_project, pkgname)
def check_action_submit(self, req, a):
rev = self._get_verifymd5(a.src_project, a.src_package, a.src_rev)
return self._check_package(a.src_project, a.src_package, rev, a.tgt_package, a.tgt_package)
def _check_package(self, src_project, src_package, src_rev, target_project, target_package):
def check_source_submission(self, src_project, src_package, src_rev, target_project, target_package):
self.logger.info("%s/%s@%s -> %s/%s"%(src_project, src_package, src_rev, target_project, target_package))
good = self._check_factory(src_rev, target_package)