feat(hub): report seats_taken in WebSocket license sync and telemetry
CI Test Suite / Run Component Tests & Pipeline Verification (push) Failing after 22s

This commit is contained in:
2026-09-25 21:30:45 +02:00
parent f4996a53cc
commit fac6ae8847
3 changed files with 18 additions and 2 deletions
+14 -1
View File
@@ -1682,12 +1682,25 @@ def main():
ca_info = enrollment.extract_license_info_from_cert(f.read())
ws_url = lic_server if ("ws://" in lic_server or "wss://" in lic_server) else f"{lic_server.replace('https://', 'wss://').replace('http://', 'ws://').rstrip('/')}/ws/license"
active_seats = 0
if os.path.exists(config.get("db_path", "server_logs.db")):
try:
conn_tmp = sqlite3.connect(config.get("db_path", "server_logs.db"))
row = conn_tmp.execute("SELECT COUNT(*) FROM clients WHERE status = 'active'").fetchone()
if row:
active_seats = row[0]
conn_tmp.close()
except Exception:
pass
success, msg, res = enrollment.enroll_and_sync_license_ws(
cert_dir=cert_dir,
license_id=ca_info.get("license_id"),
license_authority_ws_url=ws_url,
server_fingerprint=config.get("server_fingerprint", ""),
hostname=config.get("server_name", "")
hostname=config.get("server_name", ""),
seats_taken=active_seats
)
if not success or not res:
+3
View File
@@ -662,6 +662,7 @@ def enroll_and_sync_license_ws(
hostname: str = "",
comm_cert_pem: Optional[str] = None,
master_root_ca_pem: Optional[str] = None,
seats_taken: Optional[int] = None,
timeout: int = 15,
verify_tls: bool = True
) -> Tuple[bool, str, Optional[Dict[str, Any]]]:
@@ -752,6 +753,8 @@ def enroll_and_sync_license_ws(
"server_fingerprint": server_fingerprint,
"hostname": hostname
}
if seats_taken is not None:
payload["seats_taken"] = seats_taken
ws.send(json.dumps(payload))
raw_reply = ws.recv(timeout=timeout)
reply = json.loads(raw_reply)