diff --git a/services/comms/guest-name-job.yaml b/services/comms/guest-name-job.yaml index 5e5a2e9..10dde37 100644 --- a/services/comms/guest-name-job.yaml +++ b/services/comms/guest-name-job.yaml @@ -51,6 +51,7 @@ spec: import os import random import requests + import time import urllib.parse ADJ = [ @@ -76,14 +77,21 @@ spec: with open(MAS_ADMIN_CLIENT_SECRET_FILE, "r", encoding="utf-8") as f: secret = f.read().strip() basic = base64.b64encode(f"{MAS_ADMIN_CLIENT_ID}:{secret}".encode()).decode() - r = requests.post( - MAS_TOKEN_URL, - headers={"Authorization": f"Basic {basic}"}, - data={"grant_type": "client_credentials", "scope": "urn:mas:admin"}, - timeout=30, - ) - r.raise_for_status() - return r.json()["access_token"] + last_err = None + for attempt in range(5): + try: + r = requests.post( + MAS_TOKEN_URL, + headers={"Authorization": f"Basic {basic}"}, + data={"grant_type": "client_credentials", "scope": "urn:mas:admin"}, + timeout=30, + ) + r.raise_for_status() + return r.json()["access_token"] + except Exception as exc: # noqa: BLE001 + last_err = exc + time.sleep(2 ** attempt) + raise last_err def mas_user_id(token, username): r = requests.get(