From: Eduardo Robles Elvira Date: Mon, 16 Sep 2013 16:26:50 +0000 (+0200) Subject: fixing bug related to deltatar multivol restore X-Git-Tag: v2.2~104 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=86a6e7415763463267a6259522a801fa0d416c1d;p=python-delta-tar fixing bug related to deltatar multivol restore Extracting a multivol diff backup sometimes failed because we did not set the volume number, which is needed to be done when we are extracting files one by one. --- diff --git a/deltatar/deltatar.py b/deltatar/deltatar.py index ab0643e..213dfb1 100644 --- a/deltatar/deltatar.py +++ b/deltatar/deltatar.py @@ -241,12 +241,9 @@ class DeltaTar(object): else: prefix = prefix + "-" postfix = "-%03d.tar%s" % (volume_number + 1, extension) - try: - for f in os.listdir(backup_path): - if f.startswith(prefix) and f.endswith(postfix): - return f - except Exception, e: - import ipdb; ipdb.set_trace() + for f in os.listdir(backup_path): + if f.startswith(prefix) and f.endswith(postfix): + return f raise Exception("volume not found") @@ -1386,5 +1383,9 @@ class RestoreHelper(object): if os.path.exists(member.path): return + # set current volume number in tarobj, otherwise the extraction of the + # file might fail when trying to extract a multivolume member + index_data['tarobj'].volume_number = index_data['curr_vol_no'] + # finally, restore the file index_data['tarobj'].extract(member)