• 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

      A/C

      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.

      e.g.

      GET http://172.17.0.1:8883/ncmp/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-operational?resourceIdentifier=myresource

      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>
       <head>
       <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
       <title>Error 500 Internal Server Error</title>
       </head>
       <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>
       </body>
       </html>

       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

      http://localhost:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo/yang-ext:mount

      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
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: