Operational data callback not getting invoked

Hello Folks,
We have a schema something like this:

augment project {
  container vnfr-catalog {
    config false;
    list vnfr {
      key id;
      leaf id { ... }
      .
      .
      .
      list vdur {
        key id;
        leaf id {....}
      }
    }
  }
}

We have specified corresponding tailf callpoint for this operational data at vnfd-catalog.
The augmented node “project” is a list.

Below confd_cli show command does not work:

amuralid-new-vm# show project default vnfr-catalog vnfr d064bbfd-11d5-40a4-b502-d1daedd56e8f vdur iovdu_0
--------------------------------------------------------------------------------------------------^
syntax error: unknown element

Though it is giving syntax error for “iovdu_0”, it does give the same value in possible completions. That means it is getting “iovdu_0” value from the backend.

The Data provider APIs getting called are:

<DEBUG> 9-Mar-2018::08:08:34.789 amuralid-new-vm confd[27532]: devel-c new_trans request daemon id: 0 thandle: 166
<DEBUG> 9-Mar-2018::08:08:34.790 amuralid-new-vm confd[27532]: devel-c new_trans succeeded daemon id: 0 session id: 166 worker id: 82
<DEBUG> 9-Mar-2018::08:08:34.791 amuralid-new-vm confd[27532]: devel-c get_elem request for callpoint rw_callpoint path /rw-project:project{default}/vnfr-catalog/vnfr{d064bbfd-11d5-40a4-b502-d1daedd56e8f}/id
<DEBUG> 9-Mar-2018::08:08:34.809 amuralid-new-vm confd[27532]: devel-c get_elem succeeded for callpoint rw_callpoint path /rw-project:project{default}/vnfr-catalog/vnfr{d064bbfd-11d5-40a4-b502-d1daedd56e8f}/id
<DEBUG> 9-Mar-2018::08:08:36.811 amuralid-new-vm confd[27532]: devel-c close_trans request daemon id: 0 session id: 166
<DEBUG> 9-Mar-2018::08:08:36.811 amuralid-new-vm confd[27532]: devel-c close_trans succeeded daemon id: 0 session id: 166

It is first asking for “vnfr:id” get_elem, we are returning the result and then it asks for nothing else.

I tried changing the callpoint location deeper at vnfr and also at vdur level. Still results in same behaviour.

Confd version : 6.1

Any idea what could be the cause or how to debug it further ?

Thanks.

Do you know what value you are returning for the id element? If it doesn’t match what was returned on the get_next, when the key was fetched, it couild be exiting because the key fetched as a leaf does not match the key fetched with get_next.

Hi greg,
I do not see any get_next call being done as per the trace. Only get_elem is being called.

@arunmu, what @greg want you to check is what value you return from your get_elem() callback.
I put my 2 cents on that you reply with confd_data_reply_not_found(your_tctx).

Thanks @cohult and @greg. I checked whether that is the issue or not by turning on the confd_trace.

rift# show project default vnfr-catalog vnfr 30da187a-bac7-4a61-9010-23c522361eb7 vdur iovdu_0
TRACE CALL trans init(thandle=93,mode="r",db=running) --> CONFD_OK
TRACE CALL data get_elem(thandle=93,/project{default}/vnfr-catalog/vnfr{30da187a-bac7-4a61-9010-23c522361eb7}/id) --> CONFD_DELAYED_RESPONSE
 (30da187a-bac7-4a61-9010-23c522361eb7)
project:
    name                    :default

    vnfr-catalog:

        vnfr:
            id                      :30da187a-bac7-4a61-9010-23c522361eb7
rift# TRACE CALL trans finish(thandle=93) --> CONFD_OK

So get_elem does reply with valid data. Or am I missing something ?

The trace when I dont request for a particular key (‘iovdu_0’)

rift# show project default vnfr-catalog vnfr 7c5cd46a-cf89-46fb-ba19-cd1561f4f051 vdur

TRACE CALL trans init(thandle=93,mode="r",db=running) --> CONFD_OK
TRACE CALL data get_elem(thandle=93,/project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/id) --> CONFD_DELAYED_RESPONSE
 (7c5cd46a-cf89-46fb-ba19-cd1561f4f051) TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur, -1) --> CONFD_DELAYED_RESPONSE
TRACE CALL data get_case(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/guest-epa, numa-policy) (NOEXISTS)  --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/guest-epa/pcie-device, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/host-epa/cpu-feature, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/host-epa/om-cpu-feature, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/supplemental-boot-data/config-file, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/supplemental-boot-data/custom-meta-data, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/volumes, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/internal-connection-point, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/interface, -1) --> CONFD_OK
TRACE CALL data get_case(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/interface{ens3}, connection-point-type) (external)  --> CONFD_OK
TRACE CALL data get_case(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/interface{ens4}, connection-point-type) (external)  --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/interface, 0) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/placement-groups-info, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur{iovdu_0}/operational-events, -1) --> CONFD_OK
TRACE CALL data get_next_object(thandle=93, /project{default}/vnfr-catalog/vnfr{7c5cd46a-cf89-46fb-ba19-cd1561f4f051}/vdur, 0) --> CONFD_OK