]> git.ipfire.org Git - ipfire.org.git/commitdiff
release: Iterate through all releases when searching for files
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 26 Nov 2018 10:15:26 +0000 (10:15 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 26 Nov 2018 10:15:26 +0000 (10:15 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/releases.py

index 88635da40985c3c4297683ff5d4ea76772ee7153..9b2670dee19ee87fc1880c5de10710ce3df9bf95 100644 (file)
@@ -4,6 +4,7 @@ import hashlib
 import logging
 import os
 import re
+import tornado.gen
 import urllib.parse
 
 from . import database
@@ -441,6 +442,12 @@ class Releases(Object):
                for row in res:
                        yield Release(self.backend, row.id, data=row)
 
+       def __iter__(self):
+               releases = self._get_releases("SELECT * FROM releases \
+                       ORDER BY published DESC NULLS FIRST")
+
+               return iter(releases)
+
        def get_by_id(self, id):
                ret = self.db.get("SELECT * FROM releases WHERE id = %s", id)
 
@@ -539,3 +546,9 @@ class Releases(Object):
                file = File(self.backend, release, file.id)
 
                return file
+
+       @tornado.gen.coroutine
+       def scan_files(self, basepath="/pub/mirror"):
+               for release in self:
+                       logging.info("Scanning %s..." % release)
+                       release.scan_files(basepath=basepath)