Details
-
New Feature
-
Status: In Review
-
High
-
Resolution: Unresolved
-
None
Description
YANG-related RFC routinely note an organization tree, such as the one in RFC8341:
module: ietf-netconf-acm
+--rw nacm
+--rw enable-nacm? boolean
+--rw read-default? action-type
+--rw write-default? action-type
+--rw exec-default? action-type
+--rw enable-external-groups? boolean
+--ro denied-operations yang:zero-based-counter32
+--ro denied-data-writes yang:zero-based-counter32
+--ro denied-notifications yang:zero-based-counter32
+--rw groups
| +--rw group* [name]
| +--rw name group-name-type
| +--rw user-name* user-name-type
+--rw rule-list* [name]
+--rw name string
+--rw group* union
+--rw rule* [name]
+--rw name string
+--rw module-name? union
+--rw (rule-type)?
| +--:(protocol-operation)
| | +--rw rpc-name? union
| +--:(notification)
| | +--rw notification-name? union
| +--:(data-node)
| +--rw path node-instance-identifier
+--rw access-operations? union
+--rw action action-type
+--rw comment? string
The format is specified in RFC8340.
Implement this functionality through a DeclaredStatementFormatter.toYangTreeDiagram(), similar to how toYangTextSnippet() creates a YANG snippet.
There are two modes of operation possible: an event stream, or a plain String stream. For the initial impementation consider only a String stream akin to YangTextSnippet.
The canonical implementation used by everyone lives in pyang and supports a multitude of formatting options, but for the initial cut we do not need to support the whole thing. What we need to support is:
- print groupings by default
- do not expand 'uses' statements
- allow controlling the depth of the tree
Also we do not care about mount points right now.
Attachments
Gerrit Reviews
| # | Subject | Branch | Project | Status | CR | V |
|---|---|---|---|---|---|---|
| 103715,9 | WIP: Add support for formatting of EffectiveModelContext to organization tree | master | yangtools | Status: NEW | 0 | -1 |