2016-06-16 13 views
1

Die RFC6020 sagt:Warum erlaubt die Pyang-Validierung, eine Liste ohne gültigen Schlüssel zu definieren, wenn die Liste in einer Gruppierung ist?

The "key" statement [...] takes as an argument a string that specifies a space-separated list of leaf identifiers of this list. [...] Each such leaf identifier MUST refer to a child leaf of the list. The leafs can be defined directly in substatements to the list, or in groupings used in the list.

Trotz dieser Tatsache ist es möglich, erfolgreich unter Gruppierung in pyang zu validieren:

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

Wenn die Liste außerhalb einer Gruppierung ist, oder wenn ich die Gruppierung verwenden ohne Augmentationen, dann bekomme ich einen Fehler (von der erwartet wird):

error: the key "there-is-no-such-leaf" does not reference an existing leaf

Was ist der Punkt Gruppierungen ist t mit Hut benötigt Augmentationen, um verwendet zu werden?

Antwort

0

Laut Martin Bjorklund, Autor der entsprechenden RFCs, ist dies not valid YANG. Pyang erkennt dies aufgrund eines Fehlers in seiner Implementierung nicht. Der RFC-Text, den Sie in Ihrer Frage zitiert haben, lässt keine andere Interpretation zu und scheint absichtlich zu sein. Gruppierungen sollten niemals so verwendet werden.

+0

@Piotr, du hattest die ganze Zeit recht. :) – predi

0

Könnte es sein, dass grouping kein Datendefinitionsknoten ist und pyang nur solche Knoten validiert?

The grouping statement is not a data definition statement and, as such, does not define any nodes in the schema tree.

RFC6020