backups: fix backup header extraction
Pass only 'qubes.xml.000' to tar2qfile - this way it will stop reading the source after requested file(s).
This commit is contained in:
parent
cc37927080
commit
bf6bf8ed8f
@ -769,13 +769,11 @@ def restore_vm_dirs (backup_source, restore_tmpdir, passphrase, vms_dirs, vms,
|
||||
'-ix%sf' % ("v" if BACKUP_DEBUG else ""), backup_source,
|
||||
'-C', restore_tmpdir] + vms_dirs
|
||||
|
||||
# Remove already processed qubes.xml.000, because qfile-dom0-unpacker will
|
||||
# refuse to override files
|
||||
tar1_env = os.environ.copy()
|
||||
# TODO: add some safety margin?
|
||||
tar1_env['UPDATES_MAX_BYTES'] = str(vms_size)
|
||||
# Restoring only header
|
||||
if len(vms_dirs) == 2 and vms_dirs[0] == 'qubes.xml.000':
|
||||
if vms_dirs and vms_dirs[0] == 'qubes.xml.000':
|
||||
tar1_env['UPDATES_MAX_FILES'] = '2'
|
||||
else:
|
||||
tar1_env['UPDATES_MAX_FILES'] = '0'
|
||||
@ -886,10 +884,16 @@ def backup_restore_header(source, passphrase,
|
||||
if BACKUP_DEBUG:
|
||||
print "Working in", restore_tmpdir
|
||||
|
||||
# tar2qfile matches only beginnings, while tar full path
|
||||
if appvm:
|
||||
extract_filter = ['qubes.xml.000']
|
||||
else:
|
||||
extract_filter = ['qubes.xml.000', 'qubes.xml.000.hmac']
|
||||
|
||||
restore_vm_dirs (source,
|
||||
restore_tmpdir,
|
||||
passphrase=passphrase,
|
||||
vms_dirs=['qubes.xml.000', 'qubes.xml.000.hmac'],
|
||||
vms_dirs=extract_filter,
|
||||
vms=None,
|
||||
vms_size=40000,
|
||||
print_callback=print_callback,
|
||||
|
Loading…
Reference in New Issue
Block a user