Adding interval between ssh connection attempts
Signed-off-by: Andrey Berezin <a.berezin@yadro.com>
This commit is contained in:
parent
b039ee9940
commit
fc1f373477
1 changed files with 10 additions and 4 deletions
|
@ -91,8 +91,9 @@ class SSHShell(Shell):
|
||||||
# to allow remote command to flush its output buffer
|
# to allow remote command to flush its output buffer
|
||||||
DELAY_AFTER_EXIT = 0.2
|
DELAY_AFTER_EXIT = 0.2
|
||||||
|
|
||||||
SSH_CONNECTION_ATTEMPTS: ClassVar[int] = 3
|
SSH_CONNECTION_ATTEMPTS: ClassVar[int] = 4
|
||||||
CONNECTION_TIMEOUT = 90
|
SSH_ATTEMPTS_INTERVAL: ClassVar[int] = 10
|
||||||
|
CONNECTION_TIMEOUT = 60
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
@ -251,7 +252,9 @@ class SSHShell(Shell):
|
||||||
|
|
||||||
return (full_stdout.decode(errors="ignore"), full_stderr.decode(errors="ignore"))
|
return (full_stdout.decode(errors="ignore"), full_stderr.decode(errors="ignore"))
|
||||||
|
|
||||||
def _create_connection(self, attempts: int = SSH_CONNECTION_ATTEMPTS) -> SSHClient:
|
def _create_connection(
|
||||||
|
self, attempts: int = SSH_CONNECTION_ATTEMPTS, interval: int = SSH_ATTEMPTS_INTERVAL
|
||||||
|
) -> SSHClient:
|
||||||
for attempt in range(attempts):
|
for attempt in range(attempts):
|
||||||
connection = SSHClient()
|
connection = SSHClient()
|
||||||
connection.set_missing_host_key_policy(AutoAddPolicy())
|
connection.set_missing_host_key_policy(AutoAddPolicy())
|
||||||
|
@ -295,7 +298,10 @@ class SSHShell(Shell):
|
||||||
connection.close()
|
connection.close()
|
||||||
can_retry = attempt + 1 < attempts
|
can_retry = attempt + 1 < attempts
|
||||||
if can_retry:
|
if can_retry:
|
||||||
logger.warn(f"Can't connect to host {self.host}, will retry. Error: {exc}")
|
logger.warn(
|
||||||
|
f"Can't connect to host {self.host}, will retry after {interval}s. Error: {exc}"
|
||||||
|
)
|
||||||
|
sleep(interval)
|
||||||
continue
|
continue
|
||||||
logger.exception(f"Can't connect to host {self.host}")
|
logger.exception(f"Can't connect to host {self.host}")
|
||||||
raise HostIsNotAvailable(self.host) from exc
|
raise HostIsNotAvailable(self.host) from exc
|
||||||
|
|
Loading…
Reference in a new issue