From 56b9c1d8ea7bb3523e519a6661b21b2bb35a6ec4 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 15 Jan 2011 20:59:43 +0100 Subject: [PATCH] Change manager to only apply differential changes to the database. --- www/webapp/backend/mirrors.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/www/webapp/backend/mirrors.py b/www/webapp/backend/mirrors.py index 5b289b9f..1de46312 100644 --- a/www/webapp/backend/mirrors.py +++ b/www/webapp/backend/mirrors.py @@ -207,11 +207,21 @@ class Mirror(object): logging.debug("Error getting timestamp from %s" % self.hostname) return - self.db.execute("DELETE FROM mirror_files WHERE mirror=%s", self.id) + files = self.filelist for file in response.body.splitlines(): + file = os.path.join(self.prefix, file) + + if file in files: + files.remove(file) + continue + self.db.execute("INSERT INTO mirror_files(mirror, filename) VALUES(%s, %s)", - self.id, os.path.join(self.prefix, file)) + self.id, file) + + for file in files: + self.db.execute("DELETE FROM mirror_files WHERE mirror=%s AND filename=%s", + self.id, file) logging.info("Successfully updated mirror filelist from %s" % self.hostname) -- 2.47.3