From 39362a03f3a11e3919af221027672ffca5125d45 Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Thu, 19 Mar 2015 16:42:18 +0100 Subject: [PATCH] refactor common functions into ReviewBot --- ReviewBot.py | 31 +++++++++++++++++++++++++++++++ check_source_in_factory.py | 28 +--------------------------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/ReviewBot.py b/ReviewBot.py index a0ca3491..a746386a 100644 --- a/ReviewBot.py +++ b/ReviewBot.py @@ -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' } diff --git a/check_source_in_factory.py b/check_source_in_factory.py index 4088b619..6f7c2638 100755 --- a/check_source_in_factory.py +++ b/check_source_in_factory.py @@ -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)