From 251c34f1bbd832b8b2631a7a82d21d22def803f9 Mon Sep 17 00:00:00 2001 From: Yannic Klem Date: Thu, 5 Aug 2021 17:09:27 +0200 Subject: [PATCH] Categorize ssh tunnel exceptions Signed-off-by: Yannic Klem --- .../service/messaging/tunnel/SshTunnelActor.java | 3 ++- connectivity/service/src/main/resources/connectivity.conf | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/tunnel/SshTunnelActor.java b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/tunnel/SshTunnelActor.java index af96268679..093dd6e4c9 100644 --- a/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/tunnel/SshTunnelActor.java +++ b/connectivity/service/src/main/java/org/eclipse/ditto/connectivity/service/messaging/tunnel/SshTunnelActor.java @@ -45,6 +45,7 @@ import org.eclipse.ditto.connectivity.service.config.DittoConnectivityConfig; import org.eclipse.ditto.connectivity.service.config.MonitoringConfig; import org.eclipse.ditto.connectivity.service.messaging.ConnectivityStatusResolver; +import org.eclipse.ditto.connectivity.service.messaging.internal.ConnectionFailure; import org.eclipse.ditto.connectivity.service.messaging.internal.RetrieveAddressStatus; import org.eclipse.ditto.connectivity.service.messaging.monitoring.logs.ConnectionLogger; import org.eclipse.ditto.connectivity.service.messaging.monitoring.logs.ConnectionLoggerRegistry; @@ -290,7 +291,7 @@ private ResourceStatus getResourceStatus() { statusDetail = "ssh tunnel established."; } else if (error != null) { status = connectivityStatusResolver.resolve(error); - statusDetail = String.format("ssh tunnel failed (reason: %s).", error.getMessage()); + statusDetail = ConnectionFailure.determineFailureDescription(Instant.now(), error, "SSH tunnel failed"); } else { status = ConnectivityStatus.CLOSED; statusDetail = "ssh tunnel closed."; diff --git a/connectivity/service/src/main/resources/connectivity.conf b/connectivity/service/src/main/resources/connectivity.conf index 15c0201eeb..43db524313 100644 --- a/connectivity/service/src/main/resources/connectivity.conf +++ b/connectivity/service/src/main/resources/connectivity.conf @@ -36,6 +36,11 @@ ditto { {exceptionName: "com.rabbitmq.client.AuthenticationFailureException", messagePattern: ".*"} {exceptionName: "com.rabbitmq.client.ShutdownSignalException", messagePattern: ".*"} {exceptionName: "javax.net.ssl.SSLException", messagePattern: ".*"} + # SSH Tunnel + {exceptionName: "java.nio.channels.UnresolvedAddressException", messagePattern: ".*"} + {exceptionName: "org.apache.sshd.common.SshException", messagePattern: ".*authentication.*"} + {exceptionName: "java.net.ConnectException: Connection refused", messagePattern: ".*"} + {exceptionName: "java.lang.RuntimeException", messagePattern: ".*load key from.*"} //thrown when private key could not be loaded ] user-indicated-errors-extended = []