diff --git a/scripts/upgrade_oniro/upgrade_oniro.py b/scripts/upgrade_oniro/upgrade_oniro.py index df34cb772218aea4c4f41abc7ec0d59fb95643b5..ed79cb3921b31a0ece662ba6c55b52cecbf7b95c 100755 --- a/scripts/upgrade_oniro/upgrade_oniro.py +++ b/scripts/upgrade_oniro/upgrade_oniro.py @@ -229,9 +229,9 @@ def restore_oniro(): Returns: None. Side effects Oniro's backup restore """ - # TODO add an exception handling if the metadata file is not found # TODO if something created some files / directories we are not able to # delete those and we may end up with a inconsistent state + from upgrade_oniro_utils import find_latest_backup if backup_archive_arg == "latest": @@ -249,7 +249,11 @@ def restore_oniro(): print(f"Restoring {backup_archive_name}") with tarfile.open(backup_archive_name) as backup_archive: # Extract the metadata file and delete all the old folders - backup_folders_file = backup_archive.extract("backup_folders") + try: + backup_folders_file = backup_archive.extract("backup_folders") + except KeyError: + print("Metadata file not found in the backup archive, aborting...") + return with open("backup_folders") as bf: for folder in bf.readlines(): if os.path.exists(folder):