updated menu_backup()

This commit is contained in:
Alan Mason 2017-11-30 20:31:46 -08:00
parent b96e5f3be6
commit 850a1fca73

View file

@ -56,6 +56,7 @@ def menu_backup():
other_results = { other_results = {
'Error': { 'Error': {
'CalledProcessError': 'Unknown Error', 'CalledProcessError': 'Unknown Error',
'PathNotFoundError': 'Missing',
}, },
'Warning': { 'Warning': {
'GenericAbort': 'Skipped', 'GenericAbort': 'Skipped',
@ -112,25 +113,40 @@ def menu_backup():
par['Error'] = result['Error'] par['Error'] = result['Error']
# Verify backup(s) # Verify backup(s)
if disk['Valid Partitions'] > 1: if disk['Valid Partitions']:
print_info('\n\n Verifying backups\n') print_info('\n\n Verifying backup images(s)\n')
else: for par in disk['Partitions']:
print_info('\n\n Verifying backup\n') if par['Number'] in disk['Bad Partitions']:
for par in disk['Partitions']: continue # Skip verification
if par['Number'] in disk['Bad Partitions']: message = 'Partition {} Image...'.format(par['Number'])
continue # Skip verification result = try_and_print(message=message, function=verify_wim_backup,
try: other_results=other_results, partition=par)
verify_wim_backup(bin, par) if not result['CS']:
except BackupError: errors = True
errors = True par['Error'] = result['Error']
# Print summary # Print summary
if errors: if errors:
print_warning('\nErrors were encountered and are detailed below.') print_warning('\nErrors were encountered and are detailed below.')
for par in [p for p in disk['Partitions'] if 'Error' in p]: for par in [p for p in disk['Partitions'] if 'Error' in p]:
print_standard(' Partition {} Error:'.format(par['Number'])) print_standard(' Partition {} Error:'.format(par['Number']))
for line in [line.strip() for line in par['Error'] if line.strip()]: if hasattr(par['Error'], 'stderr'):
print_error('\t{}'.format(line)) try:
par['Error'] = par['Error'].stderr.decode()
except:
# Deal with badly formatted error message
pass
if isinstance(par['Error'], basestring):
print_error('\t{}'.format(par['Error']))
else:
try:
par['Error'] = par['Error'].splitlines()
par['Error'] = [line.strip() for line in par['Error']]
par['Error'] = [line for line in par['Error'] if line]
except:
pass
for line in par['Error']:
print_error('\t{}'.format(line))
time.sleep(30) time.sleep(30)
else: else:
print_success('\nNo errors were encountered during imaging.') print_success('\nNo errors were encountered during imaging.')