PD migrator: ignore deleted services in event rules (#1569)

Update PD migrator to create routes with no escalation chain selected
for event rules referencing deleted services
This commit is contained in:
Vadim Stepanov 2023-03-17 11:32:30 +00:00 committed by GitHub
parent 4d655dff60
commit 2bfe131591
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -22,10 +22,12 @@ def match_ruleset(
for r in ruleset["rules"]
if not r["disabled"] and r["actions"]["route"]
]
escalation_policy_ids = [
find_by_id(services, service_id)["escalation_policy"]["id"]
for service_id in service_ids
]
escalation_policy_ids = []
for service_id in service_ids:
service = find_by_id(services, service_id)
# Sometimes service cannot be found, e.g. when it is deleted but still referenced in ruleset
if service:
escalation_policy_ids.append(service["escalation_policy"]["id"])
flawed_escalation_policies = []
for escalation_policy_id in escalation_policy_ids:
@ -153,6 +155,10 @@ def _pd_service_id_to_oncall_escalation_chain_id(
return None
service = find_by_id(services, service_id)
if service is None:
# Service cannot be found, e.g. when it is deleted but still referenced in ruleset
return None
escalation_policy_id = service["escalation_policy"]["id"]
escalation_policy = find_by_id(escalation_policies, escalation_policy_id)
escalation_chain_id = escalation_policy["oncall_escalation_chain"]["id"]