in libs/pagerduty/__init__.py [0:0]
def remove_from_oncalls(self, user_email):
"""
Removes a user from oncalls, and then deletes the user.
:param email: user email
:return: bool
"""
deleted = False
user_id = self.find_user_id(user_email=user_email)
if user_id is not None:
try:
userdel = json.loads(self.delete_user(user_id=user_id))
if "error" in userdel:
for conflict in userdel["error"]["conflicts"]:
if conflict["type"] == "schedule":
self.remove_user_from_schedule(schedule_id=conflict["id"], user_id=user_id)
elif conflict["type"] == "escalation_policy":
self.remove_user_from_escalation_policy(policy_id=conflict["id"],
user_id=user_id,
delete_empty=True)
userdel = self.delete_user(user_id=user_id)
if userdel == "":
deleted = True
except ValueError:
deleted = True
else:
deleted = True
return deleted