Skip to content

Commit 2a1d505

Browse files
liuirene256Irene Liu
andauthored
fix(integrations): change create to not auto-enable all projects (#102040)
make it so that when we create a new data forwarder, it makes rows for all the data forwarder projects, but sets is_enrolled to false. want to do this because if user has many projects and didn't expect all the projects to start forwarding right away, it would be expensive for them. Co-authored-by: Irene Liu <[email protected]>
1 parent 97e3984 commit 2a1d505

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/sentry/integrations/api/serializers/rest_framework/data_forwarder.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ def _validate_splunk_config(self, config) -> SplunkConfig:
182182
def create(self, validated_data: Mapping[str, Any]) -> DataForwarder:
183183
data_forwarder = DataForwarder.objects.create(**validated_data)
184184

185-
# Auto-enroll all existing projects in the organization
185+
# Add rows for all existing projects in the organization
186186
project_ids = Project.objects.filter(
187187
organization_id=validated_data["organization_id"]
188188
).values_list("id", flat=True)
@@ -192,7 +192,7 @@ def create(self, validated_data: Mapping[str, Any]) -> DataForwarder:
192192
DataForwarderProject(
193193
data_forwarder=data_forwarder,
194194
project_id=project_id,
195-
is_enabled=True,
195+
is_enabled=False,
196196
)
197197
for project_id in project_ids
198198
]

tests/sentry/integrations/api/endpoints/test_data_forwarding.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ def test_create_sqs_fifo_queue_validation(self) -> None:
296296
response = self.get_error_response(self.organization.slug, status_code=400, **payload)
297297
assert "message_group_id" in str(response.data).lower()
298298

299-
def test_create_auto_enrolls_all_organization_projects(self) -> None:
299+
def test_create_auto_adds_all_organization_projects(self) -> None:
300300
# should be enrolled
301301
project1 = self.create_project(organization=self.organization)
302302
project2 = self.create_project(organization=self.organization)
@@ -315,9 +315,12 @@ def test_create_auto_enrolls_all_organization_projects(self) -> None:
315315

316316
data_forwarder = DataForwarder.objects.get(id=response.data["id"])
317317

318-
enrolled_projects = DataForwarderProject.objects.filter(
319-
data_forwarder=data_forwarder
320-
).values_list("project_id", flat=True)
318+
enrolled_projects = DataForwarderProject.objects.filter(data_forwarder=data_forwarder)
321319

322-
assert set(enrolled_projects) == {project1.id, project2.id, project3.id}
323-
assert other_project.id not in enrolled_projects
320+
enrolled_project_ids = set(enrolled_projects.values_list("project_id", flat=True))
321+
assert enrolled_project_ids == {project1.id, project2.id, project3.id}
322+
assert other_project.id not in enrolled_project_ids
323+
324+
# Verify all auto-added projects are disabled by default
325+
for enrollment in enrolled_projects:
326+
assert enrollment.is_enabled is False

0 commit comments

Comments
 (0)