From 9f93c8105b63fba0c2d3c43e4b25dfcdabce95d1 Mon Sep 17 00:00:00 2001 From: Andrey Kurilin Date: Wed, 10 Jan 2024 13:04:02 +0100 Subject: [PATCH] use draft-7 jsonschema validator Change-Id: I6ae9ec146e2aa3e4f2b9875c1a9cc8edb5780b6d --- CHANGELOG.rst | 3 +++ rally/plugins/common/validators.py | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ef7e779c94..1c176d10d5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -32,6 +32,9 @@ Changed * `xrally/xrally docker image `_ switched to use python3.11-slim as a base image instead of python3.9-slim. +* Use 'draft-7' as a default jsonschema validator when there is no meta-schema + field specified at ``$schema``. + Added ~~~~~ diff --git a/rally/plugins/common/validators.py b/rally/plugins/common/validators.py index 270b11a6d6..99eff6bee9 100644 --- a/rally/plugins/common/validators.py +++ b/rally/plugins/common/validators.py @@ -30,8 +30,13 @@ class JsonSchemaValidator(validation.Validator): """JSON schema validator""" def validate(self, context, config, plugin_cls, plugin_cfg): + validator = jsonschema.validators.validator_for( + plugin_cls.CONFIG_SCHEMA, default=jsonschema.Draft7Validator + ) try: - jsonschema.validate(plugin_cfg, plugin_cls.CONFIG_SCHEMA) + jsonschema.validate( + plugin_cfg, plugin_cls.CONFIG_SCHEMA, cls=validator + ) except jsonschema.ValidationError as err: self.fail(str(err))