Merge pull request #1504 from GSA/integrity_error_fix_two

Fixing IntegrityError problems, again.
This commit is contained in:
Carlo Costino
2024-12-30 10:21:32 -05:00
committed by GitHub

View File

@@ -24,7 +24,6 @@ from app.enums import JobStatus, KeyType, NotificationType
from app.errors import TotalRequestsError from app.errors import TotalRequestsError
from app.notifications.process_notifications import ( from app.notifications.process_notifications import (
get_notification, get_notification,
notification_exists,
persist_notification, persist_notification,
) )
from app.notifications.validators import check_service_over_total_message_limit from app.notifications.validators import check_service_over_total_message_limit
@@ -214,9 +213,7 @@ def save_sms(self, service_id, notification_id, encrypted_notification, sender_i
f"service not allowed to send for job_id {notification.get('job', None)}, aborting" f"service not allowed to send for job_id {notification.get('job', None)}, aborting"
) )
) )
current_app.logger.debug( current_app.logger.debug(f"SMS {notification_id} failed as restricted service")
"SMS {} failed as restricted service".format(notification_id)
)
return return
try: try:
@@ -244,11 +241,12 @@ def save_sms(self, service_id, notification_id, encrypted_notification, sender_i
reply_to_text=reply_to_text, reply_to_text=reply_to_text,
) )
except IntegrityError: except IntegrityError:
if notification_exists(notification_id): current_app.logger.warning(
saved_notification = get_notification(notification_id) f"{NotificationType.SMS}: {notification_id} already exists."
)
else: # If we don't have the return statement here, we will fall through and end
raise # up retrying because IntegrityError is a subclass of SQLAlchemyError
return
# Kick off sns process in provider_tasks.py # Kick off sns process in provider_tasks.py
sn = saved_notification sn = saved_notification