Просмотр исходного кода

ref(hybrid-cloud): Remove user_service import from `hybrid_cloud/user/__init__` (#48973)

This PR removes the `user_service` import from
`hybrid_cloud/user/__init__`. This helps resolve some of the cyclic
imports preventing initializing the app as a region silo.

To test, run `SENTRY_SILO_MODE=REGION SENTRY_REGION=region sentry
devserver` with and without this PR. You may need to specify something
like
```python
SENTRY_REGION_CONFIG = (
    Region(
        "region", 1, "https://region.leeandher.ngrok.io", RegionCategory.MULTI_TENANT
    ),
)
```
in your `sentry.conf.py`.

Eventually we should do this for the other RPC services to prevent any
more cycles.

Requires https://github.com/getsentry/getsentry/pull/10533
Leander Rodrigues 1 год назад
Родитель
Сommit
2fb0b76b7e

+ 2 - 1
src/sentry/api/bases/external_actor.py

@@ -18,7 +18,8 @@ from sentry.api.validators.integrations import validate_provider
 from sentry.models import ExternalActor, Organization, Team
 from sentry.models.actor import Actor, get_actor_for_user
 from sentry.services.hybrid_cloud.organization import organization_service
-from sentry.services.hybrid_cloud.user import RpcUser, user_service
+from sentry.services.hybrid_cloud.user import RpcUser
+from sentry.services.hybrid_cloud.user.service import user_service
 from sentry.types.integrations import ExternalProviders, get_provider_choices
 
 AVAILABLE_PROVIDERS = {

+ 1 - 1
src/sentry/api/endpoints/avatar/user.py

@@ -6,7 +6,7 @@ from sentry.api.base import region_silo_endpoint
 from sentry.api.bases.avatar import AvatarMixin
 from sentry.api.bases.user import UserEndpoint
 from sentry.models import UserAvatar
-from sentry.services.hybrid_cloud.user import user_service
+from sentry.services.hybrid_cloud.user.service import user_service
 from sentry.types.region import get_local_region
 
 

+ 1 - 1
src/sentry/api/endpoints/group_details.py

@@ -29,7 +29,7 @@ from sentry.models.groupinbox import get_inbox_details
 from sentry.models.groupowner import get_owner_details
 from sentry.plugins.base import plugins
 from sentry.plugins.bases import IssueTrackingPlugin2
-from sentry.services.hybrid_cloud.user import user_service
+from sentry.services.hybrid_cloud.user.service import user_service
 from sentry.types.ratelimit import RateLimit, RateLimitCategory
 from sentry.utils import metrics
 from sentry.utils.safe import safe_execute

+ 1 - 1
src/sentry/api/endpoints/group_participants.py

@@ -6,7 +6,7 @@ from rest_framework.response import Response
 from sentry.api.base import region_silo_endpoint
 from sentry.api.bases import GroupEndpoint
 from sentry.models import GroupSubscriptionManager
-from sentry.services.hybrid_cloud.user import user_service
+from sentry.services.hybrid_cloud.user.service import user_service
 
 
 @region_silo_endpoint

+ 1 - 1
src/sentry/api/endpoints/issue_occurrence.py

@@ -10,7 +10,7 @@ from rest_framework.response import Response
 from sentry.api.base import Endpoint, region_silo_endpoint
 from sentry.api.permissions import SuperuserPermission
 from sentry.models import Project
-from sentry.services.hybrid_cloud.user import user_service
+from sentry.services.hybrid_cloud.user.service import user_service
 from sentry.utils import json
 from sentry.utils.kafka_config import get_kafka_producer_cluster_options
 from sentry.utils.samples import load_data

+ 1 - 1
src/sentry/api/endpoints/organization_member_unreleased_commits.py

@@ -4,7 +4,7 @@ from sentry.api.base import region_silo_endpoint
 from sentry.api.bases import OrganizationMemberEndpoint
 from sentry.api.serializers import serialize
 from sentry.models import Commit, Repository
-from sentry.services.hybrid_cloud.user import user_service
+from sentry.services.hybrid_cloud.user.service import user_service
 
 # TODO(dcramer): once LatestRepoReleaseEnvironment is backfilled, change this query to use the new
 # schema [performance]

+ 1 - 1
src/sentry/api/endpoints/organization_user_details.py

@@ -5,7 +5,7 @@ from rest_framework.response import Response
 from sentry.api.base import region_silo_endpoint
 from sentry.api.bases.organization import OrganizationEndpoint
 from sentry.api.endpoints.organization_member.index import MemberPermission
-from sentry.services.hybrid_cloud.user import user_service
+from sentry.services.hybrid_cloud.user.service import user_service
 
 
 @region_silo_endpoint

+ 1 - 1
src/sentry/api/endpoints/project_rule_details.py

@@ -25,7 +25,7 @@ from sentry.models.integrations.sentry_app_installation import (
     prepare_ui_component,
 )
 from sentry.rules.actions import trigger_sentry_app_action_creators_for_issues
-from sentry.services.hybrid_cloud.user import user_service
+from sentry.services.hybrid_cloud.user.service import user_service
 from sentry.signals import alert_rule_edited
 from sentry.tasks.integrations.slack import find_channel_id_for_rule
 from sentry.utils import metrics

+ 2 - 1
src/sentry/api/fields/user.py

@@ -4,7 +4,8 @@ from typing import Any
 
 from rest_framework import serializers
 
-from sentry.services.hybrid_cloud.user import RpcUser, user_service
+from sentry.services.hybrid_cloud.user import RpcUser
+from sentry.services.hybrid_cloud.user.service import user_service
 from sentry.utils.auth import find_users
 
 

+ 2 - 1
src/sentry/api/helpers/group_index/update.py

@@ -49,7 +49,8 @@ from sentry.models.grouphistory import record_group_history_from_activity_type
 from sentry.models.groupinbox import GroupInboxRemoveAction
 from sentry.notifications.types import SUBSCRIPTION_REASON_MAP, GroupSubscriptionReason
 from sentry.services.hybrid_cloud import coerce_id_from
-from sentry.services.hybrid_cloud.user import RpcUser, user_service
+from sentry.services.hybrid_cloud.user import RpcUser
+from sentry.services.hybrid_cloud.user.service import user_service
 from sentry.services.hybrid_cloud.user_option import user_option_service
 from sentry.signals import issue_resolved
 from sentry.tasks.integrations import kick_off_status_syncs

Некоторые файлы не были показаны из-за большого количества измененных файлов