def process_snoozes(group): """ Return True if the group is transitioning from "resolved" to "unresolved", otherwise return False. """ from sentry.models import GroupSnooze, GroupStatus key = GroupSnooze.get_cache_key(group.id) snooze = cache.get(key) if snooze is None: try: snooze = GroupSnooze.objects.get(group=group) except GroupSnooze.DoesNotExist: snooze = False # This cache is also set in post_save|delete. cache.set(key, snooze, 3600) if not snooze: return False if not snooze.is_valid(group, test_rates=True): snooze.delete() group.update(status=GroupStatus.UNRESOLVED) return True return False
def process_snoozes(group): """ Return True if the group is transitioning from "resolved" to "unresolved", otherwise return False. """ from sentry.models import ( Activity, GroupInboxReason, GroupSnooze, GroupStatus, add_group_to_inbox, ) from sentry.models.grouphistory import GroupHistoryStatus, record_group_history key = GroupSnooze.get_cache_key(group.id) snooze = cache.get(key) if snooze is None: try: snooze = GroupSnooze.objects.get(group=group) except GroupSnooze.DoesNotExist: snooze = False # This cache is also set in post_save|delete. cache.set(key, snooze, 3600) if not snooze: return False if not snooze.is_valid(group, test_rates=True, use_pending_data=True): snooze_details = { "until": snooze.until, "count": snooze.count, "window": snooze.window, "user_count": snooze.user_count, "user_window": snooze.user_window, } add_group_to_inbox(group, GroupInboxReason.UNIGNORED, snooze_details) record_group_history(group, GroupHistoryStatus.UNIGNORED) Activity.objects.create( project=group.project, group=group, type=Activity.SET_UNRESOLVED, user=None, ) snooze.delete() group.update(status=GroupStatus.UNRESOLVED) issue_unignored.send_robust( project=group.project, user=None, group=group, transition_type="automatic", sender="process_snoozes", ) return True return False