From f440fbc9ba9019b25fb9f059357052701d990ef3 Mon Sep 17 00:00:00 2001 From: John Estabrook Date: Mon, 9 Jan 2023 14:42:06 -0600 Subject: container: T4880: expose add_image/delete_image functions in op-mode Encapsulating the add/delete image commands in the op-mode script allows automatic generation of corresponding API schema definitions. --- op-mode-definitions/container.xml.in | 4 ++-- src/op_mode/container.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/op-mode-definitions/container.xml.in b/op-mode-definitions/container.xml.in index 786bd66d3..ada9a4d59 100644 --- a/op-mode-definitions/container.xml.in +++ b/op-mode-definitions/container.xml.in @@ -11,7 +11,7 @@ Pull a new image for container - sudo podman image pull "${4}" + sudo ${vyos_op_scripts_dir}/container.py add_image --name "${4}" @@ -44,7 +44,7 @@ - sudo podman image rm --force "${4}" + sudo ${vyos_op_scripts_dir}/container.py delete_image --name "${4}" diff --git a/src/op_mode/container.py b/src/op_mode/container.py index ecefc556e..d48766a0c 100755 --- a/src/op_mode/container.py +++ b/src/op_mode/container.py @@ -35,6 +35,19 @@ def _get_raw_data(command: str) -> list: data = json.loads(json_data) return data +def add_image(name: str): + from vyos.util import rc_cmd + + rc, output = rc_cmd(f'podman image pull {name}') + if rc != 0: + raise vyos.opmode.InternalError(output) + +def delete_image(name: str): + from vyos.util import rc_cmd + + rc, output = rc_cmd(f'podman image rm --force {name}') + if rc != 0: + raise vyos.opmode.InternalError(output) def show_container(raw: bool): command = 'podman ps --all' -- cgit v1.2.3