From 290dec8bf88eddab0efd45e571102bff461ad491 Mon Sep 17 00:00:00 2001 From: Robin Bobbitt Date: Wed, 6 Aug 2025 17:24:57 -0400 Subject: [PATCH] fixes UnboundLocalError in POST /attach (#16062) * fixes UnboundLocalError in POST /attach Signed-off-by: Robin Y Bobbitt * bust cache for credentials before attaching subscription Signed-off-by: Robin Y Bobbitt --------- 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 e7bccc6080..df91226d95 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 @@ -221,8 +222,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: