]> git.ipfire.org Git - pbs.git/commitdiff
releases: Make the decision whether to mirror or not a bit more complex
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 11 Feb 2025 13:27:58 +0000 (13:27 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 11 Feb 2025 13:27:58 +0000 (13:27 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/__init__.py
src/buildservice/releases.py

index 0ccead36996c1c27b093c57682b9b5807271fe33..f878b7a818b80249234a7577438c6ea1234e8677 100644 (file)
@@ -575,12 +575,12 @@ class Backend(object):
 
                paths = []
 
-               # Add all stable releases
+               # Add all mirrored releases
                async for distro in self.distros:
                        releases = await distro.get_releases()
 
                        for release in releases:
-                               if not release.stable:
+                               if not release.is_mirrored():
                                        continue
 
                                paths.append(
index d76433229d076b6b20eac06a5bec530695c536b3..43690a3b88be4dafaee39203e36eb5cca001ac05 100644 (file)
@@ -181,3 +181,23 @@ class Release(database.Base, database.BackendMixin, database.SoftDeleteMixin):
                        path = os.path.join(path, arch)
 
                return path
+
+       # Is this release mirrored?
+
+       def is_mirrored(self):
+               """
+                       Returns True if this release should be mirrored
+               """
+               # We currently only mirror stable releases
+               if not self.stable:
+                       return False
+
+               # If there is no publish date, we don't mirror
+               if self.published_at is None:
+                       return False
+
+               # What time is it now?
+               now = datetime.datetime.now()
+
+               # We start mirroring 24 hours before the release
+               return self.published_at >= now - datetime.timedelta(hours=24)