diff options
author | sever-sever <v.gletenko@vyos.io> | 2021-04-21 17:20:27 +0000 |
---|---|---|
committer | sever-sever <v.gletenko@vyos.io> | 2021-04-21 18:41:58 +0000 |
commit | d657e65d66c14c007c235779ecb73ef5b8cfa327 (patch) | |
tree | 14f1ce76aa28f8a25b93a4128820277474983a09 /src/op_mode/containers_op.py | |
parent | 255216b4470b0a25dded0edc1e8acd8e0fbf34b5 (diff) | |
download | vyos-1x-d657e65d66c14c007c235779ecb73ef5b8cfa327.tar.gz vyos-1x-d657e65d66c14c007c235779ecb73ef5b8cfa327.zip |
container: T2216: Rewrite op-mode to python
Diffstat (limited to 'src/op_mode/containers_op.py')
-rwxr-xr-x | src/op_mode/containers_op.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/op_mode/containers_op.py b/src/op_mode/containers_op.py new file mode 100755 index 000000000..1e3fc3a8f --- /dev/null +++ b/src/op_mode/containers_op.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2021 VyOS maintainers and contributors +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 or later as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import argparse +from vyos.configquery import query_context, ConfigQueryError +from vyos.util import cmd + +config, op = query_context() + +parser = argparse.ArgumentParser() +parser.add_argument("-a", "--all", action="store_true", help="Show all containers") +parser.add_argument("-i", "--image", action="store_true", help="Show container images") +parser.add_argument("-n", "--networks", action="store_true", help="Show container images") +parser.add_argument("-p", "--pull", action="store", help="Pull image for container") +parser.add_argument("-d", "--remove", action="store", help="Delete container image") + +if not config.exists(['container']): + print('Containers not configured') + exit(0) + +if __name__ == '__main__': + args = parser.parse_args() + + if args.all: + print(cmd('podman ps --all')) + exit(0) + if args.image: + print(cmd('podman image ls')) + exit(0) + if args.networks: + print(cmd('podman network ls')) + exit(0) + if args.pull: + image = args.pull + try: + print(cmd(f'sudo podman image pull {image}')) + except: + print(f'Can\'t find or download image "{image}"') + exit(0) + if args.remove: + image = args.remove + try: + print(cmd(f'sudo podman image rm {image}')) + except: + print(f'Can\'t delete image "{image}"') + exit(0) |