Browse Source

chore(hybridcloud) Switch to undeprecated integration RPC methods (#71445)

Follow up to #71433 and part of the work to remove tuples from RPC
method signatures.

Refs HC-1190
Mark Story 9 months ago
parent
commit
b77794cb82

+ 3 - 3
src/sentry/api/bases/organization_integrations.py

@@ -121,10 +121,10 @@ class RegionOrganizationIntegrationBaseEndpoint(RegionIntegrationEndpoint):
         :param integration_id:
         :return:
         """
-        integration, org_integration = integration_service.get_organization_context(
+        result = integration_service.organization_context(
             organization_id=organization_id, integration_id=integration_id
         )
-        if not integration or not org_integration:
+        if not result.integration or not result.organization_integration:
             raise Http404
 
-        return integration
+        return result.integration

+ 12 - 4
src/sentry/api/endpoints/group_integration_details.py

@@ -101,9 +101,11 @@ class GroupIntegrationDetailsEndpoint(GroupEndpoint):
             return Response({"detail": "Action is required and should be either link or create"})
 
         organization_id = group.project.organization_id
-        (integration, org_integration) = integration_service.get_organization_context(
+        result = integration_service.organization_context(
             organization_id=organization_id, integration_id=integration_id
         )
+        integration = result.integration
+        org_integration = result.organization_integration
         if not integration or not org_integration:
             return Response(status=404)
 
@@ -144,9 +146,11 @@ class GroupIntegrationDetailsEndpoint(GroupEndpoint):
             return Response({"externalIssue": ["Issue ID is required"]}, status=400)
 
         organization_id = group.project.organization_id
-        (integration, org_integration) = integration_service.get_organization_context(
+        result = integration_service.organization_context(
             organization_id=organization_id, integration_id=integration_id
         )
+        integration = result.integration
+        org_integration = result.organization_integration
         if not integration or not org_integration:
             return Response(status=404)
 
@@ -226,9 +230,11 @@ class GroupIntegrationDetailsEndpoint(GroupEndpoint):
             return Response({"detail": MISSING_FEATURE_MESSAGE}, status=400)
 
         organization_id = group.project.organization_id
-        (integration, org_integration) = integration_service.get_organization_context(
+        result = integration_service.organization_context(
             organization_id=organization_id, integration_id=integration_id
         )
+        integration = result.integration
+        org_integration = result.organization_integration
         if not integration or not org_integration:
             return Response(status=404)
 
@@ -302,9 +308,11 @@ class GroupIntegrationDetailsEndpoint(GroupEndpoint):
             return Response({"detail": "External ID required"}, status=400)
 
         organization_id = group.project.organization_id
-        (integration, org_integration) = integration_service.get_organization_context(
+        result = integration_service.organization_context(
             organization_id=organization_id, integration_id=integration_id
         )
+        integration = result.integration
+        org_integration = result.organization_integration
         if not integration or not org_integration:
             return Response(status=404)
 

+ 3 - 1
src/sentry/incidents/logic.py

@@ -1499,9 +1499,11 @@ def get_alert_rule_trigger_action_opsgenie_team(
 ) -> tuple[str, str]:
     from sentry.integrations.opsgenie.utils import get_team
 
-    integration, oi = integration_service.get_organization_context(
+    result = integration_service.organization_context(
         organization_id=organization.id, integration_id=integration_id
     )
+    integration = result.integration
+    oi = result.organization_integration
     if integration is None or oi is None:
         raise InvalidTriggerActionError("Opsgenie integration not found.")
 

+ 8 - 2
src/sentry/integrations/github/webhook.py

@@ -91,9 +91,12 @@ class Webhook:
     def __call__(self, event: Mapping[str, Any], host: str | None = None) -> None:
         external_id = get_github_external_id(event=event, host=host)
 
-        integration, installs = integration_service.get_organization_contexts(
+        result = integration_service.organization_contexts(
             external_id=external_id, provider=self.provider
         )
+        integration = result.integration
+        installs = result.organization_integrations
+
         if integration is None or not installs:
             # It seems possible for the GH or GHE app to be installed on their
             # end, but the integration to not exist. Possibly from deleting in
@@ -214,10 +217,13 @@ class InstallationEventWebhook:
             external_id = event["installation"]["id"]
             if host:
                 external_id = "{}:{}".format(host, event["installation"]["id"])
-            integration, org_integrations = integration_service.get_organization_contexts(
+            result = integration_service.organization_contexts(
                 provider=self.provider,
                 external_id=external_id,
             )
+            integration = result.integration
+            org_integrations = result.organization_integrations
+
             if integration is not None:
                 self._handle_delete(event, integration, org_integrations)
             else:

+ 3 - 1
src/sentry/integrations/gitlab/webhooks.py

@@ -270,9 +270,11 @@ class GitlabWebhookEndpoint(Endpoint, GitlabWebhookMixin):
             return result
         (external_id, secret) = result
 
-        integration, installs = integration_service.get_organization_contexts(
+        result = integration_service.organization_contexts(
             provider=self.provider, external_id=external_id
         )
+        integration = result.integration
+        installs = result.organization_integrations
         if integration is None:
             logger.info("gitlab.webhook.invalid-organization", extra=extra)
             extra["reason"] = "There is no integration that matches your organization."

+ 2 - 4
src/sentry/integrations/jira/utils/api.py

@@ -90,10 +90,8 @@ def handle_status_change(integration, data):
         logger.info("jira.missing-changelog-status", extra=log_context)
         return
 
-    _, org_integrations = integration_service.get_organization_contexts(
-        integration_id=integration.id
-    )
-    for oi in org_integrations:
+    result = integration_service.organization_contexts(integration_id=integration.id)
+    for oi in result.organization_integrations:
         install = integration.get_installation(organization_id=oi.organization_id)
         if isinstance(install, IssueSyncMixin):
             install.sync_status_inbound(issue_key, {"changelog": changelog, "issue": data["issue"]})

+ 2 - 2
src/sentry/integrations/mixins/repositories.py

@@ -122,9 +122,9 @@ class RepositoryMixin:
 
     def reinstall_repositories(self) -> None:
         """Reinstalls repositories associated with the integration."""
-        _, installs = integration_service.get_organization_contexts(integration_id=self.model.id)
+        result = integration_service.organization_contexts(integration_id=self.model.id)
 
-        for install in installs:
+        for install in result.organization_integrations:
             repository_service.reinstall_repositories_for_integration(
                 organization_id=install.organization_id,
                 integration_id=self.model.id,

+ 3 - 1
src/sentry/integrations/opsgenie/utils.py

@@ -79,9 +79,11 @@ def send_incident_alert_notification(
 ) -> bool:
     from sentry.integrations.opsgenie.integration import OpsgenieIntegration
 
-    integration, org_integration = integration_service.get_organization_context(
+    result = integration_service.organization_context(
         organization_id=incident.organization_id, integration_id=action.integration_id
     )
+    integration = result.integration
+    org_integration = result.organization_integration
     if org_integration is None or integration is None or integration.status != ObjectStatus.ACTIVE:
         logger.info("Opsgenie integration removed, but the rule is still active.")
         return False

+ 3 - 1
src/sentry/integrations/slack/utils/notifications.py

@@ -35,9 +35,11 @@ def send_incident_alert_notification(
     notification_uuid: str | None = None,
 ) -> bool:
     # Make sure organization integration is still active:
-    integration, org_integration = integration_service.get_organization_context(
+    result = integration_service.organization_context(
         organization_id=incident.organization_id, integration_id=action.integration_id
     )
+    integration = result.integration
+    org_integration = result.organization_integration
     if org_integration is None or integration is None or integration.status != ObjectStatus.ACTIVE:
         # Integration removed, but rule is still active.
         return False

+ 2 - 1
src/sentry/integrations/slack/webhooks/action.py

@@ -820,9 +820,10 @@ class SlackActionEndpoint(Endpoint):
         if action_option in NOTIFICATION_SETTINGS_ACTION_OPTIONS:
             return self.handle_enable_notifications(slack_request)
 
-        _, org_integrations = integration_service.get_organization_contexts(
+        result = integration_service.organization_contexts(
             integration_id=slack_request.integration.id
         )
+        org_integrations = result.organization_integrations
         use_block_kit = False
         if len(org_integrations):
             org_context = organization_service.get_organization_by_id(

Some files were not shown because too many files changed in this diff