From db0fdba384b8183b5926d4d02f6a2fbc5923cad0 Mon Sep 17 00:00:00 2001 From: DavHau Date: Wed, 23 Oct 2024 19:40:31 +0700 Subject: [PATCH] cli: set needs_user_terminal for all ssh commands --- pkgs/clan-cli/clan_cli/api/directory.py | 2 +- pkgs/clan-cli/clan_cli/cmd.py | 10 +++++++++- pkgs/clan-cli/clan_cli/facts/upload.py | 1 + pkgs/clan-cli/clan_cli/machines/hardware.py | 2 +- pkgs/clan-cli/clan_cli/machines/list.py | 2 +- pkgs/clan-cli/clan_cli/vars/upload.py | 1 + 6 files changed, 14 insertions(+), 4 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/api/directory.py b/pkgs/clan-cli/clan_cli/api/directory.py index 72af7ea55..4a40ad24e 100644 --- a/pkgs/clan-cli/clan_cli/api/directory.py +++ b/pkgs/clan-cli/clan_cli/api/directory.py @@ -154,7 +154,7 @@ def show_block_devices(options: BlockDeviceOptions) -> Blockdevices: "PATH,NAME,RM,SIZE,RO,MOUNTPOINTS,TYPE,ID-LINK", ], ) - proc = run_no_stdout(cmd) + proc = run_no_stdout(cmd, needs_user_terminal=True) res = proc.stdout.strip() blk_info: dict[str, Any] = json.loads(res) diff --git a/pkgs/clan-cli/clan_cli/cmd.py b/pkgs/clan-cli/clan_cli/cmd.py index f3f0f39ec..70b31ec73 100644 --- a/pkgs/clan-cli/clan_cli/cmd.py +++ b/pkgs/clan-cli/clan_cli/cmd.py @@ -194,6 +194,7 @@ def run_no_stdout( log: Log = Log.STDERR, check: bool = True, error_msg: str | None = None, + needs_user_terminal: bool = False, ) -> CmdOut: """ Like run, but automatically suppresses stdout, if not in DEBUG log level. @@ -204,4 +205,11 @@ def run_no_stdout( if logging.getLogger(__name__.split(".")[0]).isEnabledFor(logging.DEBUG): return run(cmd, env=env, log=log, check=check, error_msg=error_msg) log = Log.NONE - return run(cmd, env=env, log=log, check=check, error_msg=error_msg) + return run( + cmd, + env=env, + log=log, + check=check, + error_msg=error_msg, + needs_user_terminal=needs_user_terminal, + ) diff --git a/pkgs/clan-cli/clan_cli/facts/upload.py b/pkgs/clan-cli/clan_cli/facts/upload.py index fc687c988..b1f87fdd1 100644 --- a/pkgs/clan-cli/clan_cli/facts/upload.py +++ b/pkgs/clan-cli/clan_cli/facts/upload.py @@ -41,6 +41,7 @@ def upload_secrets(machine: Machine) -> None: ], ), log=Log.BOTH, + needs_user_terminal=True, ) diff --git a/pkgs/clan-cli/clan_cli/machines/hardware.py b/pkgs/clan-cli/clan_cli/machines/hardware.py index 16c10ad78..b4efee909 100644 --- a/pkgs/clan-cli/clan_cli/machines/hardware.py +++ b/pkgs/clan-cli/clan_cli/machines/hardware.py @@ -157,7 +157,7 @@ def generate_machine_hardware_info(opts: HardwareGenerateOptions) -> HardwareRep *config_command, ], ) - out = run(cmd) + out = run(cmd, needs_user_terminal=True) if out.returncode != 0: log.error(out) msg = f"Failed to inspect {opts.machine}. Address: {opts.target_host}" diff --git a/pkgs/clan-cli/clan_cli/machines/list.py b/pkgs/clan-cli/clan_cli/machines/list.py index d80c897a8..63c5bf847 100644 --- a/pkgs/clan-cli/clan_cli/machines/list.py +++ b/pkgs/clan-cli/clan_cli/machines/list.py @@ -121,7 +121,7 @@ def check_machine_online( ], ) try: - proc = run_no_stdout(cmd) + proc = run_no_stdout(cmd, needs_user_terminal=True) if proc.returncode != 0: return "Offline" except ClanCmdError: diff --git a/pkgs/clan-cli/clan_cli/vars/upload.py b/pkgs/clan-cli/clan_cli/vars/upload.py index f735db942..ef9a9cdc3 100644 --- a/pkgs/clan-cli/clan_cli/vars/upload.py +++ b/pkgs/clan-cli/clan_cli/vars/upload.py @@ -42,6 +42,7 @@ def upload_secrets(machine: Machine) -> None: ], ), log=Log.BOTH, + needs_user_terminal=True, )