Files
vuln-redhat/scripts/validate.py
T
2026-11-10 21:28:10 +01:00

27 lines
912 B
Python

#!/usr/bin/env python3
"""Validate the local Red Hat CSAF mirror."""
import argparse
import json
from pathlib import Path
def validate(root):
root = Path(root)
state = root / 'state/sync.json'
if not state.exists():
raise RuntimeError('Sync state missing')
obj = json.loads(state.read_text())
files = list((root / 'data/csaf').glob('*/*.json'))
if not files:
raise RuntimeError('No CSAF documents present')
for path in files:
data = json.loads(path.read_bytes())
if not isinstance(data, dict) or not isinstance(data.get('document'), dict):
raise RuntimeError(f'Invalid CSAF document: {path}')
print(f'Validated {len(files)} Red Hat CSAF documents; source index entries: {obj["index_count"]}')
if __name__ == '__main__':
ap = argparse.ArgumentParser()
ap.add_argument('--root', default='.')
validate(ap.parse_args().root)