[SCM] build.samba.org - branch master updated
Jelmer Vernooij
jelmer at samba.org
Sun Nov 21 18:50:37 MST 2010
The branch, master has been updated
via c742b9f add cast.
from 57e649e Fix revision .
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit c742b9f991ea32bf4121c9de47cfe65817e716ae
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Mon Nov 22 02:49:51 2010 +0100
add cast.
-----------------------------------------------------------------------
Summary of changes:
buildfarm/sqldb.py | 23 ++++++++++++++++++++---
buildfarm/web/__init__.py | 11 ++++++-----
2 files changed, 26 insertions(+), 8 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildfarm/sqldb.py b/buildfarm/sqldb.py
index bf1d570..e950c72 100644
--- a/buildfarm/sqldb.py
+++ b/buildfarm/sqldb.py
@@ -40,10 +40,27 @@ try:
except ImportError:
import sqlite3
from storm.database import create_database
+from storm.expr import EXPR, FuncExpr, compile
from storm.locals import Bool, Desc, Int, Unicode, RawStr
from storm.store import Store
+class Cast(FuncExpr):
+ __slots__ = ("column", "type")
+ name = "CAST"
+
+ def __init__(self, column, type):
+ self.column = column
+ self.type = type
+
+ at compile.when(Cast)
+def compile_count(compile, cast, state):
+ state.push("context", EXPR)
+ column = compile(cast.column, state)
+ state.pop()
+ return "CAST(%s AS %s)" % (column, cast.type)
+
+
class StormBuild(Build):
__storm_table__ = "build"
@@ -230,9 +247,9 @@ class StormCachingBuildResultStore(BuildResultStore):
StormBuild.compiler == compiler,
]
if revision is not None:
- expr.append(StormBuild.revision == revision)
+ expr.append(Cast(StormBuild.revision, "TEXT") == revision)
if checksum is not None:
- expr.append(StormBuild.checksum == checksum)
+ expr.append(Cast(StormBuild.checksum, "TEXT") == checksum)
result = self.store.find(StormBuild, *expr).order_by(Desc(StormBuild.upload_time))
ret = result.first()
if ret is None:
@@ -278,7 +295,7 @@ class StormCachingBuildFarm(BuildFarm):
return distinct_builds(result.order_by(Desc(StormBuild.upload_time)))
def get_tree_builds(self, tree):
- result = self._get_store().find(StormBuild, StormBuild.tree == tree)
+ result = self._get_store().find(StormBuild, Cast(StormBuild.tree, "TEXT") == tree)
return distinct_builds(result.order_by(Desc(StormBuild.upload_time)))
def get_last_builds(self):
diff --git a/buildfarm/web/__init__.py b/buildfarm/web/__init__.py
index 77f1d1c..8c9aad6 100755
--- a/buildfarm/web/__init__.py
+++ b/buildfarm/web/__init__.py
@@ -118,7 +118,7 @@ def build_status_html(myself, build):
"host": build.host,
"tree": build.tree,
"compiler": build.compiler,
- "checksum": build.log_checksum()
+ "checksum": build.log_checksum(),
}
if build.revision:
params["revision"] = build.revision
@@ -381,7 +381,7 @@ class ViewBuildPage(BuildFarmPage):
def show_oldrevs(self, myself, tree, host, compiler):
"""show the available old revisions, if any"""
- old_builds = self.buildfarm.builds.get_old_builds(tree, host, compiler)
+ old_builds = self.buildfarm.builds.get_old_builds(tree, host, compiler)
if not old_builds:
return
@@ -392,10 +392,11 @@ class ViewBuildPage(BuildFarmPage):
yield "<thead><tr><th>Revision</th><th>Status</th><th>Age</th></tr></thead>\n"
yield "<tbody>\n"
- for build in old_builds:
+ for old_build in old_builds:
yield "<tr><td>%s</td><td>%s</td><td>%s</td></tr>\n" % (
- revision_link(myself, build.revision, tree),
- build_status_html(myself, build), util.dhm_time(build.age))
+ revision_link(myself, old_build.revision, tree),
+ build_status_html(myself, old_build),
+ util.dhm_time(old_build.age))
yield "</tbody></table>\n"
--
build.samba.org
More information about the samba-cvs
mailing list