ConfD User Community

Callpoint Not getting invoked in list


#1

Hi All!
Here I am using external application for operational data. I want to add
callpoint for a particular container inside a list of my yang module.

If the callpoint is placed inside the list, it is not invoked.
For example, in the yang file is:

tailf:annotate "/a:topContainer/a:fruitsContainer/a:fruitList/a:appleContainer" {
	tailf:callpoint fruit_cp;
}

Here fruitList is my list and appleContainer is a container of operational data.
The callpoint is not invoked when I query for the list state data.

The same if I use callpoint for the topContainer, the callpoint is invoked.
For example,

tailf:annotate "/a:topContainer" {
	tailf:callpoint fruit_cp;
}

This works fine.

But I want to add callpoint only for the appleContainer inside the list fruitList.
Can you suggest what can I do for this?


#2

Every piece of data in a YANG model must be provided by some data provider - the default, if no callpoint is present, is the internal data provider CDB. Having your callpoint on topContainer means that your data provider provides the data for the entire subtree rooted at topContainer - in particular, it provides the fruitList list, and ConfD will ask your data provider to enumerate the existing keys for that list by means of get_next invocations,

When you move the callpoint to the appleContainer, CDB becomes the data provider for all the data above that container - in particular, CDB will need to provide the fruitList list, and ConfD will ask CDB to enumerate the existing keys for that list by means of (internal) get_next invocations. Thus if no list entries exist in CDB, it means that there can’t be any data for any list entry, and there is nothing for ConfD to ask your data provider about.

Bottom line, you need to ensure that the relevant list entries exist in CDB in this case.


#3

I got it. it’s working fine. Thank you.