diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-11-19 21:32:33 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-11-19 21:32:33 +0000 |
commit | 33ca09fb2c3ba592d3196eb55c16c3e91481ee75 (patch) | |
tree | 01e1b63404e3469763c8f92dc65762ec7446bbf7 | |
parent | f4ba1903a3126b6e224ed7c11a07d9bb18ac07b8 (diff) | |
download | obnam-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.py | 13 |
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): |