From: Michael Tremer Date: Mon, 26 Nov 2018 10:15:26 +0000 (+0000) Subject: release: Iterate through all releases when searching for files X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=856748b0a8468b3e01531576b041ff4611cee450;p=ipfire.org.git release: Iterate through all releases when searching for files Signed-off-by: Michael Tremer --- diff --git a/src/backend/releases.py b/src/backend/releases.py index 88635da4..9b2670de 100644 --- a/src/backend/releases.py +++ b/src/backend/releases.py @@ -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)