]> git.decadent.org.uk Git - dak.git/blobdiff - dak/clean_suites.py
Merge commit 'mhy/master' into merge
[dak.git] / dak / clean_suites.py
index d0efdcc9d5f9d09df9da2cf9f6cffaa5c43ff3b1..99f0c8b4629162018a54936baf381814a4edd3da 100755 (executable)
@@ -163,6 +163,8 @@ def check_files(now_date, delete_date, max_delete, session):
 SELECT id, filename FROM files f
   WHERE NOT EXISTS (SELECT 1 FROM binaries b WHERE b.file = f.id)
     AND NOT EXISTS (SELECT 1 FROM dsc_files df WHERE df.file = f.id)
+    AND NOT EXISTS (SELECT 1 FROM changes_pool_files cpf WHERE cpf.fileid = f.id)
+    AND NOT EXISTS (SELECT 1 FROM queue_files qf WHERE qf.id = f.id)
     AND last_used IS NULL
     ORDER BY filename""")
 
@@ -336,7 +338,7 @@ def clean_queue_build(now_date, delete_date, max_delete, session):
     our_delete_date = now_date - timedelta(seconds = int(cnf["Clean-Suites::QueueBuildStayOfExecution"]))
     count = 0
 
-    for qf in session.query(QueueBuild).filter(QueueBuild.last_used <= our_delete_date):
+    for qf in session.query(BuildQueueFile).filter(BuildQueueFile.last_used <= our_delete_date):
         if not os.path.exists(qf.filename):
             utils.warn("%s (from queue_build) doesn't exist." % (qf.filename))
             continue
@@ -375,14 +377,14 @@ def clean_empty_directories(session):
     for base in bases:
         for dirpath, dirnames, filenames in os.walk(base, topdown=False):
             if not filenames and not dirnames:
+                to_remove = os.path.join(base, dirpath)
                 if not Options["No-Action"]:
-                    os.removedirs(os.path.join(base, dirpath))
+                    Logger.log(["removing directory", to_remove])
+                    os.removedirs(to_remove)
                 count += 1
 
     if count:
-        Logger.log(["total", count])
-        print "Cleaned %d empty directories from %d location(s)" % \
-            (count, len(bases))
+        Logger.log(["total removed directories", count])
 
 ################################################################################