summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-05-23 17:49:47 +0200
committerLars Wirzenius <liw@liw.fi>2012-05-23 17:49:47 +0200
commit4b822e6458f29d21b1b2b5cf192e91c7bbb9ea33 (patch)
treee371315f42fd7d36869569a12ab5a317102610ea
parent43fa0f1349431dcc6a967dc89f2fd8780f6f3846 (diff)
downloadobnam-4b822e6458f29d21b1b2b5cf192e91c7bbb9ea33.tar.gz
Only open a client when necessary
-rw-r--r--obnamlib/plugins/fsck_plugin.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/obnamlib/plugins/fsck_plugin.py b/obnamlib/plugins/fsck_plugin.py
index 3b35f21d..73110ac4 100644
--- a/obnamlib/plugins/fsck_plugin.py
+++ b/obnamlib/plugins/fsck_plugin.py
@@ -88,7 +88,8 @@ class CheckFile(WorkItem):
def do(self):
logging.debug('Checking client=%s genid=%s filename=%s' %
(self.client_name, self.genid, self.filename))
- self.repo.open_client(self.client_name)
+ 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():
chunkids = self.repo.get_file_chunks(self.genid, self.filename)
@@ -110,7 +111,8 @@ class CheckDirectory(WorkItem):
def do(self):
logging.debug('Checking client=%s genid=%s dirname=%s' %
(self.client_name, self.genid, self.dirname))
- self.repo.open_client(self.client_name)
+ if self.repo.current_client != self.client_name:
+ self.repo.open_client(self.client_name)
self.repo.get_metadata(self.genid, self.dirname)
for basename in self.repo.listdir(self.genid, self.dirname):
pathname = os.path.join(self.dirname, basename)
@@ -191,7 +193,8 @@ class CheckClient(WorkItem):
def do(self):
logging.debug('Checking client=%s' % self.client_name)
- self.repo.open_client(self.client_name)
+ if self.repo.current_client != self.client_name:
+ self.repo.open_client(self.client_name)
yield CheckGenerationIdsAreDifferent(self.client_name,
self.repo.list_generations())
for genid in self.repo.list_generations():