The branch, master has been updated via 92dcfd6 Use sqlite backed buildfarm in import-and-analyse. via 64392cb Add sql caching buildfarm. from ba21c21 Use commit_revision rather revision.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 92dcfd6261517d1972952b8e674f0ae0975fc63f Author: Jelmer Vernooij <jel...@samba.org> Date: Sat Nov 13 00:32:59 2010 +0100 Use sqlite backed buildfarm in import-and-analyse. commit 64392cb86d34dadeb1329b4c4419229b5ad96c91 Author: Jelmer Vernooij <jel...@samba.org> Date: Sat Nov 13 00:30:57 2010 +0100 Add sql caching buildfarm. ----------------------------------------------------------------------- Summary of changes: buildfarm/__init__.py | 19 +++++++++++++++++++ buildfarm/tests/__init__.py | 5 +++++ buildfarm/tests/test_buildfarm.py | 9 +++++++++ import-and-analyse.py | 5 ++--- 4 files changed, 35 insertions(+), 3 deletions(-) Changeset truncated at 500 lines: diff --git a/buildfarm/__init__.py b/buildfarm/__init__.py index 822dc1f..6b44309 100644 --- a/buildfarm/__init__.py +++ b/buildfarm/__init__.py @@ -20,6 +20,7 @@ import ConfigParser import os import re +import sqlite3 class Tree(object): @@ -187,6 +188,24 @@ class CachingBuildFarm(BuildFarm): return perc +class SQLCachingBuildFarm(BuildFarm): + + def __init__(self, path=None, db=None): + self.db = db + super(SQLCachingBuildFarm, self).__init__(path) + + def _get_db(self): + if self.db is not None: + return self.db + else: + return sqlite3.connect(os.path.join(self.path, "hostdb.sqlite")) + + def _open_build_results(self): + from buildfarm import data + return data.SQLCachingBuildResultStore(os.path.join(self.path, "data", "oldrevs"), + self.db) + + def setup_db(db): db.executescript(""" CREATE TABLE IF NOT EXISTS host (name text, owner text, owner_email text, password text, ssh_access int, fqdn text, platform text, permission text, last_dead_mail int, join_time int); diff --git a/buildfarm/tests/__init__.py b/buildfarm/tests/__init__.py index 65912f8..046d1fa 100644 --- a/buildfarm/tests/__init__.py +++ b/buildfarm/tests/__init__.py @@ -15,7 +15,9 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +from buildfarm import setup_db import os +import sqlite3 from testtools import TestCase import shutil import tempfile @@ -72,6 +74,9 @@ class BuildFarmTestCase(TestCase): for subdir in ["data", "data/upload", "data/oldrevs", "cache", "web", "lcov", "lcov/data"]: os.mkdir(os.path.join(self.path, subdir)) + db = sqlite3.connect(os.path.join(self.path, "hostdb.sqlite")) + setup_db(db) + def tearDown(self): shutil.rmtree(self.path) super(BuildFarmTestCase, self).tearDown() diff --git a/buildfarm/tests/test_buildfarm.py b/buildfarm/tests/test_buildfarm.py index 02eda60..2927f72 100644 --- a/buildfarm/tests/test_buildfarm.py +++ b/buildfarm/tests/test_buildfarm.py @@ -18,6 +18,7 @@ from buildfarm import ( BuildFarm, CachingBuildFarm, + SQLCachingBuildFarm, data, read_trees_from_conf, ) @@ -126,3 +127,11 @@ class CachingBuildFarmTests(BuildFarmTestBase, BuildFarmTestCase): BuildFarmTestCase.setUp(self) BuildFarmTestBase.setUp(self) self.x = CachingBuildFarm(self.path) + + +class SQLCachingBuildFarmTests(BuildFarmTestBase, BuildFarmTestCase): + + def setUp(self): + BuildFarmTestCase.setUp(self) + BuildFarmTestBase.setUp(self) + self.x = SQLCachingBuildFarm(self.path) diff --git a/import-and-analyse.py b/import-and-analyse.py index d88d42c..726407e 100755 --- a/import-and-analyse.py +++ b/import-and-analyse.py @@ -11,7 +11,7 @@ on recent commits. """ from buildfarm import ( - BuildFarm, + SQLCachingBuildFarm, data, ) from email.mime.text import MIMEText @@ -25,8 +25,7 @@ parser.add_option("--verbose", help="Be verbose", action="count") (opts, args) = parser.parse_args() -# we open readonly here as only apache(www-run) has write access -buildfarm = BuildFarm() +buildfarm = SQLCachingBuildFarm() smtp = smtplib.SMTP() smtp.connect() -- build.samba.org