summaryrefslogtreecommitdiffstats
path: root/bin/list-queue
diff options
context:
space:
mode:
authorFlorian Weimer <fw@deneb.enyo.de>2011-04-24 15:09:25 +0000
committerFlorian Weimer <fw@deneb.enyo.de>2011-04-24 15:09:25 +0000
commitd8a5b9c736033cdb429a0c949319647f2cf7db07 (patch)
treeee9cb64d4d59b3bbbc83ee917f0c3e24f78e5e97 /bin/list-queue
parent296c690fc75ae0da6b2dc3447eefea52785328b8 (diff)
bin/list-queue: slightly unify cache expiry and update
git-svn-id: svn+ssh://svn.debian.org/svn/secure-testing@16579 e39458fd-73e7-0310-bf30-c45bca0a0e42
Diffstat (limited to 'bin/list-queue')
-rwxr-xr-xbin/list-queue36
1 files changed, 19 insertions, 17 deletions
diff --git a/bin/list-queue b/bin/list-queue
index e13c4e0bf3..a0343c8224 100755
--- a/bin/list-queue
+++ b/bin/list-queue
@@ -110,9 +110,21 @@ def readchanges(db):
result[name] = (size, mtime, dist, set(debs.split()))
return result
-def computeupdate(ondisk, indb):
- return [(path, stat) for (path, stat) in ondisk.items()
- if path not in indb or stat <> tuple(indb[path][0:2])]
+def deletepaths(db, table, paths):
+ db.executemany("DELETE FROM " + table + " WHERE path = ?", paths)
+
+def prepareupdate(db, ondisk, indb, table):
+ need_update = [(path, stat) for (path, stat) in ondisk.items()
+ if path not in indb or stat <> tuple(indb[path][0:2])]
+ db.executemany("DELETE FROM " + table + " WHERE path = ?",
+ ((path,) for path, _ in need_update))
+ return need_update
+
+def expire(db, ondisk, indb, table):
+ need_delete = [(path,) for path in indb if path not in ondisk]
+ db.executemany("DELETE FROM " + table + " WHERE path = ?", need_delete)
+ for (path,) in need_delete:
+ del indb[path]
def updatepackages(db, ondisk):
"""Updates the package table from the file system.
@@ -120,15 +132,10 @@ def updatepackages(db, ondisk):
Returns the current list of package objects, in arbitary order.
"""
indb = readpackages(db)
-
- # Expire old entries
- need_delete = ((path,) for path in indb if path not in ondisk)
- db.executemany("DELETE FROM package WHERE path = ?", need_delete)
+ expire(db, ondisk, indb, "package")
# Update the cache in indb and the database
- need_update = computeupdate(ondisk, indb)
- db.executemany("DELETE FROM package WHERE path = ?",
- ((path,) for path, _ in need_update))
+ need_update = prepareupdate(db, ondisk, indb, "package")
def do_update():
for (path, stat) in need_update:
deb = DebFile(path)
@@ -149,15 +156,10 @@ def updatechanges(db, ondisk):
Change objects are pairs (DISTRIBUTION, SET-OF-DEBS)
"""
indb = readchanges(db)
+ expire(db, ondisk, indb, "changes")
- # Expire old entries
- need_delete = ((path,) for path in indb if path not in ondisk)
- db.executemany("DELETE FROM changes WHERE path = ?", need_delete)
-
# Update the cache in indb and the database
- need_update = computeupdate(ondisk, indb)
- db.executemany("DELETE FROM changes WHERE path = ?",
- ((path,) for path, _ in need_update))
+ need_update = prepareupdate(db, ondisk, indb, "changes")
def do_update():
for (path, stat) in need_update:
changes = Changes(file(path))

© 2014-2024 Faster IT GmbH | imprint | privacy policy