Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 2 additions & 23 deletions src/sentry/eventstream/eap.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,7 @@
TraceItemType,
)
from sentry_protos.snuba.v1.trace_item_attribute_pb2 import AttributeKey, AttributeValue, IntArray
from sentry_protos.snuba.v1.trace_item_filter_pb2 import (
AndFilter,
ComparisonFilter,
TraceItemFilter,
)
from sentry_protos.snuba.v1.trace_item_filter_pb2 import ComparisonFilter, TraceItemFilter

from sentry.utils import snuba_rpc

Expand All @@ -37,14 +33,10 @@ def delete_groups_from_eap_rpc(
if not group_ids:
raise ValueError("group_ids must not be empty")

project_filter = _create_project_filter(project_id)
group_id_filter = _create_group_id_filter(list(group_ids))
combined_filter = TraceItemFilter(
and_filter=AndFilter(filters=[project_filter, group_id_filter])
)
filter_with_type = TraceItemFilterWithType(
item_type=TraceItemType.TRACE_ITEM_TYPE_OCCURRENCE,
filter=combined_filter,
filter=group_id_filter,
)

request = DeleteTraceItemsRequest(
Expand All @@ -62,19 +54,6 @@ def delete_groups_from_eap_rpc(
return response


def _create_project_filter(project_id: int) -> TraceItemFilter:
return TraceItemFilter(
comparison_filter=ComparisonFilter(
key=AttributeKey(
type=AttributeKey.TYPE_INT,
name="sentry.project_id",
),
op=ComparisonFilter.OP_EQUALS,
value=AttributeValue(val_int=project_id),
)
)


def _create_group_id_filter(group_ids: list[int]) -> TraceItemFilter:
return TraceItemFilter(
comparison_filter=ComparisonFilter(
Expand Down
11 changes: 10 additions & 1 deletion tests/sentry/eventstream/test_eap.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,16 @@ def test_deletion_with_error_dataset(self, mock_rpc):
assert request.meta.project_ids == [self.project_id]
assert request.meta.referrer == "deletions.group.eap"
assert request.meta.cogs_category == "deletions"
assert request.meta.trace_item_type == TraceItemType.TRACE_ITEM_TYPE_OCCURRENCE

assert len(request.filters) == 1
assert request.filters[0].item_type == TraceItemType.TRACE_ITEM_TYPE_OCCURRENCE
assert request.filters[0].filter.HasField("comparison_filter")
assert request.filters[0].filter.comparison_filter.key.name == "sentry.group_id"
assert (
list(request.filters[0].filter.comparison_filter.value.val_int_array.values)
== self.group_ids
)

@patch("sentry.eventstream.eap.snuba_rpc.delete_trace_items_rpc")
def test_multiple_group_ids(self, mock_rpc):
Expand All @@ -51,7 +58,9 @@ def test_multiple_group_ids(self, mock_rpc):
)

request = mock_rpc.call_args[0][0]
group_filter = request.filters[0].filter.and_filter.filters[1]
group_filter = request.filters[0].filter
assert group_filter.HasField("comparison_filter")
assert group_filter.comparison_filter.key.name == "sentry.group_id"
assert list(group_filter.comparison_filter.value.val_int_array.values) == many_group_ids

@patch("sentry.eventstream.eap.snuba_rpc.delete_trace_items_rpc")
Expand Down
Loading