From 081c54425f4dab67dfc948898da0e0f440a8db7c Mon Sep 17 00:00:00 2001 From: Christian Herdtweck Date: Wed, 22 Jun 2016 17:13:29 +0200 Subject: [PATCH] created volume handler for restore without index --- deltatar/deltatar.py | 20 +++++++++++++++++++- 1 files changed, 19 insertions(+), 1 deletions(-) diff --git a/deltatar/deltatar.py b/deltatar/deltatar.py index 2455be8..7fdf5c6 100644 --- a/deltatar/deltatar.py +++ b/deltatar/deltatar.py @@ -1273,7 +1273,25 @@ class DeltaTar(object): os.chdir(target_path) if mode == 'tar': - index_it = self.iterate_tar_path(backup_tar_path) + def new_volume_handler(deltarobj, backup_path, tarobj, base_name, volume_number): + ''' Handles the new volumes ''' + is_full = True + volume_name = deltarobj.volume_name_func(backup_path, is_full, + volume_number) + volume_path = os.path.join(backup_path, volume_name) + deltarobj.vol_no = volume_number + + if tarobj.fileobj is not None: + tarobj.fileobj.close() + + deltarobj.logger.debug("opening volume %s" % volume_path) + tarobj.open_volume(volume_path) + + # will be used by TarFile + # wraps some args from context into the handler + new_volume_handler = partial(new_volume_handler, self, os.path.dirname(backup_tar_path)) + index_it = self.iterate_tar_path(backup_tar_path, + new_volume_handler=new_volume_handler) helper = RestoreHelper(self, cwd, backup_path=backup_tar_path, tarobj=index_it.tar_obj) elif mode == "diff": -- 1.7.1