Skip to content

Commit

Permalink
fix: no attribute error (#69908)
Browse files Browse the repository at this point in the history
  • Loading branch information
nhsiehgit committed Apr 29, 2024
1 parent 5480bb1 commit 6965eb0
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions src/sentry/api/serializers/models/alert_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ def get_attrs(
incident_map[incident.id] = serialize(incident, user=user)

serialized_alert_rules = serialize(alert_rules, user=user)
serialized_map_by_id = {
serialized_alert_rule_map_by_id = {
serialized_alert["id"]: serialized_alert for serialized_alert in serialized_alert_rules
}

Expand All @@ -348,12 +348,26 @@ def get_attrs(

for item in item_list:
item_id = str(item.id)
if item_id in serialized_map_by_id:
serialized_alert_rule = serialized_map_by_id[item_id]
if item_id in serialized_alert_rule_map_by_id:
# This is a metric alert rule
serialized_alert_rule = serialized_alert_rule_map_by_id[item_id]
if "latestIncident" in self.expand:
serialized_alert_rule["latestIncident"] = incident_map.get(item.incident_id)
# Eg. we _have_ an incident
try:
serialized_alert_rule["latestIncident"] = incident_map.get(item.incident_id)
except AttributeError as e:
logger.exception(
"incident serialization error",
extra={
"exception": e,
"alert_rule_id": item_id,
"is_metric_alert": isinstance(item, AlertRule),
"is_issue_alert": isinstance(item, Rule),
},
)
results[item] = serialized_alert_rule
elif item_id in serialized_issue_rule_map_by_id:
# This is an issue alert rule
results[item] = serialized_issue_rule_map_by_id[item_id]
else:
logger.error(
Expand Down

0 comments on commit 6965eb0

Please sign in to comment.