From: Christian Herdtweck Date: Wed, 22 Jun 2016 15:13:29 +0000 (+0200) Subject: created volume handler for restore without index X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=081c54425f4dab67dfc948898da0e0f440a8db7c;p=python-delta-tar created volume handler for restore without index --- 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":