Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Jira
serverONAP Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-395

Note
titleWork In Progress


The purpose of this spike is to be able to identify the APIs we need in order to talk to SDNC for doing CRUD operations on the models that are mounted on a particular installation.


Code Block
firstline1
titleModel used for illustration purposes
linenumberstrue
module gnodeb {
    yang-version 1.1;
    namespace "urn:gnodeb:test";

    prefix gnb;

    description
      "Yang model for gnodeb";
    revision "2019-12-03" {
        description
          "initial version";
    }

    container cells {
        list cellinfolist {
            key cell-id;
            leaf cell-id {
                type uint16;
            }
            leaf cell-uuid {
                type uint32;
            }
			leaf cell-description {
                type string;
                description
                  "Possible name or description";
            }
        }
    }
}





Info

For this use case we do not need to worry about creating mount points or supplying our models, as these would be made available beforehand.

For this spike we have used the NETCONF Plug-and-Play Simulator which enables the creation of NETCONF-enabled devices i.e, xNF.



To access local SDNC use -  http://localhost:8282/apidoc/explorer/index.html 

Credentials  : - admin / Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U

Once the above model is added to a mount point ( say PNFDemo ) on SDNC this model should show up on the GUI, with methods for operating on all public leaves as below.




where  :

topology-netconf - is the topology

PNFDemo             - is the node

gnodeb                 - is the model used


All of these are well documented with examples in the Swagger UI as below :





Alternatively, these can be tested via Postman as :

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

PUT add/update cell - http://localhost:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo/yang-ext:mount/gnodeb:cells/cellinfolist/{cell-id}

GET particular cell-id - http://localhost:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo/yang-ext:mount/gnodeb:cells/cellinfolist/2 


Filtering

This uses a different bundle (notice the URL).

For Field filtering we can use RESTConf "fields" option :

Check RESTConf fields filtering for examples on using filtering option on RESTConf.

Some sample URLS :

GET all - http://localhost:8282/rests/data/network-topology:network-topology/topology=topology-netconf/node=PNFDemo/yang-ext:mount/gnodeb:cells

GET cell details - http://localhost:8282/rests/data/network-topology:network-topology/topology=topology-netconf/node=PNFDemo/yang-ext:mount/gnodeb:cells/cellinfolist=1

GET cell details with filtering - http://localhost:8282/rests/data/network-topology:network-topology/topology=topology-netconf/node=PNFDemo/yang-ext:mount/gnodeb:cells/cellinfolist=1?fields=cell-uuid

GET multiple fields with filtering - http://localhost:8282/rests/data/network-topology:network-topology/topology=topology-netconf/node=PNFDemo/yang-ext:mount/gnodeb:cells/cellinfolist=1?fields=cell-uuid;cell-id