[SCM] build.samba.org - branch master updated
Matthieu Patou
mat at samba.org
Fri Nov 5 16:28:11 MDT 2010
The branch, master has been updated
via 2b9b526 Fix a bug
via 5c85dfd Make status easily marshallable and extensible, use the new format
from 5fc89e9 try to force buildsamba02 to do what we want
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 2b9b526a47a334e37bb5e40d6c07f7e9a998f548
Author: Matthieu Patou <mat at matws.net>
Date: Sat Nov 6 01:28:13 2010 +0300
Fix a bug
commit 5c85dfda386f72ba2bc7714d9ae71e05e353bd21
Author: Matthieu Patou <mat at matws.net>
Date: Sat Nov 6 01:27:54 2010 +0300
Make status easily marshallable and extensible, use the new format
-----------------------------------------------------------------------
Summary of changes:
buildfarm/data.py | 37 ++++++++++++++++++++++++++++++++++---
web/build.py | 9 +++++++--
2 files changed, 41 insertions(+), 5 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildfarm/data.py b/buildfarm/data.py
index 0593923..e2502d2 100644
--- a/buildfarm/data.py
+++ b/buildfarm/data.py
@@ -86,7 +86,8 @@ def build_status_from_logs(log, err):
else:
sstatus = None
- return ((cstatus, bstatus, istatus, tstatus, sstatus), other_failures)
+ return {"config": cstatus, "build": bstatus, "install": istatus,\
+ "test": tstatus, "checker": sstatus, "other": other_failures}
def lcov_extract_percentage(text):
@@ -261,6 +262,34 @@ class CachingBuild(Build):
return ret
+ def unmarshall_status(self, cnt):
+ tab = cnt.split('\n')
+ hash = {}
+ for l in tab:
+ tab2 = l.split(':', 1)
+ if tab2[0] == "other":
+ tab3 = []
+ if len(tab2) > 1:
+ tab3 = tab2[1].split('%')
+ hash[tab2[0]] = tab3
+ else:
+ if tab2[1] == "None":
+ hash[tab2[0]] = tab2[1]
+ else:
+ hash[tab2[0]] = None
+
+ return hash
+
+ def marshall_status(self, val):
+ tab = []
+ for k in val.keys():
+ if k != "other":
+ tab.append("%s:%s" % (k, val[k]))
+ else:
+ tab.append("%s:%s" % (k, "%".join(val[k])))
+
+ return "\n".join(tab)
+
def status(self):
file = self._store.build_fname(self.tree, self.host, self.compiler, self.rev)
cachefile = self._store.cache_fname(self.tree, self.host, self.compiler, self.rev)+".status"
@@ -274,12 +303,14 @@ class CachingBuild(Build):
st2 = None
if st2 and st1.st_ctime <= st2.st_mtime:
- return util.FileLoad(cachefile)
+ cnt = util.FileLoad(cachefile)
+ return self.unmarshall_status(cnt)
ret = super(CachingBuild, self).status()
if not self._store.readonly:
- util.FileSave(cachefile, ret)
+ cnt = self.marshall_status(ret)
+ util.FileSave(cachefile, cnt)
return ret
diff --git a/web/build.py b/web/build.py
index e31871d..399e005 100755
--- a/web/build.py
+++ b/web/build.py
@@ -79,7 +79,12 @@ def build_link(myself, tree, host, compiler, rev, status):
def html_build_status(status):
- ((cstatus, bstatus, istatus, tstatus, sstatus), other_failures) = status
+ cstatus = status.get("config")
+ bstatus = status.get("build")
+ istatus = status.get("install")
+ tstatus = status.get("test")
+ sstatus = status.get("checker")
+ other_failures = status.get("other")
def span(classname, contents):
return "<span class=\"%s\">%s</span>" % (classname, contents)
@@ -98,7 +103,7 @@ def html_build_status(status):
if "timeout" in other_failures:
ostatus += "/"+span("status failed", "timeout")
if sstatus is not None:
- ostatus += "/".span("status checker", sstatus)
+ ostatus += "/"+span("status checker", sstatus)
return "%s/%s/%s/%s%s" % (span_status(cstatus), span_status(bstatus), span_status(istatus), span_status(tstatus), ostatus)
--
build.samba.org
More information about the samba-cvs
mailing list