Skip to content

Commit 3dfba82

Browse files
ref(crons): Subsort by last checkin (#44703)
1 parent e063a49 commit 3dfba82

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/sentry/api/endpoints/organization_monitors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def get(self, request: Request, organization) -> Response:
9797
return self.paginate(
9898
request=request,
9999
queryset=queryset,
100-
order_by=("status_order", "-name"),
100+
order_by=("status_order", "-last_checkin"),
101101
on_results=lambda x: serialize(x, request.user),
102102
paginator_cls=OffsetPaginator,
103103
)

tests/sentry/api/endpoints/test_organization_monitors.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from __future__ import annotations
2+
3+
from datetime import datetime, timedelta
14
from unittest.mock import patch
25

36
from sentry.models import Monitor, MonitorStatus, MonitorType, ScheduleType
@@ -30,17 +33,23 @@ def test_simple(self):
3033
self.check_valid_response(response, [monitor])
3134

3235
def test_sort(self):
33-
def add_status_monitor(status_key: str):
36+
last_checkin = datetime.now() - timedelta(minutes=1)
37+
last_checkin_older = datetime.now() - timedelta(minutes=5)
38+
39+
def add_status_monitor(status_key: str, date: datetime | None = None):
3440
return Monitor.objects.create(
3541
project_id=self.project.id,
3642
organization_id=self.organization.id,
3743
status=getattr(MonitorStatus, status_key),
44+
last_checkin=date or last_checkin,
3845
name=status_key,
3946
)
4047

48+
# Subsort next checkin time
4149
monitor_active = add_status_monitor("ACTIVE")
4250
monitor_ok = add_status_monitor("OK")
4351
monitor_disabled = add_status_monitor("DISABLED")
52+
monitor_error_older_checkin = add_status_monitor("ERROR", last_checkin_older)
4453
monitor_error = add_status_monitor("ERROR")
4554
monitor_missed_checkin = add_status_monitor("MISSED_CHECKIN")
4655

@@ -49,6 +58,7 @@ def add_status_monitor(status_key: str):
4958
response,
5059
[
5160
monitor_error,
61+
monitor_error_older_checkin,
5262
monitor_missed_checkin,
5363
monitor_ok,
5464
monitor_active,

0 commit comments

Comments
 (0)