• Icon: Sub-task Sub-task
    • Resolution: Done
    • Icon: Medium Medium
    • None
    • None
    • DMI, NCMP
    • None

      Use our Docker setup to test and report on reading data from the 'root' or 'top level' object(s) on a node

      • Check SDNC direct support of '/' or empty string when reading data
      • Check Stack (NCMP-DMI-SDNC) support  of '/' or empty string when reading data 
      • If required (and possible in SDN-C) execute mini PoC i.e. modify NCMP/DMI to support it


      1. Report findings on Wiki Page
      2. Add reference to PoC code (e..g draft commits) if applicable




      Investigation result


       Currently to identify the resource on node ncmp uses resourceIdentifier in path as query parameter.



      Above url is used by client towards ncmp to fetch myresource from node named PNFDemo.

      In this investigation it is found that ncmp and dmi both support resourceIdentifier= and resourceIdentifier=/ (<empty string> and 'slash')

      but when this request hit sdnc , sdnc returns an exception as given below

      15:18:29.472 [http-nio-8080-exec-5] ERROR o.o.c.n.d.e.DmiExceptionHandler - Exception occurred
       org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: [<html>
       <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
       <title>Error 500 Internal Server Error</title>
       <body><h2>HTTP ERROR 500</h2>
       <p>Problem accessing /rests/data/network-topology:network-topology/topology=topology-netconf/node=PNFDemo/yang-ext:mount/. Reason:
       <pre> Internal Server Error</pre></p>

       So it is the limitation of SDNC that it cant return root data. But ncmp and dmi propagate the resourceIdentifier as empty string (i.e. root) or slash to the controller.


      This investigation is done directly on sdnc.

      But  when i use sdnc with restconf url


      it returns correct result. Depth query is working but fields query is ignored (or i used it wrongly) with above url.


      /rests and /restconf both packages are part of Open day light. /rests package is advance and supports actions, however /restconf is old package.


      Summary of above investigation

      To make it work:

      1. Use /restconf package in dmi-plugin when resourceIdentifier is <empty string> or '/'. For other request keep using /rests.
      2. And file a bug in ODL for /rests package that it is not fetching root data (preferably raise it in sdnc forum first).


      Oscar comments:

                1. Need to prioritize the fix in dmi-plugin to make root picked from restconf.

                2. Fix in ODL takes time and then integrate that ODL fixed version in SDNC could spill things out.





            tragait tragait
            ToineSiebelink Toine Siebelink
            0 Vote for this issue
            3 Start watching this issue