# 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)
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"
# 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
"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,