From 188723a970be450bafb9ee59b187d77576ea677b Mon Sep 17 00:00:00 2001 From: Gustavo Lima Chaves Date: Mon, 19 Apr 2021 16:45:10 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=8A=20[wait=5Ftcp=5Fport=5Fready]=20ma?= =?UTF-8?q?ke=20logs=20more=20meaningful,=20by=20showing=20name=20of=20hos?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The user deserves to know which host was unreachable, at least, not just the port: ```2021-04-19 23:54:54.453 INFO LISA.lisa 'customized_0' attached to test case 'ATest.a_test': [Errno -2] Name or service not known``` was not telling anything --- lisa/util/shell.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/lisa/util/shell.py b/lisa/util/shell.py index d9af3a6947..48333b8211 100644 --- a/lisa/util/shell.py +++ b/lisa/util/shell.py @@ -38,18 +38,22 @@ def wait_tcp_port_ready( timout_timer = create_timer() while timout_timer.elapsed(False) < timeout: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as tcp_socket: - result = tcp_socket.connect_ex((address, port)) - if result == 0: - is_ready = True - break - else: - if times % 10 == 0 and log: - log.debug( - f"cannot connect to TCP port: {port}, error code: {result}, " - f"tried times: {times}, elapsed: {timout_timer}. retrying..." - ) - sleep(1) - times += 1 + try: + result = tcp_socket.connect_ex((address, port)) + if result == 0: + is_ready = True + break + else: + if times % 10 == 0 and log: + log.debug( + f"cannot connect to {address}:{port}, " + f"error code: {result}, tried times: {times}," + f" elapsed: {timout_timer}. retrying..." + ) + sleep(1) + times += 1 + except Exception as e: + raise LisaException(f"failed to connect to {address}:{port}: {e}") return is_ready, result