Add setup_fingerprint_logging/src/setup_fingerprint_logging/cli.py
This commit is contained in:
parent
d2d95bb475
commit
e9d37550f4
1 changed files with 49 additions and 0 deletions
|
|
@ -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()
|
||||
Loading…
Reference in a new issue