fix failing e2e tests
This commit is contained in:
parent
0163b58399
commit
af99d62a32
4 changed files with 34 additions and 18 deletions
|
|
@ -670,7 +670,7 @@ class IncidentLogBuilder:
|
|||
# last passed step order + 1
|
||||
notification_policy_order = last_user_log.notification_policy.order + 1
|
||||
|
||||
notification_policies = user_to_notify.get_notification_policies_or_use_default_fallback(important=important)
|
||||
_, notification_policies = user_to_notify.get_notification_policies_or_use_default_fallback(important=important)
|
||||
|
||||
for notification_policy in notification_policies:
|
||||
future_notification = notification_policy.order >= notification_policy_order
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ def notify_group_task(alert_group_pk, escalation_policy_snapshot_order=None):
|
|||
continue
|
||||
|
||||
important = escalation_policy_step == EscalationPolicy.STEP_NOTIFY_GROUP_IMPORTANT
|
||||
notification_policies = user.get_notification_policies_or_use_default_fallback(important=important)
|
||||
_, notification_policies = user.get_notification_policies_or_use_default_fallback(important=important)
|
||||
|
||||
if notification_policies:
|
||||
usergroup_notification_plan += "\n_{} (".format(
|
||||
|
|
|
|||
|
|
@ -70,9 +70,13 @@ def notify_user_task(
|
|||
)
|
||||
|
||||
user_has_notification = UserHasNotification.objects.filter(pk=user_has_notification.pk).select_for_update()[0]
|
||||
using_fallback_default_notification_policy_step = False
|
||||
|
||||
if previous_notification_policy_pk is None:
|
||||
notification_policies = user.get_notification_policies_or_use_default_fallback(important=important)
|
||||
(
|
||||
using_fallback_default_notification_policy_step,
|
||||
notification_policies,
|
||||
) = user.get_notification_policies_or_use_default_fallback(important=important)
|
||||
if not notification_policies:
|
||||
task_logger.info(
|
||||
f"notify_user_task: Failed to notify. No notification policies. user_id={user_pk} alert_group_id={alert_group_pk} important={important}"
|
||||
|
|
@ -115,9 +119,15 @@ def notify_user_task(
|
|||
)
|
||||
return
|
||||
reason = None
|
||||
|
||||
def _create_user_notification_policy_log_record(**kwargs):
|
||||
if using_fallback_default_notification_policy_step and "notification_policy" in kwargs:
|
||||
kwargs["notification_policy"] = None
|
||||
return UserNotificationPolicyLogRecord(**kwargs)
|
||||
|
||||
if notification_policy is None:
|
||||
stop_escalation = True
|
||||
log_record = UserNotificationPolicyLogRecord(
|
||||
log_record = _create_user_notification_policy_log_record(
|
||||
author=user,
|
||||
type=UserNotificationPolicyLogRecord.TYPE_PERSONAL_NOTIFICATION_FINISHED,
|
||||
notification_policy=notification_policy,
|
||||
|
|
@ -146,7 +156,7 @@ def notify_user_task(
|
|||
else:
|
||||
delay_in_seconds = 0
|
||||
countdown = delay_in_seconds
|
||||
log_record = UserNotificationPolicyLogRecord(
|
||||
log_record = _create_user_notification_policy_log_record(
|
||||
author=user,
|
||||
type=UserNotificationPolicyLogRecord.TYPE_PERSONAL_NOTIFICATION_TRIGGERED,
|
||||
notification_policy=notification_policy,
|
||||
|
|
@ -160,7 +170,7 @@ def notify_user_task(
|
|||
notification_policy.notify_by == UserNotificationPolicy.NotificationChannel.SLACK
|
||||
)
|
||||
if user_to_be_notified_in_slack and alert_group.notify_in_slack_enabled is False:
|
||||
log_record = UserNotificationPolicyLogRecord(
|
||||
log_record = _create_user_notification_policy_log_record(
|
||||
author=user,
|
||||
type=UserNotificationPolicyLogRecord.TYPE_PERSONAL_NOTIFICATION_FAILED,
|
||||
notification_policy=notification_policy,
|
||||
|
|
@ -172,7 +182,7 @@ def notify_user_task(
|
|||
notification_error_code=UserNotificationPolicyLogRecord.ERROR_NOTIFICATION_POSTING_TO_SLACK_IS_DISABLED,
|
||||
)
|
||||
else:
|
||||
log_record = UserNotificationPolicyLogRecord(
|
||||
log_record = _create_user_notification_policy_log_record(
|
||||
author=user,
|
||||
type=UserNotificationPolicyLogRecord.TYPE_PERSONAL_NOTIFICATION_TRIGGERED,
|
||||
notification_policy=notification_policy,
|
||||
|
|
|
|||
|
|
@ -415,23 +415,29 @@ class User(models.Model):
|
|||
|
||||
def get_notification_policies_or_use_default_fallback(
|
||||
self, important=False
|
||||
) -> typing.List["UserNotificationPolicy"]:
|
||||
) -> typing.Tuple[bool, typing.List["UserNotificationPolicy"]]:
|
||||
"""
|
||||
If the user has no notification policies defined, fallback to using e-mail as the notification channel.
|
||||
"""
|
||||
from apps.base.models import UserNotificationPolicy
|
||||
|
||||
if not self.notification_policies.filter(important=important).exists():
|
||||
return [
|
||||
UserNotificationPolicy(
|
||||
user=self,
|
||||
step=UserNotificationPolicy.Step.NOTIFY,
|
||||
notify_by=settings.EMAIL_BACKEND_INTERNAL_ID,
|
||||
important=important,
|
||||
order=0,
|
||||
),
|
||||
]
|
||||
return list(self.notification_policies.filter(important=important).all())
|
||||
return (
|
||||
True,
|
||||
[
|
||||
UserNotificationPolicy(
|
||||
user=self,
|
||||
step=UserNotificationPolicy.Step.NOTIFY,
|
||||
notify_by=settings.EMAIL_BACKEND_INTERNAL_ID,
|
||||
important=important,
|
||||
order=0,
|
||||
),
|
||||
],
|
||||
)
|
||||
return (
|
||||
False,
|
||||
list(self.notification_policies.filter(important=important).all()),
|
||||
)
|
||||
|
||||
def update_alert_group_table_selected_columns(self, columns: typing.List[AlertGroupTableColumn]) -> None:
|
||||
if self.alert_group_table_selected_columns != columns:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue