From 001bd4884d529504e952791132f6f8afd4a65bd0 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Fri, 25 Aug 2017 17:41:21 +0200 Subject: [PATCH] use real new volume handler during rescue With the dummy we end up with a nil object instead of a tarinfo at the end of the volume. Reinstating the actual handler is harmless and produces a valid info object again. --- deltatar/deltatar.py | 10 ++++++---- testing/test_recover.py | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/deltatar/deltatar.py b/deltatar/deltatar.py index f5c39f0..221b7b3 100644 --- a/deltatar/deltatar.py +++ b/deltatar/deltatar.py @@ -1633,8 +1633,7 @@ class RestoreHelper(object): self.canchown = False if isinstance (backup_index, list) is True: - def dummy_volume_handler (*_a, **_kwa): - pass + decryptor = self._deltatar.decryptor self._data = \ [{ "curr_vol_no" : None , "vol_fd" : None @@ -1645,8 +1644,11 @@ class RestoreHelper(object): , "iterator" : None , "last_itelement" : None , "last_lno" : 0 - , "new_volume_handler" : dummy_volume_handler - , "decryptor" : self._deltatar.decryptor + , "new_volume_handler" : + partial(self.new_volume_handler, + self._deltatar, self._cwd, True, + os.path.dirname(backup_path), decryptor) + , "decryptor" : decryptor }] elif index_list is not None: for index in index_list: diff --git a/testing/test_recover.py b/testing/test_recover.py index 817c719..7c26504 100644 --- a/testing/test_recover.py +++ b/testing/test_recover.py @@ -746,7 +746,9 @@ class RescueCorruptHoleBaseTest (RescueTest): MISMATCHES = 1 class RescueCorruptHoleTest (RescueCorruptHoleBaseTest): - FAILURES = 2 + FAILURES = 0 + MISMATCHES = 1 # intersected by hole + MISSING = 1 # excised by hole class RescueCorruptHoleGZTest (RescueCorruptHoleBaseTest): COMPRESSION = "#gz" -- 1.7.1