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: