From 9033e829fece3a12bd3a8f61cfa8b62cbee69472 Mon Sep 17 00:00:00 2001 From: Robin Bobbitt Date: Thu, 14 Aug 2025 09:56:25 -0400 Subject: [PATCH] fixes UnboundLocalError in POST /attach (#16062) (#7059) * fixes UnboundLocalError in POST /attach * bust cache for credentials before attaching subscription --------- Signed-off-by: Robin Y Bobbitt --- awx/api/views/root.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/awx/api/views/root.py b/awx/api/views/root.py index 5ef5417b5c..2ba8a01bbc 100644 --- a/awx/api/views/root.py +++ b/awx/api/views/root.py @@ -8,6 +8,7 @@ import operator from collections import OrderedDict from django.conf import settings +from django.core.cache import cache from django.utils.encoding import smart_str from django.utils.decorators import method_decorator from django.views.decorators.csrf import ensure_csrf_cookie @@ -239,8 +240,12 @@ class ApiV2AttachView(APIView): subscription_id = data.get('subscription_id', None) if not subscription_id: return Response({"error": _("No subscription ID provided.")}, status=status.HTTP_400_BAD_REQUEST) + # Ensure we always use the latest subscription credentials + cache.delete_many(['SUBSCRIPTIONS_CLIENT_ID', 'SUBSCRIPTIONS_CLIENT_SECRET']) user = getattr(settings, 'SUBSCRIPTIONS_CLIENT_ID', None) pw = getattr(settings, 'SUBSCRIPTIONS_CLIENT_SECRET', None) + if not (user and pw): + return Response({"error": _("Missing subscription credentials")}, status=status.HTTP_400_BAD_REQUEST) if subscription_id and user and pw: data = request.data.copy() try: