Versions Compared

Key

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

...

Scenario: Get the model data for a given cmhandle

Method: PUT

URI : {dmi-root}/dmi/v1/model/ch/cmhandle-001?fields=ietf-yang-library:modules-set

Header :
Content-Type: application/json
Accept: application/json

Body :

{
"operation" : "read",
"cmhandle" : "cmhandle-001",
"additionalProperties" : [
"target" : "sample-target",
"subSystem" : "subSystem-001"
]
Expand
titleDMI Inventory and Sync of Inventory Changes

DMI Inventory and Sync of Inventory Changes


#Use CaseRest MethodServiceURIExample
1DMI notifies NCMP of new , deleted or changed cmhandles DMI Plugin NCMP. Including initial registration

POST

json attributes:

  • "dmi-plugin" resolvable servicename
  • "createdcmhandles" used for initial cm handle registrations or subsequent
    cmhandle creations
  • "updatedcmhandles"
    Used for updates to cmhandles. Same structure as for create handles
  • "removedcmhandles"  array of cmhandles that have been deleted
    from the network (no additional properties
NCMP

{ncmp-root}/ncmp/v1/ch/

Scenario : DMI notifies NCMP of new cmhandles
Method : POST
URI : {ncmp-root}/ncmp/v1/ch/
Header :
Content-Type: application/json

Body
: {
"dmi-plugin" : "onap.dmi.plugin",
"createdcmhandles" : [ { "cmhandle" : "rf4er5454",
"additionalProperties" :
{ "subsystemId" : "system-001" }
}, {..} ],
"updatedcmhandles" : [ .. ],
"removedcmhandles" : [ "node-1", "node-2" , ... ]
}
2Get all the registered cmhandles for a
given plugin
GETNCMP{ncmp-root}/ncmp/v1/dmi-plugins/{plugin-id}/ch
Scenario : Get all cmhandles from NCMP for a given dmi-plugin. May be used
for conciliation
Method : GET
URI : {ncmp-root}/ncmp/v1/dmi-plugins/{dmi-plugin}/ch
Header :
Content-Type: application/json

Success Response :
HTTP/1.1 200 Ok
Date: Thu, 26 Jan 2021 20:56:30 GMT
Server: example-server
{ "cmhandles" : [ {
"cmhandle" : "node-1",
"additionalProperties" : [ "subSystem" : "system-001" ]
} ]
}
3Get model (schema set) for a cmhandleGETPOSTDMI-Plugin{ncmpdmi-root}/ncmpdmi/v1/dmi-plugins/{plugin-id}/ch/<cm-handle>/schema-sets/{schema-set-name}Scenario : NCMP requests a list of modules 34l5k32/modelScenario : Get the model data for a given for a cmhandle
Method : PUT
URI : {dmi-root}/dmi/v1/ch/cm-handle-001/schema-sets/cps-ran-schema-34l5k32/model
Header :
Content-Type: application/json
Response
Body :
{
"nameoperation" : "cps-ran-schema-modelread",
"cmHandlecmhandle" : "cm-handle-00134l5k32",
"moduleReferencesadditionalProperties" : [
{
"nametarget" : "cps-ran-schema-model "Subnetwork=Stockholm,MeContext=Kista,ManagedElement=Kista-001",
"namespacesubSystem" : "org:onap:ccsdk:features:sdnr:northbound:cps-ran-schema-model",subsystem-001"
"revision": "2021-01-28"]
},
Response:
{
"name": "ietf-yang-inetlibrary:yang-types",
library" : [ # "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types",
from RFC 8525
{
"revision": "2013module-07-15"
},
{
set" : [ {
"name": "ietf-yang-types",
"namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types",
"revisionname" : "2013-07-1554634jnflbjndf",
}
]
}
4Get yang module for a list of modulesPOSTDMI-Plugin{dmi-root}/dmi/v1/model/ch/<cmhandle>
Body : { [ "org:onap:cps:test:store:2020-12-09??", "org:onap:cps:test:store" ] }
Response : a list yang module sources
{
"org:onap:cps:test:store" : [
{
"module" : [ "module" : [
{
"name" : "books_3gpp-nr-nrm-nrsectorcarrier",
"modulerevision" : [
"2020-12-09",
{
"namespace" : "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier",
"namesubmodule" : "books",[
"revision" : "2020-12-09",
{
"namespacename" : "org:onap:cps:test:bookstore",
"xxxx-module",
"module-contentrevision" : "paper back2020-12-17",
"submodulenamespace" : ["urn:3gpp:sa5:xxx-module",
{ "submodule" : [
"name" : "Fiction",{
"revision" : "2020-12-17", ...
"namespace" : "org:onap:cps:test:fiction",
}
]
....
}
Expand
titleModel API
     }
]
}
]
}
]
}
4

Sync data to ncmp

POST

DMI-Plugin

{dmi-root}/dmi/v1/ch/243234/operations/ds/ncmp-datastore:operational/sync



NOTE the response needs to be considered 0 this could be quite a large tree and it would be better to return the data in an async manner rather than ALL in a single response body.

Scenario : NCMP requests sync of cmhandle yang data tree
Method : PUT
URI : {dmi-root}/dmi/v1/ch/243234/operations/ds/ncmp-datastore:operational/sync
Header :
Content-Type: application/json
Body :
{}

Body :
{
"additionalProperties" :
{
"subsystemId" : "subsystem"
"targetId" : "Subnetwork=Stockholm,MeContext=Kista,ManagedElement=1"
}
}
Response :
HTTP/1.1 200 OK
Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server
Content-Type: application/yang-data-json

{
_3gpp-common-managed-element:ManagedElement [
{
"_3gpp-common-top:id" : "1",
...
_3gpp-nr-nrm-gnbdufunction:GNBDUFunction : [
{
"_3gpp-common-top:id" : "1",
nrsectcarr3gpp:NRSectorCarrier" : [
{
"_3gpp-common-top:id" : "NRSectorCarrier-1",
"attributes" : {
"txDirection" : "DL_AND_UL",
"arfcnUL" : "55555",
...
}
}
]
}
]
...
}
...
]
...
}
5Get yang module for a list of modulesPOSTDMI-Plugin{dmi-root}/dmi/v1/model/ch/<cmhandle>
Body : { [ "org:onap:cps:test:store:2020-12-09??", "org:onap:cps:test:store" ] }

Response : a list yang module sources

{
"org:onap:cps:test:store" : [
{
"module" : [ {
"name" : "books",
"module" : [
{
"name" : "books",
"revision" : "2020-12-09",
"namespace" : "org:onap:cps:test:bookstore",
"module-content" : "paper back",
"submodule" : [
{
"name" : "Fiction",
"revision" : "2020-12-17",
"namespace" : "org:onap:cps:test:fiction",
]
....

Model API - WIP

Use CaseRest MethodURIExample1Get model (module set) for cmhandlesPUT

{dmi-root}/dmi/v1/model/ch/<cm-handle>

}



GET Request with body


The HTTP libraries of certain languages (notably JavaScript) don’t allow GET requests to have a request body. In fact, some users are surprised that GET requests are ever allowed to have a body.

...