in libs/pagerduty/__init__.py [0:0]
def remove_user_from_escalation_policy(self, policy_id, user_id, delete_empty=False):
"""
remove user from an escalation policy.
:param policy_id: policy_id
:param user_id: user_id
:param delete_empty: whether to delete an escalation policy with no targets
:return: bool
"""
removed = False
policy = self.get_escalation_policy_by_id(policy_id=policy_id)
if len(policy["escalation_policy"]["escalation_rules"]) == 1:
rule = policy["escalation_policy"]["escalation_rules"][0]
if len(rule["targets"]) > 1:
for target in rule["targets"]:
if target["id"] == user_id:
target_idx = rule["targets"].index(target)
rule["targets"].pop(target_idx)
removed = self.update_escalation_policy_by_id(policy_id=policy_id, policy=policy)
elif delete_empty is True:
for service in policy["escalation_policy"]["services"]:
self.delete_service(service_id=service["id"])
self.get_escalation_policy_by_id(policy_id=policy_id)
removed = self.delete_escalation_policy_by_id(policy_id=policy_id)
return removed