diff --git a/src/sentry/hybridcloud/services/replica/impl.py b/src/sentry/hybridcloud/services/replica/impl.py index 25d5936ebc740f..a5cf2e96e69e1c 100644 --- a/src/sentry/hybridcloud/services/replica/impl.py +++ b/src/sentry/hybridcloud/services/replica/impl.py @@ -167,6 +167,11 @@ def upsert_replicated_api_token(self, *, api_token: RpcApiToken, region_name: st ) handle_replication(ApiToken, destination) + def delete_replicated_api_token(self, *, apitoken_id: int, region_name: str) -> None: + with enforce_constraints(transaction.atomic(router.db_for_write(ApiTokenReplica))): + api_token_qs = ApiTokenReplica.objects.filter(apitoken_id=apitoken_id) + api_token_qs.delete() + def upsert_replicated_org_auth_token(self, *, token: RpcOrgAuthToken, region_name: str) -> None: try: organization = Organization.objects.get(id=token.organization_id) diff --git a/src/sentry/hybridcloud/services/replica/service.py b/src/sentry/hybridcloud/services/replica/service.py index 7dca4ada049fa3..c80c2d078a5ee8 100644 --- a/src/sentry/hybridcloud/services/replica/service.py +++ b/src/sentry/hybridcloud/services/replica/service.py @@ -73,6 +73,11 @@ def upsert_replicated_api_key(self, *, api_key: RpcApiKey, region_name: str) -> def upsert_replicated_api_token(self, *, api_token: RpcApiToken, region_name: str) -> None: pass + @regional_rpc_method(resolve=ByRegionName()) + @abc.abstractmethod + def delete_replicated_api_token(self, *, apitoken_id: int, region_name: str) -> None: + pass + @regional_rpc_method(resolve=ByRegionName()) @abc.abstractmethod def upsert_replicated_org_auth_token(self, *, token: RpcOrgAuthToken, region_name: str) -> None: