39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
"""Run read-only metadata diagnostics through the backend's shared DatabaseService."""
|
|
import importlib.util
|
|
import json
|
|
import os
|
|
from pathlib import Path
|
|
import sys
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
spec = importlib.util.spec_from_file_location("legacy_config", ROOT / "scripts/run-backend.py")
|
|
config = importlib.util.module_from_spec(spec)
|
|
spec.loader.exec_module(config)
|
|
|
|
|
|
def failure(message):
|
|
print(json.dumps({"connected": False, "reason": "CONFIGURATION_ERROR", "errorCode": None,
|
|
"message": message, "applicationRowsRead": 0, "writes": 0},
|
|
ensure_ascii=False, indent=2))
|
|
return 2
|
|
|
|
|
|
def main():
|
|
try:
|
|
jar = config.backend_jar(ROOT)
|
|
except FileNotFoundError:
|
|
return failure("Kein eindeutiges Backend-JAR. Zuerst ./build.sh ausführen.")
|
|
try:
|
|
env = config.database_environment(ROOT, dict(os.environ))
|
|
os.chdir(ROOT / "backend")
|
|
# Credentials are passed only in the environment, never as process arguments.
|
|
os.execvpe("java", ["java", "-jar", str(jar), "--database-check"], env)
|
|
except (OSError, ValueError):
|
|
return failure("Backend-Start oder DB_URL, DB_USER und DB_PASSWORD in .env/Umgebung prüfen.")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|