From 3d805fa34200b9afe7d8bd71b17ca1b102400af0 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Mon, 12 Oct 2026 13:27:56 -0400 Subject: [PATCH] Fixup for closing vnc session --- .../plugins/hardwaremanagement/proxmox.py | 3 +++ confluent_server/confluent/vinzmanager.py | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/confluent_server/confluent/plugins/hardwaremanagement/proxmox.py b/confluent_server/confluent/plugins/hardwaremanagement/proxmox.py index f5f9e591..ed13d652 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/proxmox.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/proxmox.py @@ -185,6 +185,9 @@ class KvmConnection: self.portnum = 8006 self.password = consdata['ticket'] + def close(self): + pass + class KvmConnHandler: def __init__(self, pmxclient, node): diff --git a/confluent_server/confluent/vinzmanager.py b/confluent_server/confluent/vinzmanager.py index 63e3cdb1..769d3e8a 100644 --- a/confluent_server/confluent/vinzmanager.py +++ b/confluent_server/confluent/vinzmanager.py @@ -67,7 +67,12 @@ async def close_session(sessionid): return del _usersessions[sessionid] nodename = sessioninfo['nodename'] - wc = sessioninfo['webclient'] + if 'cxnmgr' in sessioninfo: + await sessioninfo['cxnmgr'].close() + return + wc = sessioninfo.get('webclient') + if not wc: + return cfg = configmanager.ConfigManager(None) c = cfg.get_node_attributes( nodename, @@ -83,12 +88,17 @@ async def close_session(sessionid): if not isinstance(bmcpass, str): bmcpass = bmcpass.decode() if bmcuser and bmcpass: + token = None + for cookie in wc.cookies: + if cookie.key.lower() == 'xsrf-token': + token = cookie.value + break await wc.grab_json_response_with_status( '/logout', {'data': [bmcuser, bmcpass]}, headers={ 'Content-Type': 'application/json', 'Accept': 'application/json', - 'X-XSRF-TOKEN': wc.cookies['XSRF-TOKEN']}) + 'X-XSRF-TOKEN': token}) async def send_grant(conn, nodename, rqtype):