diff options
author | Christian Breunig <christian@breunig.cc> | 2024-01-10 18:27:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-10 18:27:23 +0100 |
commit | f00779b36af8e282b453bebb1c80e5e619d1e478 (patch) | |
tree | 134b328046283747c37f72ab95e1be714060f4de | |
parent | 8523cfbc1e9f02ddd90794ce5ded4be2a55e7c4a (diff) | |
parent | 17a1d31299e8960d9eba528e04c418b4c1007eb2 (diff) | |
download | vyos-1x-f00779b36af8e282b453bebb1c80e5e619d1e478.tar.gz vyos-1x-f00779b36af8e282b453bebb1c80e5e619d1e478.zip |
Merge pull request #2786 from jestabro/image-annotations
image-tools: T5917: annotate image list with (running)/(default boot)
-rwxr-xr-x | src/op_mode/image_manager.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/op_mode/image_manager.py b/src/op_mode/image_manager.py index e75485f9f..e64a85b95 100755 --- a/src/op_mode/image_manager.py +++ b/src/op_mode/image_manager.py @@ -33,6 +33,27 @@ DELETE_IMAGE_PROMPT_MSG: str = 'Select an image to delete:' MSG_DELETE_IMAGE_RUNNING: str = 'Currently running image cannot be deleted; reboot into another image first' MSG_DELETE_IMAGE_DEFAULT: str = 'Default image cannot be deleted; set another image as default first' +def annotated_list(images_list: list[str]) -> list[str]: + """Annotate list of images with additional info + + Args: + images_list (list[str]): a list of image names + + Returns: + list[str]: a list of image names with additional info + """ + index_running: int = None + index_default: int = None + try: + index_running = images_list.index(image.get_running_image()) + index_default = images_list.index(image.get_default_image()) + except ValueError: + pass + if index_running is not None: + images_list[index_running] += ' (running)' + if index_default is not None: + images_list[index_default] += ' (default boot)' + return images_list @compat.grub_cfg_update def delete_image(image_name: Optional[str] = None, @@ -42,7 +63,7 @@ def delete_image(image_name: Optional[str] = None, Args: image_name (str): a name of image to delete """ - available_images: list[str] = grub.version_list() + available_images: list[str] = annotated_list(grub.version_list()) if image_name is None: if no_prompt: exit('An image name is required for delete action') @@ -83,7 +104,7 @@ def set_image(image_name: Optional[str] = None, Args: image_name (str): an image name """ - available_images: list[str] = grub.version_list() + available_images: list[str] = annotated_list(grub.version_list()) if image_name is None: if not prompt: exit('An image name is required for set action') |