Our current way of mapping augmentations onto the data tree relies on the declared model rather than effective model. This means that when a model contains multiple augmentations to the same target node, we treat them as separate entities.
This leads to problems when leaves move across these augmentations, where the leaf address changes, even when the effective model remains unchanged.
Given a base model:
container foo { }
Revision 1 of a second model:
augment base:foo { leaf foo; } augment base:foo { leaf bar; }
and revision 2 of the second model:
augment base:foo { leaf bar; leaf foo; }
The effective model and data tree layout of both revisions of the second model must remain the same.
This requires introduction of a replacement for YangInstanceIdentifier.AugmentationIdentifier, which will be a subclass of AbstractPathArgument. It's node type will be constructed from the QNameModule of the model definiting the augmentation and its localname will be 'augmentation'. The use of this special case needs to be checked for conflicts.
The parser needs to squash multiple augment instances into a single effective one, which contains all leaves.
The DataTree should provide compatibility for lookups of the data, while the leaves need to be stored in the unified form.
- blocks
-
MDSAL-237 Milestone: Implement Binding Specification - Java v2
- Resolved
-
YANGTOOLS-561 java.lang.IllegalStateException: Unknown augmentation node detected
- Resolved
-
NETCONF-841 Do not use CopyableNode.isAugmenting() in netconf.util.StreamingContext
- Resolved
-
NETCONF-842 Do not use CopyableNode.isAugmenting() in XmlNormalizedNodeBodyReader
- Resolved
-
YANGTOOLS-1348 Remove Binding-only constructs from YANG parser
- Confirmed
- is blocked by
-
YANGTOOLS-1492 Do not allow writeout of pre-Magnesium binary formats
- Resolved
- is duplicated by
-
YANGTOOLS-1416 ChoiceNodeContextNode's handling of case augmentations
- Resolved
- relates to
-
MDSAL-820 Update mdsal-binding-dom-{codec,adapter} to deal with AugmentationNode being removed
- Resolved
-
YANGTOOLS-1276 MandatoryLeafEnforcer fails when faced with augmentations
- Resolved
-
YANGTOOLS-1403 Integrate EffectiveAugmentationSchema into AugmentationSchemaNode/AugmentEffectiveStatement}
- Resolved
-
YANGTOOLS-899 Unify NodeIdentifier and NodeIdentifierWithPredicates
- Confirmed