Updated user_data_transfer sections

This commit is contained in:
2Shirt 2018-05-17 18:06:26 -06:00
parent bec947262b
commit db09236b26
2 changed files with 33 additions and 22 deletions

View file

@ -534,21 +534,21 @@ def select_destination(folder_path, prompt='Select destination'):
return path return path
def select_source(ticket_number): def select_source(backup_prefix):
"""Select backup from those found on the BACKUP_SERVERS for the ticket.""" """Select backup from those found on the BACKUP_SERVERS matching the prefix."""
selected_source = None selected_source = None
local_sources = [] local_sources = []
remote_sources = [] remote_sources = []
sources = [] sources = []
mount_backup_shares(read_write=False) mount_backup_shares(read_write=False)
# Check for ticket folders on servers # Check for prefix folders on servers
for server in BACKUP_SERVERS: for server in BACKUP_SERVERS:
if server['Mounted']: if server['Mounted']:
print_standard('Scanning {}...'.format(server['Name'])) print_standard('Scanning {}...'.format(server['Name']))
for d in os.scandir(r'\\{IP}\{Share}'.format(**server)): for d in os.scandir(r'\\{IP}\{Share}'.format(**server)):
if (d.is_dir() if (d.is_dir()
and d.name.lower().startswith(ticket_number.lower())): and d.name.lower().startswith(backup_prefix.lower())):
# Add folder to remote_sources # Add folder to remote_sources
remote_sources.append({ remote_sources.append({
'Name': '{:9}| File-Based: [DIR] {}'.format( 'Name': '{:9}| File-Based: [DIR] {}'.format(
@ -558,19 +558,19 @@ def select_source(ticket_number):
'Source': d}) 'Source': d})
# Check for images and subfolders # Check for images and subfolders
for ticket_path in remote_sources.copy(): for prefix_path in remote_sources.copy():
for item in os.scandir(ticket_path['Source'].path): for item in os.scandir(prefix_path['Source'].path):
if item.is_dir(): if item.is_dir():
# Add folder to remote_sources # Add folder to remote_sources
remote_sources.append({ remote_sources.append({
'Name': r'{:9}| File-Based: [DIR] {}\{}'.format( 'Name': r'{:9}| File-Based: [DIR] {}\{}'.format(
ticket_path['Server']['Name'], # Server prefix_path['Server']['Name'], # Server
ticket_path['Source'].name, # Ticket folder prefix_path['Source'].name, # Prefix folder
item.name, # Sub-folder item.name, # Sub-folder
), ),
'Server': ticket_path['Server'], 'Server': prefix_path['Server'],
'Sort': r'{}\{}'.format( 'Sort': r'{}\{}'.format(
ticket_path['Source'].name, # Ticket folder prefix_path['Source'].name, # Prefix folder
item.name, # Sub-folder item.name, # Sub-folder
), ),
'Source': item}) 'Source': item})
@ -586,15 +586,15 @@ def select_source(ticket_number):
remote_sources.append({ remote_sources.append({
'Disabled': bool(not is_valid_wim_file(subitem)), 'Disabled': bool(not is_valid_wim_file(subitem)),
'Name': r'{:9}| Image-Based: {:>7} {}\{}\{}'.format( 'Name': r'{:9}| Image-Based: {:>7} {}\{}\{}'.format(
ticket_path['Server']['Name'], # Server prefix_path['Server']['Name'], # Server
size, # Size (duh) size, # Size (duh)
ticket_path['Source'].name, # Ticket folder prefix_path['Source'].name, # Prefix folder
item.name, # Sub-folder item.name, # Sub-folder
subitem.name, # Image file subitem.name, # Image file
), ),
'Server': ticket_path['Server'], 'Server': prefix_path['Server'],
'Sort': r'{}\{}\{}'.format( 'Sort': r'{}\{}\{}'.format(
ticket_path['Source'].name, # Ticket folder prefix_path['Source'].name, # Prefix folder
item.name, # Sub-folder item.name, # Sub-folder
subitem.name, # Image file subitem.name, # Image file
), ),
@ -608,14 +608,14 @@ def select_source(ticket_number):
remote_sources.append({ remote_sources.append({
'Disabled': bool(not is_valid_wim_file(item)), 'Disabled': bool(not is_valid_wim_file(item)),
'Name': r'{:9}| Image-Based: {:>7} {}\{}'.format( 'Name': r'{:9}| Image-Based: {:>7} {}\{}'.format(
ticket_path['Server']['Name'], # Server prefix_path['Server']['Name'], # Server
size, # Size (duh) size, # Size (duh)
ticket_path['Source'].name, # Ticket folder prefix_path['Source'].name, # Prefix folder
item.name, # Image file item.name, # Image file
), ),
'Server': ticket_path['Server'], 'Server': prefix_path['Server'],
'Sort': r'{}\{}'.format( 'Sort': r'{}\{}'.format(
ticket_path['Source'].name, # Ticket folder prefix_path['Source'].name, # Prefix folder
item.name, # Image file item.name, # Image file
), ),
'Source': item}) 'Source': item})
@ -682,8 +682,8 @@ def select_source(ticket_number):
else: else:
selected_source = sources[int(selection)-1]['Source'] selected_source = sources[int(selection)-1]['Source']
else: else:
print_error('ERROR: No backups found for ticket: {}.'.format( print_error('ERROR: No backups found using prefix: {}.'.format(
ticket_number)) backup_prefix))
umount_backup_shares() umount_backup_shares()
pause("Press Enter to exit...") pause("Press Enter to exit...")
exit_script() exit_script()

View file

@ -18,17 +18,28 @@ if __name__ == '__main__':
stay_awake() stay_awake()
clear_screen() clear_screen()
print_info('{}: User Data Transfer Tool\n'.format(KIT_NAME_FULL)) print_info('{}: User Data Transfer Tool\n'.format(KIT_NAME_FULL))
# Get backup name prefix
ticket_number = get_ticket_number() ticket_number = get_ticket_number()
if ENABLED_TICKET_NUMBERS:
backup_prefix = ticket_number
else:
backup_prefix = get_simple_string(prompt='Enter backup name prefix')
# Set destination
folder_path = r'{}\Transfer'.format(KIT_NAME_SHORT) folder_path = r'{}\Transfer'.format(KIT_NAME_SHORT)
dest = select_destination(folder_path=folder_path, dest = select_destination(folder_path=folder_path,
prompt='Which disk are we transferring to?') prompt='Which disk are we transferring to?')
source = select_source(ticket_number)
# Set source items
source = select_source(backup_prefix)
items = scan_source(source, dest) items = scan_source(source, dest)
# Transfer # Transfer
clear_screen() clear_screen()
print_info('Transfer Details:\n') print_info('Transfer Details:\n')
show_data('Ticket:', ticket_number) if ENABLED_TICKET_NUMBERS:
show_data('Ticket:', ticket_number)
show_data('Source:', source.path) show_data('Source:', source.path)
show_data('Destination:', dest) show_data('Destination:', dest)