summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-11-17 19:23:20 +0000
committerLars Wirzenius <liw@liw.fi>2012-11-17 19:23:20 +0000
commite417c7fd9b871702874019c05d45e85cb24e144e (patch)
treeb2d4ea1de678c1b561870009d8b32528630c1f2e
parent1a953372f7c1c5b8fbe0abb526b07987bd5adfe0 (diff)
downloadobnam-e417c7fd9b871702874019c05d45e85cb24e144e.tar.gz
Add --fsck-skip-b-trees setting
-rw-r--r--obnamlib/plugins/fsck_plugin.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/obnamlib/plugins/fsck_plugin.py b/obnamlib/plugins/fsck_plugin.py
index 784a5406..df705cc5 100644
--- a/obnamlib/plugins/fsck_plugin.py
+++ b/obnamlib/plugins/fsck_plugin.py
@@ -208,10 +208,11 @@ class CheckClientlist(WorkItem):
def do(self):
logging.debug('Checking clientlist')
clients = self.repo.clientlist.list_clients()
- for client_name in clients:
- client_id = self.repo.clientlist.get_client_id(client_name)
- client_dir = self.repo.client_dir(client_id)
- yield CheckBTree(str(client_dir))
+ if not self.settings['fsck-skip-b-trees']:
+ for client_name in clients:
+ client_id = self.repo.clientlist.get_client_id(client_name)
+ client_dir = self.repo.client_dir(client_id)
+ yield CheckBTree(str(client_dir))
for client_name in clients:
yield CheckClientExists(client_name)
for client_name in clients:
@@ -256,9 +257,10 @@ class CheckRepository(WorkItem):
def do(self):
logging.debug('Checking repository')
- yield CheckBTree('clientlist')
- yield CheckBTree('chunklist')
- yield CheckBTree('chunksums')
+ if not self.settings['fsck-skip-b-trees']:
+ yield CheckBTree('clientlist')
+ yield CheckBTree('chunklist')
+ yield CheckBTree('chunksums')
yield CheckClientlist()
@@ -272,6 +274,9 @@ class FsckPlugin(obnamlib.ObnamPlugin):
['fsck-ignore-chunks'],
'ignore chunks when checking repository integrity (assume all '
'chunks exist and are correct)')
+ self.app.settings.boolean(
+ ['fsck-skip-b-trees'],
+ 'skip B-tree integrity checking')
def configure_ttystatus(self):
self.app.ts.clear()