The branch, master has been updated via 73afd26 Actually use sqldb. from 2641334 Add missing extensions for git repositories.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 73afd267aae1ebbdda438fd57d2ffddfbaa7f71c Author: Jelmer Vernooij <jel...@samba.org> Date: Mon Nov 15 01:51:02 2010 +0100 Actually use sqldb. ----------------------------------------------------------------------- Summary of changes: buildfarm/data.py | 7 +++++++ buildfarm/filecache.py | 4 ++-- buildfarm/sqldb.py | 9 ++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) Changeset truncated at 500 lines: diff --git a/buildfarm/data.py b/buildfarm/data.py index 5c25aab..36c3424 100644 --- a/buildfarm/data.py +++ b/buildfarm/data.py @@ -61,6 +61,13 @@ class BuildStatus(object): else: self.other_failures = set() + def __serialize__(self): + return repr(self) + + @classmethod + def __deserialize__(cls, text): + return eval(text) + def __str__(self): if self.other_failures: return ",".join(self.other_failures) diff --git a/buildfarm/filecache.py b/buildfarm/filecache.py index d9c4a16..bd15d5f 100644 --- a/buildfarm/filecache.py +++ b/buildfarm/filecache.py @@ -100,12 +100,12 @@ class CachingBuild(Build): st2 = None if st2 and st1.st_ctime <= st2.st_mtime: - return eval(util.FileLoad(cachefile)) + return BuildStatus.__deserialize__(util.FileLoad(cachefile)) ret = super(CachingBuild, self).status() if not self._store.readonly: - util.FileSave(cachefile, repr(ret)) + util.FileSave(cachefile, ret.__serialize__()) return ret diff --git a/buildfarm/sqldb.py b/buildfarm/sqldb.py index dc506f0..a2c424a 100644 --- a/buildfarm/sqldb.py +++ b/buildfarm/sqldb.py @@ -23,6 +23,7 @@ from buildfarm import ( from buildfarm.data import ( Build, BuildResultStore, + BuildStatus, NoSuchBuildError, ) from buildfarm.hostdb import ( @@ -55,6 +56,12 @@ class StormBuild(Build): status_str = Unicode(name="status") commit_revision = RawStr() + def status(self): + return BuildStatus.__deserialize__(self.status_str) + + def revision_details(self): + return (self.commit_revision, None) + def log_checksum(self): return self.checksum @@ -192,7 +199,7 @@ class StormCachingBuildResultStore(BuildResultStore): new_build = StormBuild(new_basename, unicode(build.tree), unicode(build.host), unicode(build.compiler), rev) new_build.checksum = build.log_checksum() new_build.age = build.age_mtime() - new_build.status_str = unicode(str(build.status())) + new_build.status_str = unicode(build.status().__serialize__()) self.store.add(new_build) return new_build -- build.samba.org