# HG changeset patch # User cmlenz # Date 1187349343 0 # Node ID 6d5ac24061dc2fde9b62e882390904106e5bf6d1 # Parent cfbc9ee622d539458a040b31fbe7ebcef42a7e59 Fix build queue population compatiblity with Trac 0.11, where revision timestamps are `datetime` objects. diff --git a/bitten/model.py b/bitten/model.py --- a/bitten/model.py +++ b/bitten/model.py @@ -408,9 +408,9 @@ cursor.execute("INSERT INTO bitten_build (config,rev,rev_time,platform," "slave,started,stopped,status) " "VALUES (%s,%s,%s,%s,%s,%s,%s,%s)", - (self.config, self.rev, self.rev_time, self.platform, - self.slave or '', self.started or 0, self.stopped or 0, - self.status)) + (self.config, self.rev, int(self.rev_time), + self.platform, self.slave or '', self.started or 0, + self.stopped or 0, self.status)) self.id = db.get_last_id(cursor, 'bitten_build') if self.slave_info: cursor.executemany("INSERT INTO bitten_slave VALUES (%s,%s,%s)", diff --git a/bitten/queue.py b/bitten/queue.py --- a/bitten/queue.py +++ b/bitten/queue.py @@ -19,6 +19,7 @@ platforms. """ +from datetime import datetime from itertools import ifilter import logging import re @@ -214,11 +215,18 @@ self.log.info('Enqueuing build of configuration "%s" at ' 'revision [%s] on %s', config.name, rev, platform.name) + + rev_time = repos.get_changeset(rev).date + if isinstance(rev_time, datetime): # Trac>=0.11 + from trac.util.datefmt import to_timestamp + rev_time = to_timestamp(rev_time) + build = Build(self.env, config=config.name, platform=platform.id, rev=str(rev), - rev_time=repos.get_changeset(rev).date) + rev_time=rev_time) builds.append(build) break + if not self.build_all: self.log.debug('Ignoring older revisions for configuration ' '%r', config.name) diff --git a/bitten/web_ui.py b/bitten/web_ui.py --- a/bitten/web_ui.py +++ b/bitten/web_ui.py @@ -197,7 +197,7 @@ in_progress_builds = Build.select(self.env, config=config.name, status=Build.IN_PROGRESS, db=db) - + # sort correctly by revision. builds = list(in_progress_builds) builds.sort(lambda x, y: int(y.rev) - int(x.rev)) @@ -212,7 +212,7 @@ req.hdf[prefix2 + '.rev_href'] = self.env.href.changeset(rev) platform = TargetPlatform.fetch(self.env, build.platform) req.hdf[prefix2 + '.platform'] = platform.name - + for step in BuildStep.select(self.env, build=build.id, db=db): req.hdf['%s.steps.%s' % (prefix2, step.name)] = { 'description': step.description, @@ -220,7 +220,8 @@ datetime.fromtimestamp(step.started), 'failed': not step.successful, 'errors': step.errors, - 'href': req.hdf[prefix2 + '.href'] + '#step_' + step.name } + 'href': req.hdf[prefix2 + '.href'] + '#step_' + step.name + } current_builds = current_builds + 1