fix(licensing): use importlib loader in src/License_Authority.py proxy to prevent circular imports
This commit is contained in:
+14
-19
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user