outposts: improve error handling for outpost service connection state
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
bd283c506d
commit
71dffb21a9
|
@ -9,6 +9,7 @@ from docker import DockerClient as UpstreamDockerClient
|
|||
from docker.errors import DockerException, NotFound
|
||||
from docker.models.containers import Container
|
||||
from docker.utils.utils import kwargs_from_env
|
||||
from paramiko.ssh_exception import SSHException
|
||||
from structlog.stdlib import get_logger
|
||||
from yaml import safe_dump
|
||||
|
||||
|
@ -49,10 +50,13 @@ class DockerClient(UpstreamDockerClient, BaseClient):
|
|||
authentication_kp=connection.tls_authentication,
|
||||
)
|
||||
tls_config = self.tls.write()
|
||||
super().__init__(
|
||||
base_url=connection.url,
|
||||
tls=tls_config,
|
||||
)
|
||||
try:
|
||||
super().__init__(
|
||||
base_url=connection.url,
|
||||
tls=tls_config,
|
||||
)
|
||||
except SSHException as exc:
|
||||
raise ServiceConnectionInvalid from exc
|
||||
self.logger = get_logger()
|
||||
# Ensure the client actually works
|
||||
self.containers.list()
|
||||
|
|
|
@ -77,8 +77,12 @@ def outpost_service_connection_state(connection_pk: Any):
|
|||
cls = DockerClient
|
||||
if isinstance(connection, KubernetesServiceConnection):
|
||||
cls = KubernetesClient
|
||||
with cls(connection) as client:
|
||||
state = client.fetch_state()
|
||||
try:
|
||||
with cls(connection) as client:
|
||||
state = client.fetch_state()
|
||||
except ServiceConnectionInvalid as exc:
|
||||
LOGGER.warning("Failed to get client status", exc=exc)
|
||||
return
|
||||
cache.set(connection.state_key, state, timeout=None)
|
||||
|
||||
|
||||
|
|
Reference in New Issue