diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-11-17 18:33:39 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-11-17 18:33:39 +0000 |
commit | 3f7848d192d5c1d0167471b3c7a562758fb95a73 (patch) | |
tree | c64201d0414e3a41ce987542039bc086065dba08 | |
parent | c730d554a92cdf9e313006cff3fd227023fb848f (diff) | |
download | obnam-3f7848d192d5c1d0167471b3c7a562758fb95a73.tar.gz |
Add fsck --fsck-ignore-chunks setting
This is useful to allow checking integrity of a repository
without having to check all chunks, which is quite time
consuming. I am going to be using this to find out why there
are missing nodes in one of my repositories.
-rw-r--r-- | obnamlib/plugins/fsck_plugin.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/obnamlib/plugins/fsck_plugin.py b/obnamlib/plugins/fsck_plugin.py index 123cbf0e..28c88713 100644 --- a/obnamlib/plugins/fsck_plugin.py +++ b/obnamlib/plugins/fsck_plugin.py @@ -91,7 +91,7 @@ class CheckFile(WorkItem): 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(): + if 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: @@ -269,6 +269,10 @@ class FsckPlugin(obnamlib.ObnamPlugin): self.app.add_subcommand('fsck', self.fsck) self.app.settings.boolean(['fsck-fix'], 'should fsck try to fix problems?') + self.app.settings.boolean( + ['fsck-ignore-chunks'], + 'ignore chunks when checking repository integrity (assume all ' + 'chunks exist and are correct)') def configure_ttystatus(self): self.app.ts.clear() @@ -295,7 +299,10 @@ class FsckPlugin(obnamlib.ObnamPlugin): self.chunkids_seen = set() self.work_items = [] self.add_item(CheckRepository()) - final_items = [CheckForExtraChunks()] + + final_items = [] + if not self.app.settings['fsck-ignore-chunks']: + final_items.append(CheckForExtraChunks()) self.configure_ttystatus() i = 0 |