Changeset View
Changeset View
Standalone View
Standalone View
swh/vault/backend.py
Show First 20 Lines • Show All 486 Lines • ▼ Show 20 Lines | ) -> None: | ||||
WHERE id = %s""", | WHERE id = %s""", | ||||
(n_id,), | (n_id,), | ||||
) | ) | ||||
def _smtp_send(self, msg: MIMEText): | def _smtp_send(self, msg: MIMEText): | ||||
smtp_server = smtplib.SMTP(**self.config.get("smtp", {})) | smtp_server = smtplib.SMTP(**self.config.get("smtp", {})) | ||||
try: | try: | ||||
status = smtp_server.noop()[0] | status = smtp_server.noop()[0] | ||||
except smtplib.SMTPException: | except smtplib.SMTPException as e: | ||||
status = -1 | error_message = ( | ||||
f"Unable to send SMTP message '{msg['Subject']}' to " | |||||
f"{msg['To']}: cannot connect to server ({e})" | |||||
) | |||||
logger.error(error_message) | |||||
sentry_sdk.capture_message(error_message, "error") | |||||
else: | |||||
if status != 250: | if status != 250: | ||||
error_message = ( | error_message = ( | ||||
f"Unable to send SMTP message '{msg['Subject']}' to " | f"Unable to send SMTP message '{msg['Subject']}' to " | ||||
f"{msg['To']}: cannot connect to server" | f"{msg['To']}: server returned status {status}" | ||||
) | ) | ||||
logger.error(error_message) | logger.error(error_message) | ||||
sentry_sdk.capture_message(error_message, "error") | sentry_sdk.capture_message(error_message, "error") | ||||
else: | else: | ||||
try: | try: | ||||
# Send the message | # Send the message | ||||
smtp_server.send_message(msg) | smtp_server.send_message(msg) | ||||
except smtplib.SMTPException as exc: | except smtplib.SMTPException as exc: | ||||
logger.exception(exc) | logger.exception(exc) | ||||
error_message = ( | error_message = ( | ||||
f"Unable to send SMTP message '{msg['Subject']}' to " | f"Unable to send SMTP message '{msg['Subject']}' to " | ||||
f"{msg['To']}: {exc}" | f"{msg['To']}: {exc}" | ||||
) | ) | ||||
sentry_sdk.capture_message(error_message, "error") | sentry_sdk.capture_message(error_message, "error") | ||||
@db_transaction() | @db_transaction() | ||||
def _cache_expire(self, cond, *args, db=None, cur=None) -> None: | def _cache_expire(self, cond, *args, db=None, cur=None) -> None: | ||||
"""Low-level expiration method, used by cache_expire_* methods""" | """Low-level expiration method, used by cache_expire_* methods""" | ||||
# Embedded SELECT query to be able to use ORDER BY and LIMIT | # Embedded SELECT query to be able to use ORDER BY and LIMIT | ||||
cur.execute( | cur.execute( | ||||
""" | """ | ||||
DELETE FROM vault_bundle | DELETE FROM vault_bundle | ||||
Show All 29 Lines |