Skip to content

Commit c48113f

Browse files
authored
Merge pull request #866 from kucharskim/develop
Fix check_ssl_connection() function
2 parents e8a85ec + 230835c commit c48113f

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

node_cli/core/ssl/check.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import time
2121
import socket
2222
import logging
23+
import subprocess
2324
from contextlib import contextmanager
2425

2526
from node_cli.core.ssl.utils import detached_subprocess
@@ -201,8 +202,15 @@ def check_ssl_connection(host, port, silent=False):
201202
]
202203
expose_output = not silent
203204
with detached_subprocess(ssl_check_cmd, expose_output=expose_output) as dp:
204-
time.sleep(1)
205-
code = dp.poll()
206-
if code is not None:
207-
logger.error('Healthcheck connection failed')
208-
raise SSLHealthcheckError('OpenSSL connection verification failed')
205+
timeout = 20
206+
try:
207+
dp.wait(timeout=timeout)
208+
except subprocess.TimeoutExpired:
209+
logger.error('Healthcheck timed-out after %s s', timeout)
210+
raise SSLHealthcheckError('OpenSSL connection verification timed-out')
211+
212+
if dp.returncode == 0: # success
213+
return
214+
215+
logger.error('Healthcheck connection failed (code %s)', dp.returncode)
216+
raise SSLHealthcheckError('OpenSSL connection verification failed')

node_cli/core/ssl/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def detached_subprocess(cmd, expose_output=False):
5050
logger.debug(f'Starting detached subprocess: {cmd}')
5151
p = subprocess.Popen(
5252
cmd,
53-
stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
53+
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.DEVNULL,
5454
encoding='utf-8'
5555
)
5656
try:

0 commit comments

Comments
 (0)