From 4a9a534a47d6ed4a77414671530988dbfdf9ca3d Mon Sep 17 00:00:00 2001 From: David Herberth Date: Tue, 27 Aug 2024 14:24:35 +0200 Subject: [PATCH 1/2] ref(relay): Only update internal state when it changed --- src/sentry/api/authentication.py | 4 +++- src/sentry/api/endpoints/relay/register_response.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sentry/api/authentication.py b/src/sentry/api/authentication.py index 42f3d8d9c4a9c0..46e337e2c455ea 100644 --- a/src/sentry/api/authentication.py +++ b/src/sentry/api/authentication.py @@ -132,7 +132,6 @@ def relay_from_id(request: Request, relay_id: str) -> tuple[Relay | None, bool]: else: try: relay = Relay.objects.get(relay_id=relay_id) - relay.is_internal = is_internal_relay(request, relay.public_key) return relay, False # a Relay from the database except Relay.DoesNotExist: return None, False # no Relay found @@ -223,6 +222,9 @@ def authenticate_credentials( if relay is None: raise AuthenticationFailed("Unknown relay") + if not static: + relay.is_internal = is_internal_relay(request, relay.public_key) + try: data = relay.public_key_object.unpack(request.body, relay_sig, max_age=60 * 5) request.relay = relay diff --git a/src/sentry/api/endpoints/relay/register_response.py b/src/sentry/api/endpoints/relay/register_response.py index 0c46ea568ca283..cacccbfa58902a 100644 --- a/src/sentry/api/endpoints/relay/register_response.py +++ b/src/sentry/api/endpoints/relay/register_response.py @@ -90,7 +90,7 @@ def post(self, request: Request) -> Response: relay = Relay.objects.create( relay_id=relay_id, public_key=public_key, is_internal=is_internal ) - else: + elif not relay.is_internal == is_internal: # update the internal flag in case it is changed relay.is_internal = is_internal relay.save() From a3e52e5201e91dfed2586b4d6493d5316dfd17f2 Mon Sep 17 00:00:00 2001 From: David Herberth Date: Wed, 28 Aug 2024 10:33:15 +0200 Subject: [PATCH 2/2] Update src/sentry/api/endpoints/relay/register_response.py Co-authored-by: Joris Bayer --- src/sentry/api/endpoints/relay/register_response.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/api/endpoints/relay/register_response.py b/src/sentry/api/endpoints/relay/register_response.py index cacccbfa58902a..18f018ab90d23c 100644 --- a/src/sentry/api/endpoints/relay/register_response.py +++ b/src/sentry/api/endpoints/relay/register_response.py @@ -90,7 +90,7 @@ def post(self, request: Request) -> Response: relay = Relay.objects.create( relay_id=relay_id, public_key=public_key, is_internal=is_internal ) - elif not relay.is_internal == is_internal: + elif relay.is_internal != is_internal: # update the internal flag in case it is changed relay.is_internal = is_internal relay.save()