# HG changeset patch # User cmlenz # Date 1124699445 0 # Node ID ebf13ea88ff29d1a1d6a589f5650487894daafbc # Parent 553784dccf97d54ec7fe89edd2815c4f4c466267 Don't removing pending builds when starting/stopping the master. Just reset in-progress builds so that they become pending. diff --git a/bitten/master.py b/bitten/master.py --- a/bitten/master.py +++ b/bitten/master.py @@ -118,13 +118,18 @@ return def _cleanup_orphaned_builds(self): - # Remove all pending or in-progress builds + # Reset all in-progress builds db = self.env.get_db_cnx() for build in Build.select(self.env, status=Build.IN_PROGRESS, db=db): build.status = Build.PENDING + build.slave = None + build.slave_info = {} + build.started = 0 + for step in BuildStep.select(self.env, build=build.id): + step.delete(db=db) + for log in BuildLog.select(self.env, build=build.id): + log.delete(db=db) build.update(db=db) - for build in Build.select(self.env, status=Build.PENDING, db=db): - build.delete(db=db) db.commit() def _cleanup_snapshots(self, when): @@ -194,6 +199,8 @@ build.config, handler.name) for step in BuildStep.select(self.env, build=build.id): step.delete(db=db) + for log in BuildLog.select(self.env, build=build.id): + log.delete(db=db) build.slave = None build.slave_info = {} build.status = Build.PENDING