DMI Inventory and Sync of Inventory Changes
# | Use Case | Rest Method | Service | URI | Example |
---|
1 | DMI 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" , ... ] } | 2 | Get all the registered cmhandles for a given plugin | GET | NCMP | {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" ] } ] } | 3 | Get model for a cmhandle | POST | DMI-Plugin | {dmi-root}/dmi/v1/ch/34l5k32cmhandle-001/model | Scenario : Get the model data for a given cmhandle Method : PUT URI : {dmi-root}/dmi/v1/ch/34l5k32cmhandle-001/model Header : Content-Type: application/json
Body : { "operation" : "read", "cmhandle" : "34l5k32cmhandle-001", "additionalProperties" : [ "target" : "Subnetwork=Stockholm,MeContext=Kista,ManagedElement=Kista-001", "subSystem" : "subsystem-001" ] }
Response: { "ietf-yang-library:yang-library" : [ # from RFC 8525 { "module-set" : [ { "name" : "54634jnflbjndfsample-module", "module" : [ { "name" : "_3gpp-nr-nrm-nrsectorcarrier", "revision" : "2020-12-09", "namespace" : "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier", "submodule" : [} ... { "name" : "xxxx-module", "revision" : "2020-12-17", "namespace" : "urn:3gpp:sa5:xxx-module", "submodule" : [ { ... } ] } ] } ] } ] }} | 4 | Sync data to ncmp | POST | DMI-Plugin | {dmi-root}/dmi/v1/ch/cmhandle-001/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 | 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" : {dmi-root}/dmi/v1/ch/cmhandle-001/operations/ds/ncmp-datastore:operational/sync Header : Content-Type: application/json
Body : { "txDirectionadditionalProperties" : "DL_AND_UL",
{ "arfcnULsubsystemId" : "55555subsystem-001", "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", .... } | 5 | Get yang module for a list of modules | POST | DMI-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", ] .... } |
|