fix(licensing): use importlib loader in src/License_Authority.py proxy to prevent circular imports

This commit is contained in:
2026-09-24 17:18:05 +02:00
parent 5a303808a3
commit 4943f5be62
+14 -19
View File
@@ -7,27 +7,22 @@ Repo: https://gitea.eibl.tech/me0nline/LOGAR-LICENSING.git
import os import os
import sys import sys
import importlib.util
# Prefer the submodule implementation
ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
SUBMODULE_DIR = os.path.join(ROOT_DIR, "LOGAR-LICENSING") SUBMODULE_FILE = os.path.join(ROOT_DIR, "LOGAR-LICENSING", "License_Authority.py")
if SUBMODULE_DIR not in sys.path:
sys.path.insert(0, SUBMODULE_DIR)
from License_Authority import ( if not os.path.exists(SUBMODULE_FILE):
init_authority_db, raise ImportError(f"LOGAR-LICENSING submodule not found at {SUBMODULE_FILE}. Run 'git submodule update --init --recursive'.")
extract_license_info_from_cert,
generate_master_root_ca, spec = importlib.util.spec_from_file_location("_submodule_authority", SUBMODULE_FILE)
sign_ca_csr_with_seats, _sub = importlib.util.module_from_spec(spec)
issue_license_from_csr, spec.loader.exec_module(_sub)
renew_license_cert,
revoke_license, # Export public symbols from submodule into this module's namespace
list_licenses, for attr in dir(_sub):
main, if not attr.startswith("__"):
OID_LOGAR_SEATS, globals()[attr] = getattr(_sub, attr)
OID_LOGAR_LICENSE_ID,
OID_LOGAR_ISSUER_URL
)
if __name__ == "__main__": if __name__ == "__main__":
main() _sub.main()