diff --git a/ydb/tools/cfg/validation.py b/ydb/tools/cfg/validation.py index 892329126450..8f385718b803 100644 --- a/ydb/tools/cfg/validation.py +++ b/ydb/tools/cfg/validation.py @@ -171,6 +171,7 @@ "ic_port": { "type": "integer", }, + "node_id": {"type": "integer", "minLength": 1}, }, "required": [ "name", @@ -946,6 +947,7 @@ def _host_and_ic_port(host): def checkNameServiceDuplicates(validator, allow_duplicates, instance, schema): names = collections.Counter([_host_and_ic_port(host) for host in instance]) + node_ids = collections.Counter([host["node_id"] for host in instance if host.get("node_id")]) for name, count in names.items(): if count > 1: @@ -956,6 +958,15 @@ def checkNameServiceDuplicates(validator, allow_duplicates, instance, schema): name, ) ) + for node_id, count in node_ids.items(): + if count > 1: + yield jsonschema.ValidationError( + "NodeId of items contains non-unique elements %r: %s. " + % ( + instance, + node_id, + ) + ) _Validator = jsonschema.Draft4Validator