changeset 151:ebf13ea88ff2

Don't removing pending builds when starting/stopping the master. Just reset in-progress builds so that they become pending.
author cmlenz
date Mon, 22 Aug 2005 08:30:45 +0000
parents 553784dccf97
children 56027862f910
files bitten/master.py
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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
Copyright (C) 2012-2017 Edgewall Software