validate: add support for both jsonschema v3 and old v2

RHEL8 and RHEL7 have old jsonschema v2. Try v3 (Draft7) first but
fallback to v2 (Draft4) if needed.
This commit is contained in:
Kim B. Heino 2021-10-23 15:04:07 +03:00
parent 7881327004
commit 717cfd2d37

View file

@ -110,7 +110,10 @@ def parse_configuration(config_filename, schema_filename, overrides=None):
override.apply_overrides(config, overrides) override.apply_overrides(config, overrides)
normalize.normalize(config) normalize.normalize(config)
validator = jsonschema.Draft7Validator(schema) try:
validator = jsonschema.Draft7Validator(schema)
except AttributeError:
validator = jsonschema.Draft4Validator(schema)
validation_errors = tuple(validator.iter_errors(config)) validation_errors = tuple(validator.iter_errors(config))
if validation_errors: if validation_errors: