Почему проверка pyang позволяет определить список без действительного ключа, если список находится в группе?

В RFC6020 говорится:

Оператор "key" [...] принимает в качестве аргумента строку, которая определяет разделенный пробелами список идентификаторов листьев этого списка. [...] Каждый такой идентификатор листа ДОЛЖЕН ссылаться на дочерний лист списка. Листы могут быть определены непосредственно в подоператорах списка или в группах, используемых в списке.

Несмотря на этот факт, можно успешно проверить следующую группу в pyang:

grouping my-grouping {
    list my-list-in-a-grouping {
        key there-is-no-such-leaf;
    }
}

Если список находится вне группировки или если я использую группировку без дополнений, то получаю ошибку (что и ожидалось):

ошибка: ключ "такой-нет-лист" не ссылается на существующий лист

Какой смысл иметь группы, которые требуют дополнений для использования?


person Piotr Babij    schedule 16.06.2016    source источник


Ответы (2)


По словам Мартина Бьорклунда, автора соответствующих RFC, это не действительный ЯН. Pyang не может обнаружить это из-за ошибки в его реализации. Текст RFC, который вы процитировали в своем вопросе, не допускает никакой другой интерпретации и, по-видимому, является преднамеренным. Группы никогда не предназначались для использования таким образом.

person predi    schedule 16.06.2016

Может ли это быть потому, что grouping не является узлом определения данных, а pyang проверяет только такие узлы?

Оператор группировки не является оператором определения данных и, как таковой, не определяет никаких узлов в дереве схемы.

RFC6020

person Piotr Babij    schedule 16.06.2016