diff options
author | Christian Breunig <christian@breunig.cc> | 2024-04-23 08:19:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-23 08:19:25 +0200 |
commit | 48461a9693568b1ca7ca4422130504cceed4ea28 (patch) | |
tree | 3e170665a83fc33c70171172cad1c049d0a0d2e2 | |
parent | b734d1f277dc85a48e6c9b305e315cfc3e7a89d5 (diff) | |
parent | 8349d3e6a8cad1c282beb6a0552edf30cd8d2788 (diff) | |
download | vyos-1x-48461a9693568b1ca7ca4422130504cceed4ea28.tar.gz vyos-1x-48461a9693568b1ca7ca4422130504cceed4ea28.zip |
Merge pull request #3350 from vyos/mergify/bp/sagitta/pr-3346
image-tools: T6260: remove persistence image directory if no space error (backport #3346)
-rwxr-xr-x | src/op_mode/image_installer.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/op_mode/image_installer.py b/src/op_mode/image_installer.py index c401a8c20..185d12c49 100755 --- a/src/op_mode/image_installer.py +++ b/src/op_mode/image_installer.py @@ -26,6 +26,7 @@ from os import environ from typing import Union from urllib.parse import urlparse from passlib.hosts import linux_context +from errno import ENOSPC from psutil import disk_partitions @@ -886,6 +887,16 @@ def add_image(image_path: str, vrf: str = None, username: str = '', if set_as_default: grub.set_default(image_name, root_dir) + except OSError as e: + # if no space error, remove image dir and cleanup + if e.errno == ENOSPC: + cleanup(mounts=[str(iso_path)], + remove_items=[f'{root_dir}/boot/{image_name}']) + else: + # unmount an ISO and cleanup + cleanup([str(iso_path)]) + exit(f'Error: {e}') + except Exception as err: # unmount an ISO and cleanup cleanup([str(iso_path)]) |