aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdulwasiu Apalowo <abdulwasiuapalowo@gmail.com>2023-01-07 17:39:37 +0100
committerAbdulwasiu Apalowo <abdulwasiuapalowo@gmail.com>2023-01-10 14:00:11 +0100
commit73fb1c622c0351b08129b414c5232a8a933d9842 (patch)
tree30a404081681e3da245e2d75ca2e5b8ec1f92bb2
parent5053e2cebbfd2a1670d599e5c2e0125513130b18 (diff)
downloadlibvirt-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.py12
-rw-r--r--lcitool/commandline.py6
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):
"""