diff options
author | Abdulwasiu Apalowo <abdulwasiuapalowo@gmail.com> | 2022-10-31 11:00:15 +0100 |
---|---|---|
committer | Abdulwasiu Apalowo <abdulwasiuapalowo@gmail.com> | 2023-01-10 14:19:02 +0100 |
commit | d6ab8437b80f7c0633c357f4f2bbf0baeca0d3ec (patch) | |
tree | 9f547e89910ad2a8da636bd45ec78f508cca65d6 | |
parent | 38c2070e794e48818801bb5628b4966b010d18ce (diff) | |
download | libvirt-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.py | 15 | ||||
-rw-r--r-- | lcitool/commandline.py | 7 |
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): """ |