]> git.ipfire.org Git - pbs.git/commitdiff
sync: Move this out of the repository stuff
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 18 Jul 2022 17:17:30 +0000 (17:17 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 18 Jul 2022 17:17:30 +0000 (17:17 +0000)
There will be other things that need to be synchronised with the mirror
servers.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/__init__.py
src/buildservice/repository.py
src/crontab/pakfire-build-service
src/scripts/pakfire-build-service

index dbe7e5683afa3d09d08b9e64652837aaa5ca3c61..65771c22dc8454329436acef2d9a13707cea3387 100644 (file)
@@ -327,3 +327,59 @@ class Backend(object):
 
                # Uploads
                await self.uploads.cleanup()
+
+       async def sync(self):
+               """
+                       Syncs any repository that should be mirrored
+               """
+               log.info("Syncing mirrors...")
+
+               # Fetch the sync target
+               target = self.settings.get("sync-target")
+               if not target:
+                       log.warning("No sync target configured")
+                       return 0
+
+               commandline = [
+                       "rsync",
+
+                       # Show what is being transferred
+                       #"--verbose",
+
+                       # Compress any transferred data
+                       "--compress",
+
+                       # Enable archive mode
+                       "--archive",
+
+                       # Preserve hardlinks, ACLs & XATTRs
+                       "--hard-links",
+                       "--acls",
+                       "--xattrs",
+
+                       # Delete any files that we have deleted
+                       "--delete",
+                       "--delete-excluded",
+
+                       # Remove any empty directories
+                       "--prune-empty-dirs",
+
+                       # Make the transaction atomic
+                       "--delay-updates",
+
+                       # Add source & target
+                       "%s/" % PAKFIRE_DIR,
+                       target,
+               ]
+
+               # Add all mirrored repositories
+               for repo in self.repos.mirrored:
+                       path = os.path.relpath(repo.local_path(), PAKFIRE_DIR)
+
+                       commandline.append("--include=%s***" % path)
+
+               # Exclude everything that hasn't been included
+               commandline += ("--include=*/", "--exclude=*")
+
+               # Run command
+               await self.command(*commandline, krb5_auth=True)
index 2865fe62dd0dfb38132b3ac05519c1cca2b2ebe5..74f3248ce5c869b3ca2922f8562d046034c93ea7 100644 (file)
@@ -130,62 +130,6 @@ class Repositories(base.Object):
                for repo in self:
                        await repo.write()
 
-       async def sync(self):
-               """
-                       Syncs any repository that should be mirrored
-               """
-               log.info("Syncing repositories...")
-
-               # Fetch the sync target
-               target = self.settings.get("sync-target")
-               if not target:
-                       log.warning("No sync target configured")
-                       return 0
-
-               commandline = [
-                       "rsync",
-
-                       # Show what is being transferred
-                       #"--verbose",
-
-                       # Compress any transferred data
-                       "--compress",
-
-                       # Enable archive mode
-                       "--archive",
-
-                       # Preserve hardlinks, ACLs & XATTRs
-                       "--hard-links",
-                       "--acls",
-                       "--xattrs",
-
-                       # Delete any files that we have deleted
-                       "--delete",
-                       "--delete-excluded",
-
-                       # Remove any empty directories
-                       "--prune-empty-dirs",
-
-                       # Make the transaction atomic
-                       "--delay-updates",
-
-                       # Add source & target
-                       "%s/" % REPOS_DIR,
-                       target,
-               ]
-
-               # Append all repositories
-               for repo in self.mirrored:
-                       path = os.path.relpath(repo.local_path(), REPOS_DIR)
-
-                       commandline.append("--include=%s***" % path)
-
-               # Exclude everything that hasn't been included
-               commandline += ("--include=*/", "--exclude=*")
-
-               # Run command
-               await self.backend.command(*commandline, krb5_auth=True)
-
 
 class Repository(base.DataObject):
        table = "repositories"
index 09c91ae658f974b870d94ab0830060782a812ddb..064f3a1074bad0b8f817de2fa425eab7e527ccd6 100644 (file)
@@ -3,8 +3,8 @@ MAILTO=pakfire@ipfire.org
 # Send queued emails once a minute
 #* * * * *             _pakfire        pakfire-build-service process-message-queue &>/dev/null
 
-# Synchronize repositories once every five minutes
-*/5 * * * *            _pakfire        pakfire-build-service repos:sync
+# Synchronize mirrors once every five minutes
+*/5 * * * *            _pakfire        pakfire-build-service sync
 
 # Cleanup
 */5 * * * *            _pakfire        pakfire-build-service cleanup
index 159d70815a64b6f509f8959fd305b60104e66938..92f9be58ecba606f7c186ad487fb059bd8991a57 100644 (file)
@@ -25,9 +25,11 @@ class Cli(object):
                        "jobs:depcheck"    : self._jobs_depcheck,
 
                        # Repositories
-                       "repos:sync"       : self.backend.repos.sync,
                        "repos:write"      : self.backend.repos.write,
 
+                       # Sync
+                       "sync"             : self.backend.sync,
+
                        # Run mirror check
                        #"check-mirrors" : self.backend.mirrors.check,