From: Jelmer Vernooij Date: Tue, 30 Nov 2010 11:37:57 +0000 (+0100) Subject: Add get_by_checksum function. X-Git-Url: http://git.samba.org/samba.git/?p=amitay%2Fbuild-farm.git;a=commitdiff_plain;h=d3b7257f162f8a87812aff251deb6ac4f17e1583 Add get_by_checksum function. --- diff --git a/buildfarm/sqldb.py b/buildfarm/sqldb.py index bc1328f..c6c40f1 100644 --- a/buildfarm/sqldb.py +++ b/buildfarm/sqldb.py @@ -177,9 +177,19 @@ class StormCachingBuildResultStore(BuildResultStore): self.store = store + def get_by_checksum(self, checksum): + result = self.store.find(StormBuild, Cast(StormBuild.checksum, "TEXT") == checksum) + ret = result.one() + if ret is None: + raise NoSuchBuildError(None, None, None, None) + return ret + def __contains__(self, build): - return not (self.store.find(StormBuild, - Cast(StormBuild.checksum, "TEXT") == build.log_checksum()).is_empty()) + try: + self.get_by_checksum(build.log_checksum()) + return True + except NoSuchBuildError: + return False def get_previous_revision(self, tree, host, compiler, revision): result = self.store.find(StormBuild,