windows installer fixes
CI Test Suite / Run Component Tests & Pipeline Verification (push) Failing after 1m36s
Release Binaries & Packages / Build & Release Standalone Binaries (Linux & Windows Cross-Compilation) (push) Successful in 10m7s

This commit is contained in:
2026-09-26 21:07:34 +02:00
parent a133050cb5
commit 8287af3129
2 changed files with 15 additions and 13 deletions
+12 -7
View File
@@ -768,11 +768,12 @@ def init_db(db_path: str, enrollment_secret: Optional[str] = None, max_seats: in
conn.execute("INSERT INTO hermes_tokens (token, name, created_at, status) VALUES (?, 'Default Hermes Agent', ?, 'active')",
(initial_token, now_iso))
status = "active" if max_seats > 0 else "unlicensed"
if enrollment_secret:
conn.execute("""
INSERT OR IGNORE INTO license_config (id, max_seats, enrollment_secret, license_status)
VALUES (1, ?, ?, 'unlicensed')
""", (max_seats, enrollment_secret))
VALUES (1, ?, ?, ?)
""", (max_seats, enrollment_secret, status))
conn.commit()
conn.close()
@@ -1325,8 +1326,8 @@ def enroll_client(req: ClientEnrollRequest, request: Request = None):
raise HTTPException(status_code=500, detail="License configuration not initialized")
expected_secret, max_seats = row[0], row[1]
license_status = row[2] if len(row) > 2 and row[2] else "unlicensed"
if max_seats <= 0 or license_status != "active":
license_status = row[2] if len(row) > 2 and row[2] else ("active" if max_seats > 0 else "unlicensed")
if max_seats <= 0 or license_status in ("unlicensed", "revoked", "expired"):
conn.close()
raise HTTPException(status_code=403, detail="Server is unlicensed. Import an activated .lic file via the WebUI before enrolling edge clients.")
@@ -1694,10 +1695,14 @@ def get_license_summary() -> Dict[str, Any]:
if info.get("is_expired"):
status_label = "EXPIRED"
elif max_seats <= 0 or license_status_db != "active" or info.get("is_self_signed") or not info.get("seats"):
status_label = "UNLICENSED"
else:
elif info.get("seats") and not info.get("is_self_signed"):
status_label = "ACTIVE"
elif max_seats > 0 and license_status_db == "active":
status_label = "ACTIVE"
elif info.get("is_self_signed"):
status_label = "SELF-SIGNED" if max_seats > 0 else "UNLICENSED"
else:
status_label = "UNLICENSED" if max_seats <= 0 else "ACTIVE"
pct = int((active_seats / max_seats * 100)) if max_seats > 0 else 0
return {
+3 -6
View File
@@ -6,6 +6,7 @@ import struct
import sqlite3
import unittest
import urllib.request
import uuid
import warnings
from datetime import datetime, timezone, timedelta
@@ -21,12 +22,8 @@ import pgpy
class TestServerComponent(unittest.TestCase):
def setUp(self):
self.test_db = "test_server_state.db"
self.test_config = "test_server_config.json"
if os.path.exists(self.test_db):
os.remove(self.test_db)
if os.path.exists(self.test_config):
os.remove(self.test_config)
self.test_db = f"test_server_state_{uuid.uuid4().hex[:8]}.db"
self.test_config = f"test_server_config_{uuid.uuid4().hex[:8]}.json"
def tearDown(self):
if os.path.exists(self.test_db):