aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdulwasiu Apalowo <abdulwasiuapalowo@gmail.com>2022-10-31 11:00:15 +0100
committerAbdulwasiu Apalowo <abdulwasiuapalowo@gmail.com>2023-01-10 14:19:02 +0100
commitd6ab8437b80f7c0633c357f4f2bbf0baeca0d3ec (patch)
tree9f547e89910ad2a8da636bd45ec78f508cca65d6
parent38c2070e794e48818801bb5628b4966b010d18ce (diff)
downloadlibvirt-ci-d6ab8437b80f7c0633c357f4f2bbf0baeca0d3ec.zip
libvirt-ci-d6ab8437b80f7c0633c357f4f2bbf0baeca0d3ec.tar.gz
libvirt-ci-d6ab8437b80f7c0633c357f4f2bbf0baeca0d3ec.tar.bz2
lcitool container: Add "shell" subcommand
Adds "shell" subcommand to the container command. It is run with: lcitool container shell --help The subcommand works standalone, but also accepts --script and --workload-dir options. Signed-off-by: Abdulwasiu Apalowo <abdulwasiuapalowo@gmail.com>
-rw-r--r--lcitool/application.py15
-rw-r--r--lcitool/commandline.py7
2 files changed, 16 insertions, 6 deletions
diff --git a/lcitool/application.py b/lcitool/application.py
index a435a59..b840658 100644
--- a/lcitool/application.py
+++ b/lcitool/application.py
@@ -398,12 +398,15 @@ class Application:
raise ApplicationError(f"'{workload_dir}' is not a directory")
params["datadir"] = workload_dir.resolve()
- script = Path(args.script)
- if not script.is_file():
- raise ApplicationError(f"'{script}' is not a file")
- params["script"] = script.resolve()
-
- params["container_cmd"] = "./script"
+ if args.script:
+ script = Path(args.script)
+ if not script.is_file():
+ raise ApplicationError(f"'{script}' is not a file")
+ params["script"] = script.resolve()
+
+ params["container_cmd"] = "/bin/sh"
+ if args.container == "run":
+ params["container_cmd"] = "./script"
try:
client.run(**params)
diff --git a/lcitool/commandline.py b/lcitool/commandline.py
index 8835b4c..f03aaeb 100644
--- a/lcitool/commandline.py
+++ b/lcitool/commandline.py
@@ -313,6 +313,13 @@ class CommandLine:
)
run_containerparser.set_defaults(func=Application._action_container_run)
+ shell_containerparser = containersubparser.add_parser(
+ "shell",
+ help="Access to an interactive shell",
+ parents=[imageopt, containeropt, engineopt, workload_diropt, scriptopt]
+ )
+ shell_containerparser.set_defaults(func=Application._action_container_run)
+
# Validate "container" args
def _validate(self, args):
"""