diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-04-21 17:01:02 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-04-21 17:01:02 +0100 |
commit | 9e7e16d037cff1e09bbf495b8fa5a1e37a4aea7b (patch) | |
tree | a3d8aeb8d1fa9ef87a2a0387d9c6c68297e8530c /obnamlib/plugins/restore_plugin.py | |
parent | 802f7ceada07d20e7b8fa08b7c85fc1ad7b85607 (diff) | |
download | obnam-9e7e16d037cff1e09bbf495b8fa5a1e37a4aea7b.tar.gz |
Handle missing filters as higher level restore errors
Diffstat (limited to 'obnamlib/plugins/restore_plugin.py')
-rw-r--r-- | obnamlib/plugins/restore_plugin.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/obnamlib/plugins/restore_plugin.py b/obnamlib/plugins/restore_plugin.py index 9f90a70c..84f1ee10 100644 --- a/obnamlib/plugins/restore_plugin.py +++ b/obnamlib/plugins/restore_plugin.py @@ -194,14 +194,19 @@ class RestorePlugin(obnamlib.ObnamPlugin): f = self.fs.open('./' + filename, 'wb') summer = self.repo.new_checksummer() - contents = self.repo.get_file_data(gen, filename) - if contents is None: - chunkids = self.repo.get_file_chunks(gen, filename) - self.restore_chunks(f, chunkids, summer) - else: - f.write(contents) - summer.update(contents) - + try: + contents = self.repo.get_file_data(gen, filename) + if contents is None: + chunkids = self.repo.get_file_chunks(gen, filename) + self.restore_chunks(f, chunkids, summer) + else: + f.write(contents) + summer.update(contents) + except obnamlib.MissingFilterError, e: + msg = 'Missing filter error during restore: %s' % filename + logging.error(msg) + self.app.ts.notify(msg) + self.errors = True f.close() correct_checksum = metadata.md5 |