How can we get tree structure of all the operational data(only config false) nodes defined in YANG model?
How can we get tree structure of all the operational data(only config false) nodes defined in YANG model?
depends on what you mean, get via some northbound interface (NETCONF/cli/restconf/…), or when using confd-lib code? (maapi_ vs cdb_, etc.)
Here it’s sample yang file
module _sample {
yang-version 1.1;
namespace "urn:altiostar:_sample";
prefix samplealtiostar;
leaf userLabel {
description
"A user-friendly name of this object.";
type string;
}
leaf userFalse {
description
"Operational data";
type string;
config false;
}
}
Defined 2 leaves, one is config true another is config false(operational).
Using pyang tool, able to display this YANG data in tree structure as follows
pyang -f tree sample.yang
module: _sample
+--rw userLabel? string
+--ro userFalse? string
But we need only operational data to be displayed here like as follows
module: _sample
+--ro userFalse? string
Can we get only operational data display?
Not really, I’m afraid. You might have some luck with a “script” like this:
pred='[not(.//yin:config[@value="false"])]'
pyang -f yin your-root-module.yang \
| xmlstarlet ed -N yin=urn:ietf:params:xml:ns:yang:yin:1 \
-d "//yin:container${pred}" \
-d "//yin:leaf${pred}" \
-d "//yin:list${pred}" \
-d "//yin:leaf-list${pred}" \
| pyang -f tree
Note it ignores choice
or case
statements - it’s up to you how they should be handled. But more importantly, it completely ignores augment
or grouping
/uses
, and I’m afraid those cannot be processed with such script, if your data model uses those, I think you can either do some text-processing of the -f tree
output, or write a modification of the tree pyang plugin.