From e34979b8025bb074b68e258f08a85d3784e4846d Mon Sep 17 00:00:00 2001 From: AKHIL JHA Date: Sun, 30 Apr 2023 22:59:43 +0530 Subject: [PATCH] Custom socket connect timeout in Session() --- broker/hosts.py | 1 + broker/session.py | 3 ++- broker/settings.py | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/broker/hosts.py b/broker/hosts.py index c1a594c7..cd89974d 100644 --- a/broker/hosts.py +++ b/broker/hosts.py @@ -66,6 +66,7 @@ def connect( password=password, port=_port, key_filename=key_filename, + timeout=timeout ) def close(self): diff --git a/broker/session.py b/broker/session.py index df9d0303..7a966136 100644 --- a/broker/session.py +++ b/broker/session.py @@ -32,7 +32,8 @@ def __init__(self, **kwargs): sock.settimeout(kwargs.get("timeout")) port = kwargs.get("port", 22) key_filename = kwargs.get("key_filename") - helpers.simple_retry(sock.connect, [(host, port)]) + timeout = kwargs.get("timeout", 60) + helpers.simple_retry(sock.connect, [(host, port)], max_timeout=timeout) self.session = ssh2_Session() self.session.handshake(sock) if key_filename: diff --git a/broker/settings.py b/broker/settings.py index a20154c8..4bea0854 100644 --- a/broker/settings.py +++ b/broker/settings.py @@ -70,7 +70,7 @@ def init_settings(settings_path, interactive=False): validators = [ Validator("HOST_USERNAME", default="root"), Validator("HOST_PASSWORD", default="toor"), - Validator("HOST_CONNECTION_TIMEOUT", default=None), + Validator("HOST_CONNECTION_TIMEOUT", default=60), Validator("HOST_SSH_PORT", default=22), Validator("HOST_SSH_KEY_FILENAME", default=None), Validator("LOGGING", is_type_of=dict),