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 sys
import importlib.util
# Prefer the submodule implementation
ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
SUBMODULE_DIR = os.path.join(ROOT_DIR, "LOGAR-LICENSING")
if SUBMODULE_DIR not in sys.path:
sys.path.insert(0, SUBMODULE_DIR)
SUBMODULE_FILE = os.path.join(ROOT_DIR, "LOGAR-LICENSING", "License_Authority.py")
from License_Authority import (
init_authority_db,
extract_license_info_from_cert,
generate_master_root_ca,
sign_ca_csr_with_seats,
issue_license_from_csr,
renew_license_cert,
revoke_license,
list_licenses,
main,
OID_LOGAR_SEATS,
OID_LOGAR_LICENSE_ID,
OID_LOGAR_ISSUER_URL
)
if not os.path.exists(SUBMODULE_FILE):
raise ImportError(f"LOGAR-LICENSING submodule not found at {SUBMODULE_FILE}. Run 'git submodule update --init --recursive'.")
spec = importlib.util.spec_from_file_location("_submodule_authority", SUBMODULE_FILE)
_sub = importlib.util.module_from_spec(spec)
spec.loader.exec_module(_sub)
# Export public symbols from submodule into this module's namespace
for attr in dir(_sub):
if not attr.startswith("__"):
globals()[attr] = getattr(_sub, attr)
if __name__ == "__main__":
main()
_sub.main()