List pagination, uniform config/state handling with new attributes
New `clixon-lib@2024-04-01.yang` revision and list_pagination_partial_state extension
This commit is contained in:
parent
05c881dc39
commit
07a1fa164f
14 changed files with 357 additions and 135 deletions
|
|
@ -43,7 +43,7 @@ YANG_INSTALLDIR = @YANG_INSTALLDIR@
|
|||
|
||||
# Note: mirror these to test/config.sh.in
|
||||
YANGSPECS = clixon-config@2024-04-01.yang # 7.1
|
||||
YANGSPECS += clixon-lib@2024-04-01.yang # 7.1
|
||||
YANGSPECS += clixon-lib@2024-08-01.yang # 7.2
|
||||
YANGSPECS += clixon-rfc5277@2008-07-01.yang
|
||||
YANGSPECS += clixon-xml-changelog@2019-03-21.yang
|
||||
YANGSPECS += clixon-restconf@2022-08-01.yang # 5.9
|
||||
|
|
|
|||
|
|
@ -66,8 +66,21 @@ module clixon-lib {
|
|||
- source-host (see RFC6022)
|
||||
- objectcreate
|
||||
- objectexisted
|
||||
- link # For split multiple XML files
|
||||
";
|
||||
|
||||
revision 2024-08-01 {
|
||||
description
|
||||
"Added: list-pagination-partial-state
|
||||
Released in Clixon 7.2";
|
||||
}
|
||||
revision 2024-04-01 {
|
||||
description
|
||||
"Added: debug bits type
|
||||
Added: xmldb-split extension
|
||||
Added: Default format
|
||||
Released in Clixon 7.1";
|
||||
}
|
||||
revision 2024-01-01 {
|
||||
description
|
||||
"Removed container creators from 6.5
|
||||
|
|
@ -175,6 +188,116 @@ module clixon-lib {
|
|||
enum cli{
|
||||
description "CLI format";
|
||||
}
|
||||
enum default{
|
||||
description "Default format";
|
||||
}
|
||||
}
|
||||
}
|
||||
typedef clixon_debug_t {
|
||||
description
|
||||
"Debug flags.
|
||||
Flags are seperated into subject areas and detail
|
||||
Can also be given directly as -D <flag> to clixon commands
|
||||
Note there are also constants in the code that need to be in sync with these values";
|
||||
type bits {
|
||||
/* Subjects: */
|
||||
bit default {
|
||||
description "Default logs";
|
||||
position 0;
|
||||
}
|
||||
bit msg {
|
||||
description "In/out messages";
|
||||
position 1;
|
||||
}
|
||||
bit init {
|
||||
description "Initialization";
|
||||
position 2;
|
||||
}
|
||||
bit xml {
|
||||
description "XML processing";
|
||||
position 3;
|
||||
}
|
||||
bit xpath {
|
||||
description "XPath processing";
|
||||
position 4;
|
||||
}
|
||||
bit yang {
|
||||
description "YANG processing";
|
||||
position 5;
|
||||
}
|
||||
bit backend {
|
||||
description "Backend-specific";
|
||||
position 6;
|
||||
}
|
||||
bit cli {
|
||||
description "CLI frontend";
|
||||
position 7;
|
||||
}
|
||||
bit netconf {
|
||||
description "NETCONF frontend";
|
||||
position 8;
|
||||
}
|
||||
bit restconf {
|
||||
description "RESTCONF frontend";
|
||||
position 9;
|
||||
}
|
||||
bit snmp {
|
||||
description "SNMP frontend";
|
||||
position 10;
|
||||
}
|
||||
bit nacm {
|
||||
description "NACM processing";
|
||||
position 11;
|
||||
}
|
||||
bit proc {
|
||||
description "Process handling";
|
||||
position 12;
|
||||
}
|
||||
bit datastore {
|
||||
description "Datastore xmldb management";
|
||||
position 13;
|
||||
}
|
||||
bit event {
|
||||
description "Event processing";
|
||||
position 14;
|
||||
}
|
||||
bit rpc {
|
||||
description "RPC handling";
|
||||
position 15;
|
||||
}
|
||||
bit stream {
|
||||
description "Notification streams";
|
||||
position 16;
|
||||
}
|
||||
bit parse {
|
||||
description "Parser: XML,YANG, etc";
|
||||
position 17;
|
||||
}
|
||||
bit app {
|
||||
description "External applications";
|
||||
position 20;
|
||||
}
|
||||
bit app2 {
|
||||
description "External application";
|
||||
position 21;
|
||||
}
|
||||
bit app3 {
|
||||
description "External application 2";
|
||||
position 22;
|
||||
}
|
||||
/* Detail level: */
|
||||
bit detail {
|
||||
description "Details: traces, parse trees, etc";
|
||||
position 24;
|
||||
}
|
||||
bit detail2 {
|
||||
description "Extra details";
|
||||
position 25;
|
||||
}
|
||||
bit detail3 {
|
||||
description "Probably more detail than you want";
|
||||
position 26;
|
||||
}
|
||||
}
|
||||
}
|
||||
identity snmp {
|
||||
|
|
@ -199,12 +322,34 @@ module clixon-lib {
|
|||
"A CLI session";
|
||||
base ncm:transport;
|
||||
}
|
||||
extension list-pagination-partial-state {
|
||||
description
|
||||
"List should be partially read according to the clixon_pagination_cb_register API.
|
||||
This is a performance enhancement of pagination state data.
|
||||
This means that a special callback is used for retreiving list state which is aware of
|
||||
offset/limit attributes.
|
||||
In this way the non-config data can be partially read by the server, instead of reading
|
||||
the whole state on every pagination request.
|
||||
It affects only the server/backend-side
|
||||
It only handles the offset and limit attributes, all other attributes,
|
||||
such as where, sort-by, direction, etc, are ignored";
|
||||
}
|
||||
extension ignore-compare {
|
||||
description
|
||||
"The object should be ignored when comparing device configs for equality.
|
||||
The object should never be added, modified, or deleted on target.
|
||||
Essentially a read-only object
|
||||
One example is auto-created objects by the , such as uid.";
|
||||
One example is auto-created objects by the controller, such as uid.";
|
||||
}
|
||||
extension xmldb-split {
|
||||
description
|
||||
"When split configuration stores are used, ie CLICON_XMLDB_MULTI is set,
|
||||
This extension marks where in the configuration tree, one file terminates
|
||||
and a new sub-file is written.
|
||||
A designer adds the 'xmldb-split' extension to a YANG node which should be split.
|
||||
For example, a split could be made at mountpoints.
|
||||
See also the 'link 'attribute.
|
||||
";
|
||||
}
|
||||
md:annotation creator {
|
||||
type string;
|
||||
|
|
@ -217,7 +362,9 @@ module clixon-lib {
|
|||
A sub-object will not be noted";
|
||||
}
|
||||
rpc debug {
|
||||
description "Set debug level of backend.";
|
||||
description
|
||||
"Set debug flags of backend.
|
||||
Note only numerical values";
|
||||
input {
|
||||
leaf level {
|
||||
type uint32;
|
||||
|
|
@ -256,44 +403,27 @@ module clixon-lib {
|
|||
}
|
||||
}
|
||||
container datastores{
|
||||
list datastore{
|
||||
description "Per datastore statistics for cxobj";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of datastore (eg running).";
|
||||
type string;
|
||||
}
|
||||
leaf nr{
|
||||
description "Number of XML objects. That is number of residing xml/json objects
|
||||
list datastore{
|
||||
description "Per datastore statistics for cxobj";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of datastore (eg running).";
|
||||
type string;
|
||||
}
|
||||
leaf nr{
|
||||
description "Number of XML objects. That is number of residing xml/json objects
|
||||
in the internal 'cxobj' representation.";
|
||||
type uint64;
|
||||
type uint64;
|
||||
}
|
||||
leaf size{
|
||||
description "Size in bytes of internal datastore cache of datastore tree.";
|
||||
type uint64;
|
||||
}
|
||||
}
|
||||
leaf size{
|
||||
description "Size in bytes of internal datastore cache of datastore tree.";
|
||||
type uint64;
|
||||
}
|
||||
}
|
||||
}
|
||||
container module-sets{
|
||||
list module-set{
|
||||
description "Statistics per group of module, eg top-level and mount-points";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of YANG module.";
|
||||
type string;
|
||||
}
|
||||
leaf nr{
|
||||
description
|
||||
"Total number of YANG objects in set";
|
||||
type uint64;
|
||||
}
|
||||
leaf size{
|
||||
description
|
||||
"Total size in bytes of internal YANG object representation for module set";
|
||||
type uint64;
|
||||
}
|
||||
list module{
|
||||
description "Statistics per module (if modules set in input)";
|
||||
list module-set{
|
||||
description "Statistics per group of module, eg top-level and mount-points";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of YANG module.";
|
||||
|
|
@ -301,16 +431,33 @@ module clixon-lib {
|
|||
}
|
||||
leaf nr{
|
||||
description
|
||||
"Number of YANG objects. That is number of residing YANG objects";
|
||||
"Total number of YANG objects in set";
|
||||
type uint64;
|
||||
}
|
||||
leaf size{
|
||||
description
|
||||
"Size in bytes of internal YANG object representation.";
|
||||
"Total size in bytes of internal YANG object representation for module set";
|
||||
type uint64;
|
||||
}
|
||||
list module{
|
||||
description "Statistics per module (if modules set in input)";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of YANG module.";
|
||||
type string;
|
||||
}
|
||||
leaf nr{
|
||||
description
|
||||
"Number of YANG objects. That is number of residing YANG objects";
|
||||
type uint64;
|
||||
}
|
||||
leaf size{
|
||||
description
|
||||
"Size in bytes of internal YANG object representation.";
|
||||
type uint64;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue