diff --git a/scripts/validate_playbook_schema.py b/scripts/validate_playbook_schema.py new file mode 100644 index 00000000..36921227 --- /dev/null +++ b/scripts/validate_playbook_schema.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Validate playbook YAML files have required keys.""" +import yaml +import sys +import glob + +required_keys = {'name', 'description'} + +for f in glob.glob('playbooks/*.yaml'): + with open(f) as fh: + try: + data = yaml.safe_load(fh) + if not isinstance(data, dict): + print(f'ERROR: {f} is not a YAML mapping') + sys.exit(1) + missing = required_keys - set(data.keys()) + if missing: + print(f'WARNING: {f} missing keys: {missing}') + print(f'OK: {f}') + except yaml.YAMLError as e: + print(f'ERROR: {f}: {e}') + sys.exit(1)