From eb055b2c04877c26b176b477e5a55ce9b631d944 Mon Sep 17 00:00:00 2001
From: Valentin Lorentz <vlorentz@softwareheritage.org>
Date: Wed, 23 Nov 2022 13:08:59 +0100
Subject: [PATCH] Fix incorrect error messages when failing to connect

---
 swh/vault/backend.py | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/swh/vault/backend.py b/swh/vault/backend.py
index 23cd194..5c00fa0 100644
--- a/swh/vault/backend.py
+++ b/swh/vault/backend.py
@@ -492,26 +492,32 @@ class VaultBackend:
         smtp_server = smtplib.SMTP(**self.config.get("smtp", {}))
         try:
             status = smtp_server.noop()[0]
-        except smtplib.SMTPException:
-            status = -1
-        if status != 250:
+        except smtplib.SMTPException as e:
             error_message = (
                 f"Unable to send SMTP message '{msg['Subject']}' to "
-                f"{msg['To']}: cannot connect to server"
+                f"{msg['To']}: cannot connect to server ({e})"
             )
             logger.error(error_message)
             sentry_sdk.capture_message(error_message, "error")
         else:
-            try:
-                # Send the message
-                smtp_server.send_message(msg)
-            except smtplib.SMTPException as exc:
-                logger.exception(exc)
+            if status != 250:
                 error_message = (
                     f"Unable to send SMTP message '{msg['Subject']}' to "
-                    f"{msg['To']}: {exc}"
+                    f"{msg['To']}: server returned status {status}"
                 )
+                logger.error(error_message)
                 sentry_sdk.capture_message(error_message, "error")
+            else:
+                try:
+                    # Send the message
+                    smtp_server.send_message(msg)
+                except smtplib.SMTPException as exc:
+                    logger.exception(exc)
+                    error_message = (
+                        f"Unable to send SMTP message '{msg['Subject']}' to "
+                        f"{msg['To']}: {exc}"
+                    )
+                    sentry_sdk.capture_message(error_message, "error")
 
     @db_transaction()
     def _cache_expire(self, cond, *args, db=None, cur=None) -> None:
-- 
GitLab