From 924f224e0dcfe791b2fcedbfb1fba2679c80b309 Mon Sep 17 00:00:00 2001 From: proddata Date: Tue, 30 Jan 2024 15:30:54 +0100 Subject: [PATCH] better catch unauthorized errors with forced password prompt --- CHANGES.txt | 2 ++ crate/crash/command.py | 18 +++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 004bbcbd..227541f2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -5,6 +5,8 @@ Changes for crash Unreleased ========== +- Better catch unauthorized errors when forcing a password prompt. + 2024/01/29 0.31.0 ================= diff --git a/crate/crash/command.py b/crate/crash/command.py index a6ff895e..357a8803 100644 --- a/crate/crash/command.py +++ b/crate/crash/command.py @@ -580,17 +580,17 @@ def main(): args, password=password) except (ProgrammingError, LocationParseError) as e: msg = getattr(e, 'message', str(e)) - if '401' in msg and not args.force_passwd_prompt: - if is_tty: + if '401' in msg and not args.force_passwd_prompt and is_tty: password = getpass() - try: - cmd = _create_shell(crate_hosts, error_trace, output_writer, - is_tty, args, password=password) - except (ProgrammingError, LocationParseError) as ex: - printer.warn(str(ex)) - sys.exit(1) + try: + cmd = _create_shell(crate_hosts, error_trace, output_writer, + is_tty, args, password=password) + except (ProgrammingError, LocationParseError) as ex: + printer.warn(str(ex)) + sys.exit(1) else: - raise e + printer.warn(str(e)) + sys.exit(1) except Exception as e: printer.warn(str(e)) sys.exit(1)