From 289e0096e8342ff8bfdb4282df2205497c083f28 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 8 Feb 2023 13:33:18 +0100 Subject: [PATCH] API: Add logging for replaying by idempotency key --- src/pretix/api/middleware.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/pretix/api/middleware.py b/src/pretix/api/middleware.py index 9e18c121cf..b69beab19a 100644 --- a/src/pretix/api/middleware.py +++ b/src/pretix/api/middleware.py @@ -20,6 +20,7 @@ # . # import json +import logging from hashlib import sha1 from django.conf import settings @@ -35,6 +36,9 @@ from pretix.base.models import Organizer from pretix.helpers import OF_SELF +logger = logging.getLogger(__name__) + + class IdempotencyMiddleware: def __init__(self, get_response): self.get_response = get_response @@ -97,6 +101,9 @@ class IdempotencyMiddleware: return resp else: if call.locked: + logger.info( + f'Concurrent request with idempotency key {idempotency_key} blocked.' + ) r = JsonResponse( {'detail': 'Concurrent request with idempotency key.'}, status=status.HTTP_409_CONFLICT, @@ -111,6 +118,7 @@ class IdempotencyMiddleware: content=content, status=call.response_code, ) + logger.info(f'API response replayed from idempotency store for key {idempotency_key} [{call.response_code}]') for k, v in json.loads(call.response_headers).values(): r[k] = v return r