backups: fix handling new format without backup header
Tar will report error when 'backup-header' file wasn't found. Ignore this particular error.
This commit is contained in:
parent
49259dacf6
commit
a6740610e3
@ -963,6 +963,8 @@ def restore_vm_dirs (backup_source, restore_tmpdir, passphrase, vms_dirs, vms,
|
||||
else:
|
||||
filelist_pipe = command.stdout
|
||||
|
||||
expect_tar_error = False
|
||||
|
||||
to_extract = Queue()
|
||||
|
||||
# If want to analyze backup header, do it now
|
||||
@ -1014,6 +1016,12 @@ def restore_vm_dirs (backup_source, restore_tmpdir, passphrase, vms_dirs, vms,
|
||||
else:
|
||||
# If this isn't backup header, pass it to ExtractWorker
|
||||
to_extract.put(filename)
|
||||
# when tar do not find expected file in archive, it exit with
|
||||
# code 2. This will happen because we've requested backup-header
|
||||
# file, but the archive do not contain it. Ignore this particular
|
||||
# error.
|
||||
if not appvm:
|
||||
expect_tar_error = True
|
||||
|
||||
# Setup worker to extract encrypted data chunks to the restore dirs
|
||||
# Create the process here to pass it options extracted from backup header
|
||||
@ -1060,7 +1068,7 @@ def restore_vm_dirs (backup_source, restore_tmpdir, passphrase, vms_dirs, vms,
|
||||
passphrase, hmac_algorithm):
|
||||
to_extract.put(os.path.join(restore_tmpdir, filename))
|
||||
|
||||
if command.wait() != 0:
|
||||
if command.wait() != 0 and not expect_tar_error:
|
||||
raise QubesException(
|
||||
"ERROR: unable to read the qubes backup file {0} ({1}). " \
|
||||
"Is it really a backup?".format(backup_source, command.wait()))
|
||||
|
Loading…
Reference in New Issue
Block a user