From b6c955e7da770ccecd0402073c30e67516902345 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Thu, 1 Jan 2026 17:20:28 -0300 Subject: [PATCH] comms: delete old test rooms for bstein --- .../communication/bstein-force-leave-job.yaml | 52 ++++++------------- 1 file changed, 17 insertions(+), 35 deletions(-) diff --git a/services/communication/bstein-force-leave-job.yaml b/services/communication/bstein-force-leave-job.yaml index 5d76b8b..d7f2a26 100644 --- a/services/communication/bstein-force-leave-job.yaml +++ b/services/communication/bstein-force-leave-job.yaml @@ -2,7 +2,7 @@ apiVersion: batch/v1 kind: Job metadata: - name: bstein-force-leave-3 + name: bstein-force-leave-4 namespace: comms spec: backoffLimit: 0 @@ -111,27 +111,17 @@ spec: r.raise_for_status() return r.json()["user_id"] - def admin_login_as(token, user_id): - url = f"{SYNAPSE_BASE}/_synapse/admin/v1/users/{urllib.parse.quote(user_id)}/login" - r = requests.post(url, headers={"Authorization": f"Bearer {token}"}, json={}, timeout=20) + def admin_delete_room(token, room_id): + url = f"{SYNAPSE_BASE}/_synapse/admin/v1/rooms/{urllib.parse.quote(room_id)}" + r = requests.delete( + url, + headers={"Authorization": f"Bearer {token}"}, + json={"purge": False, "block": False}, + timeout=60, + ) if r.status_code != 200: - raise RuntimeError(f"admin login-as failed: {r.status_code} {r.text}") - return r.json()["access_token"] - - def client_leave(token, room_id): - url = f"{SYNAPSE_BASE}/_matrix/client/v3/rooms/{urllib.parse.quote(room_id)}/leave" - r = requests.post(url, headers={"Authorization": f"Bearer {token}"}, json={}, timeout=20) - if r.status_code in (200, 202): - return True, None - # If already left/unknown membership, treat as non-fatal. - return False, f"{r.status_code} {r.text}" - - def client_forget(token, room_id): - url = f"{SYNAPSE_BASE}/_matrix/client/v3/rooms/{urllib.parse.quote(room_id)}/forget" - r = requests.post(url, headers={"Authorization": f"Bearer {token}"}, json={}, timeout=20) - if r.status_code in (200, 202): - return True, None - return False, f"{r.status_code} {r.text}" + raise RuntimeError(f"admin delete room failed: {room_id}: {r.status_code} {r.text}") + return r.json() def admin_joined_rooms(token, user_id): url = f"{SYNAPSE_BASE}/_synapse/admin/v1/users/{urllib.parse.quote(user_id)}/joined_rooms" @@ -165,23 +155,15 @@ spec: else: results["seeder_admin_db_promoted"] = False - # Use admin endpoint to mint a puppet token for @bstein so we can - # perform a normal leave+forget (instead of deleting rooms). - bstein_token = admin_login_as(token, TARGET_USER_ID) - for room_id in TARGET_ROOMS: room_res = {} results["rooms"][room_id] = room_res - - ok, err = client_leave(bstein_token, room_id) - room_res["left"] = ok - if err: - room_res["leave_error"] = err - - ok2, err2 = client_forget(bstein_token, room_id) - room_res["forgot"] = ok2 - if err2: - room_res["forget_error"] = err2 + try: + room_res["delete"] = admin_delete_room(token, room_id) + room_res["deleted"] = True + except Exception as e: + room_res["deleted"] = False + room_res["delete_error"] = str(e) # Verify the user is no longer joined to the rooms (best effort). results["target_joined_rooms_after"] = admin_joined_rooms(token, TARGET_USER_ID)