Skip to content

Commit db65a95

Browse files
ref: fix various types for sentry.monitors
1 parent 29ff72e commit db65a95

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

src/sentry/monitors/clock_tasks/check_missed.py

+3
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ def mark_environment_missing(monitor_environment_id: int, ts: datetime):
107107
return
108108

109109
monitor = monitor_environment.monitor
110+
# next_checkin must be set, since detecting this monitor as missed means
111+
# there must have been an initial user check-in.
112+
assert monitor_environment.next_checkin is not None
110113
expected_time = monitor_environment.next_checkin
111114

112115
# add missed checkin.

src/sentry/monitors/endpoints/base_monitor_details.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
from django.db import router, transaction
4-
from django.db.models import F
4+
from django.db.models import F, QuerySet
55
from django.db.models.functions import TruncMinute
66
from django.utils.crypto import get_random_string
77
from rest_framework.request import Request
@@ -184,6 +184,7 @@ def delete_monitor(self, request: Request, project: Project, monitor: Monitor) -
184184
).values_list("id", flat=True)
185185
)
186186
with transaction.atomic(router.db_for_write(MonitorEnvironment)):
187+
monitor_objects: QuerySet[MonitorEnvironment] | QuerySet[Monitor]
187188
if env_ids:
188189
monitor_objects = (
189190
MonitorEnvironment.objects.filter(
@@ -215,11 +216,13 @@ def delete_monitor(self, request: Request, project: Project, monitor: Monitor) -
215216
event = audit_log.get_event_id("MONITOR_REMOVE")
216217

217218
# Mark rule for deletion if present and monitor is being deleted
218-
monitor = monitor_objects.first()
219-
issue_alert_rule_id = monitor.config.get("alert_rule_id") if monitor else None
219+
first_monitor = monitor_objects.first()
220+
issue_alert_rule_id = (
221+
first_monitor.config.get("alert_rule_id") if first_monitor else None
222+
)
220223

221224
# create copy of queryset as update will remove objects
222-
monitor_objects_list = list(monitor_objects)
225+
monitor_objects_list: list[MonitorEnvironment | Monitor] = list(monitor_objects)
223226
if not monitor_objects or not monitor_objects.update(
224227
status=ObjectStatus.PENDING_DELETION
225228
):

src/sentry/monitors/endpoints/organization_monitor_index_stats.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def get(self, request: Request, organization) -> Response:
108108
# Otherwise we can skip this and default to the "production" environment label.
109109
eids = list(filter(lambda eid: eid is not None, monitor_environment_map.values()))
110110
if eids:
111-
environments = Environment.objects.filter(id__in=eids)
111+
environments = list(Environment.objects.filter(id__in=eids))
112112
environment_map = {env.id: env.name for env in environments}
113113

114114
check_ins = MonitorCheckIn.objects.filter(

src/sentry/monitors/serializers.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -196,19 +196,19 @@ def get_attrs(self, item_list, user, **kwargs):
196196
for actor, serialized_actor in zip(filtered_actors, actors_serialized)
197197
}
198198

199-
monitor_environments = (
199+
monitor_environments_qs = (
200200
MonitorEnvironment.objects.filter(monitor__in=item_list)
201201
.order_by("-last_checkin")
202202
.exclude(
203203
status__in=[MonitorStatus.PENDING_DELETION, MonitorStatus.DELETION_IN_PROGRESS]
204204
)
205205
)
206206
if self.environments:
207-
monitor_environments = monitor_environments.filter(
207+
monitor_environments_qs = monitor_environments_qs.filter(
208208
environment_id__in=[env.id for env in self.environments]
209209
)
210210

211-
monitor_environments = list(monitor_environments)
211+
monitor_environments = list(monitor_environments_qs)
212212
serialized_monitor_environments = defaultdict(list)
213213
for monitor_env, serialized in zip(
214214
monitor_environments, serialize(monitor_environments, user)

0 commit comments

Comments
 (0)