The branch, master has been updated via 20c6f90 Fix age handling. from 7d445b7 Fix tree argument to storm get_last_builds.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 20c6f90f3c3df367d0da520e2aa54f293ee705b8 Author: Jelmer Vernooij <jel...@samba.org> Date: Wed Nov 17 10:26:07 2010 +0100 Fix age handling. ----------------------------------------------------------------------- Summary of changes: buildfarm/data.py | 17 ++++------------- buildfarm/filecache.py | 1 - buildfarm/sqldb.py | 2 +- buildfarm/tests/test_data.py | 10 +--------- buildfarm/web/__init__.py | 14 ++++---------- 5 files changed, 10 insertions(+), 34 deletions(-) Changeset truncated at 500 lines: diff --git a/buildfarm/data.py b/buildfarm/data.py index 2ef40b0..3846e8b 100644 --- a/buildfarm/data.py +++ b/buildfarm/data.py @@ -233,18 +233,9 @@ class Build(object): def remove(self): self.remove_logs() - ################### - # the mtime age is used to determine if builds are still happening - # on a host. - # the ctime age is used to determine when the last real build happened - - def age_mtime(self): - """get the age of build from mtime""" - st = os.stat("%s.log" % self.basename) - return time.time() - st.st_mtime - - def age_ctime(self): - """get the age of build from ctime""" + @property + def age(self): + """get the age of build""" st = os.stat("%s.log" % self.basename) return time.time() - st.st_ctime @@ -401,7 +392,7 @@ class BuildResultStore(object): continue ret.append(self.get_build(tree, host, compiler, rev)) - ret.sort(lambda a, b: cmp(a.age_mtime(), b.age_mtime())) + ret.sort(lambda a, b: cmp(a.age, b.age)) return ret diff --git a/buildfarm/filecache.py b/buildfarm/filecache.py index bd15d5f..0e0823d 100644 --- a/buildfarm/filecache.py +++ b/buildfarm/filecache.py @@ -24,7 +24,6 @@ from buildfarm import ( from buildfarm.data import ( Build, BuildResultStore, - BuildStageResult, BuildStatus, NoSuchBuildError, UploadBuildResultStore, diff --git a/buildfarm/sqldb.py b/buildfarm/sqldb.py index 00b150f..304faa1 100644 --- a/buildfarm/sqldb.py +++ b/buildfarm/sqldb.py @@ -203,7 +203,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.age = build.age new_build.status_str = unicode(build.status().__serialize__()) self.store.add(new_build) return new_build diff --git a/buildfarm/tests/test_data.py b/buildfarm/tests/test_data.py index c96b266..87e8dc9 100755 --- a/buildfarm/tests/test_data.py +++ b/buildfarm/tests/test_data.py @@ -52,14 +52,6 @@ class BuildResultStoreTestBase(object): build = self.x.get_build("tdb", "charis", "cc", "12") self.assertEquals("<%s: revision 12 of tdb on charis using cc>" % build.__class__.__name__, repr(build)) - def test_build_age_mtime(self): - path = self.create_mock_logfile("tdb", "charis", "cc", "12") - # Set mtime to something in the past - os.utime(path, (time.time(), time.time() - 990)) - build = self.x.get_build("tdb", "charis", "cc", "12") - age = build.age_mtime() - self.assertTrue(age >= 990 and age <= 1000, "age was %d" % age) - def test_get_build_nonexistant(self): self.assertRaises(data.NoSuchBuildError, self.x.get_build, "tdb", "charis", "cc", "12") @@ -68,7 +60,7 @@ class BuildResultStoreTestBase(object): path = self.create_mock_logfile("tdb", "charis", "cc", "12") # Set mtime to something in the past build = self.x.get_build("tdb", "charis", "cc", "12") - age = build.age_ctime() + age = build.age self.assertTrue(age >= 0 and age <= 10, "age was %d" % age) def test_read_log(self): diff --git a/buildfarm/web/__init__.py b/buildfarm/web/__init__.py index 5c771c3..7a2bf2a 100755 --- a/buildfarm/web/__init__.py +++ b/buildfarm/web/__init__.py @@ -487,7 +487,6 @@ class ViewBuildPage(BuildFarmPage): cflags = "" config = "" build = self.buildfarm.get_build(tree, host, compiler, rev) - age_mtime = build.age_mtime() try: (revision, revision_time) = build.revision_details() except data.MissingRevisionInfo: @@ -537,7 +536,7 @@ class ViewBuildPage(BuildFarmPage): yield "<tr><td>Uname:</td><td>%s</td></tr>\n" % uname yield "<tr><td>Tree:</td><td>%s</td></tr>\n" % self.tree_link(myself, tree) yield "<tr><td>Build Revision:</td><td>%s</td></tr>\n" % revision_link(myself, revision, tree) - yield "<tr><td>Build age:</td><td><div class='age'>%s</div></td></tr>\n" % self.red_age(age_mtime) + yield "<tr><td>Build age:</td><td><div class='age'>%s</div></td></tr>\n" % self.red_age(build.age) yield "<tr><td>Status:</td><td>%s</td></tr>\n" % status yield "<tr><td>Compiler:</td><td>%s</td></tr>\n" % compiler yield "<tr><td>CFLAGS:</td><td>%s</td></tr>\n" % cflags @@ -615,15 +614,13 @@ class ViewRecentBuildsPage(BuildFarmPage): for build in self.buildfarm.get_last_builds(tree=tree): host = self.buildfarm.hostdb.host(build.host) status = build_status_html(myself, build) - age_mtime = build.age_mtime() - age_ctime = build.age_ctime() try: (revision, revision_time) = build.revision_details() except data.MissingRevisionInfo: pass else: all_builds.append([ - age_ctime, + build.age, host.platform.encode("utf-8"), "<a href='%s?function=View+Host;host=%s;tree=%s;compiler=%s#%s'>%s</a>" % (myself, host.name.encode("utf-8"), @@ -682,14 +679,12 @@ class ViewHostPage(BuildFarmPage): (revision, revision_time) = build.revision_details() except data.MissingRevisionInfo: revision = None - age_mtime = build.age_mtime() - age_ctime = build.age_ctime() warnings = build.err_count() status = build_status_html(myself, build) yield "<tr>" yield "<td><span class='tree'>" + self.tree_link(myself, build.tree) +"</span>/" + build.compiler + "</td>" yield "<td>" + revision_link(myself, revision, build.tree) + "</td>" - yield "<td><div class='age'>" + self.red_age(age_mtime) + "</div></td>" + yield "<td><div class='age'>" + self.red_age(build.age) + "</div></td>" yield "<td><div class='status'>%s</div></td>" % status yield "<td>%s</td>" % warnings yield "</tr>" @@ -735,7 +730,7 @@ class ViewHostPage(BuildFarmPage): for build in builds: yield "%-12s %-10s %-10s %-10s %-10s\n" % ( build.tree.encode("utf-8"), build.compiler.encode("utf-8"), - util.dhm_time(build.age_mtime()), + util.dhm_time(build.age), str(build.status()), build.err_count()) yield "\n" @@ -783,7 +778,6 @@ class ViewSummaryPage(BuildFarmPage): builds = self.buildfarm.get_last_builds() for build in builds: - age_mtime = build.age_mtime() host_count[build.tree]+=1 status = build.status() -- build.samba.org