Mercurial > bitten > bitten-test
changeset 117:2f0f2f006526
Delete build steps when cleaning up pending builds.
author | cmlenz |
---|---|
date | Mon, 08 Aug 2005 08:32:26 +0000 |
parents | 86439c2aa6d6 |
children | 77dd69f7c405 |
files | bitten/master.py bitten/model.py |
diffstat | 2 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/bitten/master.py +++ b/bitten/master.py @@ -191,15 +191,20 @@ for slaves in self.slaves.values(): slaves.discard(handler) + db = self.env.get_db_cnx() for build in Build.select(self.env, slave=handler.name, - status=Build.IN_PROGRESS): + status=Build.IN_PROGRESS, db=db): log.info('Build [%s] of "%s" by %s cancelled', build.rev, build.config, handler.name) + for step in BuildStep.select(self.env, build=build.id): + step.delete(db=db) build.slave = None + build.slave_info = {} build.status = Build.PENDING build.started = 0 - build.update() + build.update(db=db) break + db.commit() log.info('Unregistered slave "%s"', handler.name)
--- a/bitten/model.py +++ b/bitten/model.py @@ -360,9 +360,10 @@ (self.slave or '', self.started or 0, self.stopped or 0, self.status, self.id)) cursor.execute("DELETE FROM bitten_slave WHERE build=%s", (self.id,)) - cursor.executemany("INSERT INTO bitten_slave VALUES (%s,%s,%s)", - [(self.id, name, value) for name, value - in self.slave_info.items()]) + if self.slave_info: + cursor.executemany("INSERT INTO bitten_slave VALUES (%s,%s,%s)", + [(self.id, name, value) for name, value + in self.slave_info.items()]) if handle_ta: db.commit() @@ -377,7 +378,7 @@ if not row: return None - build = Build(env, id=id, config=row[0], rev=row[1], + build = Build(env, id=int(id), config=row[0], rev=row[1], rev_time=int(row[2]), platform=int(row[3]), slave=row[4], started=row[5] and int(row[5]) or 0, stopped=row[6] and int(row[6]) or 0, status=row[7])