Editar: Aviso Legal - Eu não tenho muita experiência com o código do Python ou duplicidade, então não posso dizer se esta modificação irá ou não causar efeitos prejudiciais. Para mim, consegui concluir minha restauração adicionando a linha de código abaixo.
Solução: consegui passar após inserir uma verificação de chave para o objeto volume_name_dict
.
Nova linha: if vol_num in backup_set.volume_name_dict.keys():
Na duplicidade 0.7.06, você pode substituir este método na linha 752:
def get_fileobj_iter(backup_set):
"""Get file object iterator from backup_set contain given index"""
manifest = backup_set.get_manifest()
volumes = manifest.get_containing_volumes(index)
for vol_num in volumes:
if vol_num in backup_set.volume_name_dict.keys():
yield restore_get_enc_fileobj(backup_set.backend,
backup_set.
volume_name_dict[vol_num],
manifest.
volume_info_dict[vol_num])
cur_vol[0] += 1
log.Progress(_('Processed volume %d of %d') %
(cur_vol[0], num_vols),
cur_vol[0], num_vols)
if hasattr(globals.backend, 'pre_process_download'):
file_names = []
for backup_set in backup_setlist:
manifest = backup_set.get_manifest()
volumes = manifest.get_containing_volumes(index)
for vol_num in volumes:
file_names.append(backup_set.volume_name_dict[vol_num])
globals.backend.pre_process_download(file_names)
fileobj_iters = list(map(get_fileobj_iter, backup_setlist))
tarfiles = list(map(patchdir.TarFile_FromFileobjs, fileobj_iters))
return patchdir.tarfiles2rop_iter(tarfiles, index)
Se você não estiver familiarizado com o Python (não estou), pode validar o código aqui: link - os recuos devem estar alinhados corretamente.