diff options
author | Abdulwasiu Apalowo <abdulwasiuapalowo@gmail.com> | 2023-01-07 17:39:37 +0100 |
---|---|---|
committer | Abdulwasiu Apalowo <abdulwasiuapalowo@gmail.com> | 2023-01-10 14:00:11 +0100 |
commit | 73fb1c622c0351b08129b414c5232a8a933d9842 (patch) | |
tree | 30a404081681e3da245e2d75ca2e5b8ec1f92bb2 | |
parent | 5053e2cebbfd2a1670d599e5c2e0125513130b18 (diff) | |
download | libvirt-ci-73fb1c622c0351b08129b414c5232a8a933d9842.zip libvirt-ci-73fb1c622c0351b08129b414c5232a8a933d9842.tar.gz libvirt-ci-73fb1c622c0351b08129b414c5232a8a933d9842.tar.bz2 |
lcitool container: Add "engines" subcommand
This adds the "engines" container subcommand
which is used to list all the available and
usable engines.
It allows users to decide on the engine to
select when spinning up containers and/or
building images.
Signed-off-by: Abdulwasiu Apalowo <abdulwasiuapalowo@gmail.com>
-rw-r--r-- | lcitool/application.py | 12 | ||||
-rw-r--r-- | lcitool/commandline.py | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/lcitool/application.py b/lcitool/application.py index 93af712..5b12d18 100644 --- a/lcitool/application.py +++ b/lcitool/application.py @@ -18,6 +18,7 @@ from lcitool.projects import Projects from lcitool.targets import Targets, BuildTarget from lcitool.formatters import DockerfileFormatter, ShellVariablesFormatter, JSONVariablesFormatter, ShellBuildEnvFormatter from lcitool.manifest import Manifest +from lcitool.containers import Docker, Podman, ContainerError log = logging.getLogger(__name__) @@ -314,6 +315,17 @@ class Application: return client + def _action_list_engines(self, args): + engines = [] + for engine in [Podman(), Docker()]: + if engine.available: + engines.append(engine.engine) + + if engines: + print("\n".join(engines)) + else: + print("No engine available") + def run(self, args): try: util.set_extra_data_dir(args.data_dir) diff --git a/lcitool/commandline.py b/lcitool/commandline.py index 164888b..8bd60c6 100644 --- a/lcitool/commandline.py +++ b/lcitool/commandline.py @@ -292,6 +292,12 @@ class CommandLine: dest='container') containersubparser.required = True + container_engineparser = containersubparser.add_parser( + "engines", + help="List available container engines", + ) + container_engineparser.set_defaults(func=Application._action_list_engines) + # Validate "container" args def _validate(self, args): """ |