[SCM] build.samba.org - branch master updated
Jelmer Vernooij
jelmer at samba.org
Sat Nov 13 10:17:42 MST 2010
The branch, master has been updated
via 8ceda4d Skip duplicate builds.
from d5fc97f Don't kill upload builds just yet, improve verboseness.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 8ceda4d45a24ece957e9de77f20052da37f8c2cc
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sat Nov 13 18:17:36 2010 +0100
Skip duplicate builds.
-----------------------------------------------------------------------
Summary of changes:
buildfarm/data.py | 12 ++++++++++++
buildfarm/sqldb.py | 12 ++++++++++--
import-and-analyse.py | 5 ++++-
3 files changed, 26 insertions(+), 3 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildfarm/data.py b/buildfarm/data.py
index bc0eac9..10966f4 100644
--- a/buildfarm/data.py
+++ b/buildfarm/data.py
@@ -331,6 +331,18 @@ class BuildResultStore(object):
"""
self.path = path
+ def __contains__(self, build):
+ try:
+ if build.revision:
+ rev = build.revision
+ else:
+ rev, timestamp = build.revision_details()
+ self.get_build(build.tree, build.host, build.compiler, rev)
+ except NoSuchBuildError:
+ return False
+ else:
+ return True
+
def get_build(self, tree, host, compiler, rev):
basename = self.build_fname(tree, host, compiler, rev)
logf = "%s.log" % basename
diff --git a/buildfarm/sqldb.py b/buildfarm/sqldb.py
index 5ab71df..d975b77 100644
--- a/buildfarm/sqldb.py
+++ b/buildfarm/sqldb.py
@@ -55,6 +55,9 @@ class StormBuild(Build):
status = Unicode()
commit_revision = RawStr()
+ def log_checksum(self):
+ return self.checksum
+
def remove(self):
super(StormBuild, self).remove()
Store.of(self).remove(self)
@@ -136,6 +139,9 @@ class StormCachingBuildResultStore(BuildResultStore):
self.store = store
+ def __contains__(self, build):
+ return (self._get_by_checksum(build) is not None)
+
def get_previous_revision(self, tree, host, compiler, revision):
result = self.store.find(StormBuild,
StormBuild.tree == unicode(tree),
@@ -169,9 +175,11 @@ class StormCachingBuildResultStore(BuildResultStore):
raise NoSuchBuildError(tree, host, compiler)
return build.revision
+ def _get_by_checksum(self, build):
+ return self.store.find(StormBuild, StormBuild.checksum == build.log_checksum()).one()
+
def upload_build(self, build):
- result = self.store.find(StormBuild, StormBuild.checksum == build.log_checksum())
- existing_build = result.one()
+ existing_build = self._get_by_checksum(build)
if existing_build is not None:
# Already present
assert build.tree == existing_build.tree
diff --git a/import-and-analyse.py b/import-and-analyse.py
index a1cb47f..dcfcec6 100755
--- a/import-and-analyse.py
+++ b/import-and-analyse.py
@@ -86,8 +86,11 @@ for build in buildfarm.get_new_builds():
if opts.verbose >= 2:
print "Processing %s..." % build,
+ if build in buildfarm.builds:
+ continue
+
if not opts.dry_run:
- buildfarm.builds.upload_build(build)
+ build = buildfarm.builds.upload_build(build)
(rev, rev_timestamp) = build.revision_details()
--
build.samba.org
More information about the samba-cvs
mailing list