summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-11-19 21:32:33 +0000
committerLars Wirzenius <liw@liw.fi>2012-11-19 21:32:33 +0000
commit33ca09fb2c3ba592d3196eb55c16c3e91481ee75 (patch)
tree01e1b63404e3469763c8f92dc65762ec7446bbf7
parentf4ba1903a3126b6e224ed7c11a07d9bb18ac07b8 (diff)
downloadobnam-33ca09fb2c3ba592d3196eb55c16c3e91481ee75.tar.gz
Optimise away a file metadata lookup
We always know the metadata when creating the class, so we can pass it in, rather than look it up again.
-rw-r--r--obnamlib/plugins/fsck_plugin.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/obnamlib/plugins/fsck_plugin.py b/obnamlib/plugins/fsck_plugin.py
index 56979644..dea9af27 100644
--- a/obnamlib/plugins/fsck_plugin.py
+++ b/obnamlib/plugins/fsck_plugin.py
@@ -79,10 +79,11 @@ class CheckFileChecksum(WorkItem):
class CheckFile(WorkItem):
- def __init__(self, client_name, genid, filename):
+ def __init__(self, client_name, genid, filename, metadata):
self.client_name = client_name
self.genid = genid
self.filename = filename
+ self.metadata = metadata
self.name = 'file %s:%s:%s' % (client_name, genid, filename)
def do(self):
@@ -90,14 +91,13 @@ class CheckFile(WorkItem):
(self.client_name, self.genid, self.filename))
if self.repo.current_client != self.client_name:
self.repo.open_client(self.client_name)
- metadata = self.repo.get_metadata(self.genid, self.filename)
- if metadata.isfile() and not self.settings['fsck-ignore-chunks']:
+ if self.metadata.isfile() and not self.settings['fsck-ignore-chunks']:
chunkids = self.repo.get_file_chunks(self.genid, self.filename)
checksummer = self.repo.new_checksummer()
for chunkid in chunkids:
yield CheckChunk(chunkid, checksummer)
- yield CheckFileChecksum(self.name, metadata.md5, chunkids,
- checksummer)
+ yield CheckFileChecksum(
+ self.name, self.metadata.md5, chunkids, checksummer)
class CheckDirectory(WorkItem):
@@ -120,7 +120,8 @@ class CheckDirectory(WorkItem):
if metadata.isdir():
yield CheckDirectory(self.client_name, self.genid, pathname)
else:
- yield CheckFile(self.client_name, self.genid, pathname)
+ yield CheckFile(
+ self.client_name, self.genid, pathname, metadata)
class CheckGeneration(WorkItem):