Skip to content

Commit 9e66ffc

Browse files
authored
ref: Remove unused Group.get_oldest_event and legacy events behavior (#14038)
Removes the "snuba.events-queries.enabled" option and legacy code paths that were not being used in production. Also removes the unused Group.get_oldest_event method. Part 4 of #13905
1 parent 43ed1e1 commit 9e66ffc

File tree

2 files changed

+47
-74
lines changed

2 files changed

+47
-74
lines changed

src/sentry/models/group.py

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from django.utils.http import urlencode
2222
from django.utils.translation import ugettext_lazy as _
2323

24-
from sentry import eventtypes, tagstore, options
24+
from sentry import eventtypes, tagstore
2525
from sentry.constants import (
2626
DEFAULT_LOGGER_NAME, EVENT_ORDERING_KEY, LOG_LEVELS, MAX_CULPRIT_LENGTH
2727
)
@@ -424,41 +424,13 @@ def get_latest_event(self):
424424
return self._latest_event
425425

426426
def get_latest_event_for_environments(self, environments=()):
427-
use_snuba = options.get('snuba.events-queries.enabled')
428-
429-
# Fetch without environment if Snuba is not enabled
430-
if not use_snuba:
431-
return self.get_latest_event()
432-
433427
return get_oldest_or_latest_event_for_environments(
434428
EventOrdering.LATEST,
435429
environments=environments,
436430
issue_id=self.id,
437431
project_id=self.project_id)
438432

439-
def get_oldest_event(self):
440-
from sentry.models import Event
441-
442-
if not hasattr(self, '_oldest_event'):
443-
oldest_events = sorted(
444-
Event.objects.filter(
445-
group_id=self.id,
446-
).order_by('datetime')[0:5],
447-
key=EVENT_ORDERING_KEY,
448-
)
449-
try:
450-
self._oldest_event = oldest_events[0]
451-
except IndexError:
452-
self._oldest_event = None
453-
return self._oldest_event
454-
455433
def get_oldest_event_for_environments(self, environments=()):
456-
use_snuba = options.get('snuba.events-queries.enabled')
457-
458-
# Fetch without environment if Snuba is not enabled
459-
if not use_snuba:
460-
return self.get_oldest_event()
461-
462434
return get_oldest_or_latest_event_for_environments(
463435
EventOrdering.OLDEST,
464436
environments=environments,

tests/sentry/models/test_group.py

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
from __future__ import absolute_import
22

3-
import six
4-
5-
from datetime import datetime, timedelta
3+
from datetime import timedelta
64

75
import pytest
86
from django.db.models import ProtectedError
@@ -16,6 +14,12 @@
1614

1715

1816
class GroupTest(TestCase):
17+
def setUp(self):
18+
super(GroupTest, self).setUp()
19+
self.min_ago = (timezone.now() - timedelta(minutes=1)).isoformat()[:19]
20+
self.two_min_ago = (timezone.now() - timedelta(minutes=2)).isoformat()[:19]
21+
self.just_over_one_min_ago = (timezone.now() - timedelta(seconds=61)).isoformat()[:19]
22+
1923
def test_is_resolved(self):
2024
group = self.create_group(status=GroupStatus.RESOLVED)
2125
assert group.is_resolved()
@@ -36,56 +40,53 @@ def test_is_resolved(self):
3640

3741
assert group.is_resolved()
3842

39-
def test_get_oldest_latest_event_no_events(self):
40-
group = self.create_group()
43+
def test_get_latest_event_no_events(self):
44+
project = self.create_project()
45+
group = self.create_group(project=project)
4146
assert group.get_latest_event() is None
42-
assert group.get_oldest_event() is None
43-
44-
def test_get_oldest_latest_events(self):
45-
group = self.create_group()
46-
for i in range(0, 3):
47-
self.create_event(
48-
event_id=six.text_type(i),
49-
group=group,
50-
datetime=datetime(2013, 8, 13, 3, 8, i),
51-
)
5247

53-
assert group.get_latest_event().event_id == '2'
54-
assert group.get_oldest_event().event_id == '0'
48+
def test_get_latest_event(self):
49+
self.store_event(
50+
data={
51+
'event_id': 'a' * 32,
52+
'fingerprint': ['group-1'],
53+
'timestamp': self.two_min_ago,
54+
},
55+
project_id=self.project.id,
56+
)
57+
self.store_event(
58+
data={
59+
'event_id': 'b' * 32,
60+
'fingerprint': ['group-1'],
61+
'timestamp': self.min_ago,
62+
},
63+
project_id=self.project.id,
64+
)
5565

56-
def test_get_oldest_latest_identical_timestamps(self):
57-
group = self.create_group()
58-
for i in range(0, 3):
59-
self.create_event(
60-
event_id=six.text_type(i),
61-
group=group,
62-
datetime=datetime(2013, 8, 13, 3, 8, 50),
63-
)
66+
group = Group.objects.first()
6467

65-
assert group.get_latest_event().event_id == '2'
66-
assert group.get_oldest_event().event_id == '0'
68+
assert group.get_latest_event().event_id == 'b' * 32
6769

68-
def test_get_oldest_latest_almost_identical_timestamps(self):
69-
group = self.create_group()
70-
self.create_event(
71-
event_id='0',
72-
group=group,
73-
datetime=datetime(2013, 8, 13, 3, 8, 0), # earliest
70+
def test_get_latest_almost_identical_timestamps(self):
71+
self.store_event(
72+
data={
73+
'event_id': 'a' * 32,
74+
'fingerprint': ['group-1'],
75+
'timestamp': self.just_over_one_min_ago,
76+
},
77+
project_id=self.project.id,
7478
)
75-
for i in range(1, 3):
76-
self.create_event(
77-
event_id=six.text_type(i),
78-
group=group,
79-
datetime=datetime(2013, 8, 13, 3, 8, 30), # all in the middle
80-
)
81-
self.create_event(
82-
event_id='3',
83-
group=group,
84-
datetime=datetime(2013, 8, 13, 3, 8, 59), # latest
79+
self.store_event(
80+
data={
81+
'event_id': 'b' * 32,
82+
'fingerprint': ['group-1'],
83+
'timestamp': self.min_ago,
84+
},
85+
project_id=self.project.id,
8586
)
87+
group = Group.objects.first()
8688

87-
assert group.get_latest_event().event_id == '3'
88-
assert group.get_oldest_event().event_id == '0'
89+
assert group.get_latest_event().event_id == 'b' * 32
8990

9091
def test_is_ignored_with_expired_snooze(self):
9192
group = self.create_group(

0 commit comments

Comments
 (0)