From e9d37550f40f01838bc377d2611256d648da3ef2 Mon Sep 17 00:00:00 2001 From: Mika Date: Wed, 25 Feb 2026 12:01:57 +0000 Subject: [PATCH] Add setup_fingerprint_logging/src/setup_fingerprint_logging/cli.py --- .../src/setup_fingerprint_logging/cli.py | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 setup_fingerprint_logging/src/setup_fingerprint_logging/cli.py diff --git a/setup_fingerprint_logging/src/setup_fingerprint_logging/cli.py b/setup_fingerprint_logging/src/setup_fingerprint_logging/cli.py new file mode 100644 index 0000000..294b0bd --- /dev/null +++ b/setup_fingerprint_logging/src/setup_fingerprint_logging/cli.py @@ -0,0 +1,49 @@ +import argparse +import logging +import sys +from setup_fingerprint_logging.core import generate_setup_fingerprint + + +def main() -> None: + """Command-line interface for generating and logging setup fingerprint.""" + parser = argparse.ArgumentParser( + description=( + "Erzeugt einen deterministischen Setup-Fingerprint basierend auf den angegebenen Parametern" + ) + ) + + parser.add_argument("--policy_hash", required=True, help="Policy-Hashwert") + parser.add_argument("--runner_image", required=True, help="Name oder Hash des Runner-Images") + parser.add_argument("--kernel", required=True, help="Kernel-Version") + parser.add_argument("--python_version", required=True, help="Python-Laufzeitversion") + parser.add_argument("--gate_version", required=True, help="Version des Gate-Monitor-Systems") + + args = parser.parse_args() + + logging.basicConfig(level=logging.INFO, format="%(message)s") + + try: + # Input Validation + for param_name in ["policy_hash", "runner_image", "kernel", "python_version", "gate_version"]: + value = getattr(args, param_name) + assert isinstance(value, str) and value.strip(), f"Ungültiger Wert für {param_name}" + + fingerprint = generate_setup_fingerprint( + policy_hash=args.policy_hash, + runner_image=args.runner_image, + kernel=args.kernel, + python_version=args.python_version, + gate_version=args.gate_version, + ) + + logging.info(f"Setup-Fingerprint: {fingerprint}") + except AssertionError as e: + logging.error(str(e)) + sys.exit(1) + except Exception as e: + logging.exception(f"Fehler bei der Fingerprint-Erzeugung: {e}") + sys.exit(1) + + +if __name__ == "__main__": + main()