...
# | Usecase | NCMP Datastore | Path | ?fields | ?topic | Query | Time frame |
---|---|---|---|---|---|---|---|
1 | Read | passthrough-running | RESTConf Path only | Implemented by SDNC/Node | Implemented by DMI Plugin | Not supported | Istanbul |
2 | Read | ncmp-datastores:operational | CPSPath only | TBD | TBD | Limited xpath functionality | Istanbul |
3 | Create | passthrough-running | RESTConf Path only | N/A | N/A | N/A | Istanbul |
4 | Create | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | > Istanbul |
5 | Delete | passthrough-running | RESTConf Path only | N/A | N/A | Not supported | Istanbul |
6 | Delete | ncmp-datastores:running | CPSPath only | N/A | N/A | Not supported | > Istanbul |
7 | Update | passthrough-running | RESTConf Path only | N/A | N/A | N/A | Istanbul |
8 | Update | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | > Istanbul |
9 | Patches | passthrough-running | RESTConf Path only | N/A | N/A | N/A | Istanbul |
10 | Patches | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | > Istanbul |
11 | Bulk | passthrough-running | RESTConf Path only | N/A | N/A | N/A | > Istanbul |
12 | Bulk | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | > Istanbul |
13 | Action | passthrough-running | RESTConf Path only | N/A | N/A | N/A | Istanbul? |
14 | Action | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | Istanbul? |
Outline of decisions and use cases for Istanbul
Description | Datastore | Time frame | |
---|---|---|---|
1 | DMI plugin is a part of cm handle registration. The rest endpoint on NCMP can be multiple calls | passthrough-running | Istanbul |
2 | The ONAP plugin (for initial inventory) may need an ODL mountpoint which will be created outside CPS and DMI plugin | passthrough-running | Istanbul |
3 | Read operations for operation data (single cm handle, synchronous only) | passthrough-running | Istanbul |
4 | Create, Update & Delete operations for single cmHandle , synchronous only (fall back to the plugin - this means your not specifying any datastore and there is no cache) | passthrough-running | Istanbul |
5 | Retrieve list of module names for cm handle - this will be used by ncmp to get the models. - assuming ncmp model discovery is complete and it is stored in cps core, this will come from cached information | passthrough-running | Istanbul |
6 | Implement sync in the plugin and then have ncmp be able to pass on the request. This is not a bulk operation | passthrough-running | Istanbul |
REST API
...
# | Req/usecase | REST Method | URI / Payload | Request/Response Example | Status | Release I | ||||
---|---|---|---|---|---|---|---|---|---|---|
1 | Async read of a data resource getting | GET | {ncmp-root}/ncmp/v1/ch/<cm-handle>/{dataresource-identifier}?fields={fields}&topic={topicId} Note 'topic' and 'fields' are only supported in passthrough mode at this time (ONAP Release I). If not passthrough then an exception is thrown from NCMP at this time. | Scenario : Read the GNBCUCPFunction for cm-handle "335ff" as passthrough Method : GET URI : {ncmp-root}/ncmp/v1/data/ch/335ff/ds/GNBCUCPFunction?fields=pLMNId;gNBId;gNBIdLength;syncStatus&topic=anr-app:anr24234234:v2 OR {ncmp-root}/ncmp/v1/data/ch/335ff/ds/ncmp-datastores:passthrough-running?fields=_3gpp-common-managed-element:ManagedElement/_3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction(pLMNId;gNBId;gNBIdLength)&topic=anr-app:anr24234234:v2 Header : Response : Event Response: { | passthrough-running is supported in Istanbul using
Note 'topic' and 'fields' are only supported in passthrough mode at this time (ONAP Release I). If not passthrough then an exception is thrown from NCMP at this time. Always return the yang-data+json in the "data" event payload | yes | ||||
2 | Read of a data resource getting specific | GET | {ncmp-root}/ncmp/v1/data/ch/<cm-handle/{data-resource-identifier}?fields={fields} | Scenario : Read the EUtranCellFDD.(administrativeState, operationalState, tac, earfcndl, cellId, physicalLayerCellId) for cmhandle "335ff" as passthrough Method: GET URI : {ncmp-root}/ncmp/v1/data/ch/335ff/ManagedElement[@id=Kista-001]/ENodeBFunction?fields=ericsson-enm-lrat:EUtranCellFDD(administrativeState;operationalState;tac;earfcndl;cellId;physicalLayerCellId) Header : Response: HTTP/1.1 200 OK | passthrough-running is supported in Istanbul using
| |||||
3 | Read a data resource directly from Synchronous call | GET | {ncmp-root}/ncmp/v1/data/ch//{data-resource-identifier}?fields={fields} Accept: application/yang-data+json | Scenario : Read the EUtranCellFDD.(administrativeState, operationalState, tac, earfcndl, cellId, physicalLayerCellId) for cmhandle "335ff" as passthrough Method : GET URI :{ncmp-root}/ncmp/v1/data/ch/335ff/ManagedElement[@id=Kista-001]/ENodeBFunction?fields=ericsson-enm-lrat:EUtranCellFDD(administrativeState;operationalState;tac;earfcndl;cellId;physicalLayerCellId) Header : Response: HTTP/1.1 200 OK { | passthrough-running is supported in Istanbul using
| Yes | ||||
4 | Read a data resource with some leaf value condition directly from the source (passthrough) for a cmHandle. Only Synchronous call | GET | {ncmp-root}/ncmp/v1/data/ch/<cmhandle>/{data-resource-identifier[<condition>]}?fields={fields} | Scenario : Read the LocalSctpEndpoint.(interfaceUsed==X2, sctpEndpointRef) for cmhandle "335ff" as passthrough Method : GET URI cps-path | passthrough-running is supported in Istanbul using
| |||||
5 | Create a data resource for a cmhandle | POST | cmp-root}/ncmp/v1/data/ch/<cm-handle>/{parent-data-resource-identifier} { | Scenario : Create ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 under _3gpp-common-managed-element:ManagedElement=Kista-001 Method : POST URI : {ncmp-root}/ncmp/v1/data/ch/34l5k32/ManagedElement[@id=Kista-001]/GNBDUFunction[@id=1] Header : Body : { | passthrough-running is supported in Istanbul using
ncmp-datastores:running is not supported in Istanbul | |||||
6 | Update a data resource for a cmhandle with plain-patch update | PATCH | {ncmp-root}/ncmp/v1/data/ch/<cmhandle>/{data-resource-identifier} { Content: application/yang-data+json Behaves as a merge - merge with existing if it exists or create if it does not exist. | Scenario : Update ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 txDirection to "DL_AND_UL" under _3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 Method : PATCH URI :{ncmp-root}/ncmp/v1/data/ch/34l5k32/ManagedElement[@id=Kista-001]/GNBDUFunction[@id=1]/NRSectorCarrier[@id=4] Header : Body : { NOTE : If not passthrough then ALL attributes MUST be supplied for the patch at this time. Otherwise, other attributes are removed from CPS. | passthrough-running is supported in Istanbul using
ncmp-datastores:running is not supported in Istanbul this will be treated as a merge | |||||
7 | Update a data resource with multiple edits for a cmhandle with yang-patch update | PATCH | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/{data-resource-identifier} { Content: application/yang-data+json If using yang-patch content then ds/ncmp-datastore-passthrough-running mus be used by rad apps until full | Scenario : Update _3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 with multiple operations on the tree Method : PATCH Header : Body : { | ||||||
8 | Delete a data resource for a cmhandle | DELETE | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/{data-resource-identifier} | Scenario: Delete ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 under _3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 Method : DELETE URI : {ncmp-root}/ncmp/v1/data/ch/34l5k32/ManagedElement[@id=Kista-001]/GNBDUFunction[@id=1]/NRSectorCarrier[@id=4] | passthrough-running is supported in Istanbul using
ncmp-datastores:running is not supported in Istanbul for delete | |||||
9 | Get all cmhandles that support a given module | GET | {ncmp-root}/ncmp/v1/data/ch?module={module-name} Content: application/json | Scenario : Get the all cmhandles that support a given module Response: | ||||||
10 | Get model info for CMHandle | GET | {ncmp-root}/ncmp/v1/data/ch/{cm-handle}/ietf-yang-library:modules-set | Scenario : Get the model data for CMHandle Method : GET URI :{ncmp-root}/ncmp/v1/data/ch/2334dedf/ietf-yang-library:modules-set Header : Response: { | passthrough-running is supported in Istanbul using
ncmp-datastores:running is not supported in Istanbul for delete | |||||
11 | Execute a yang action | POST | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/ds/ncmp-datastores:passthrough-running/{data-resource-identifier}/{action} Note : If the "action" statement | Method : POST URI : {ncmp-root}/ncmp/v1/data/ch/3445fff/ds/ncmp-datastores:passthrough-operational/ManagedElement[@id=Kista-001]/brm/backup-manager[@id="configuration-system import-backup"] Header : Body : Body : | passthrough-running is supported in Istanbul using
ncmp-datastores:running is not supported in Istanbul | |||||
12 | Execute an rpc operation | POST | {ncmp-root}/ncmp/v1/operations/ch//operations /ds/ncmp-datastores :passthrough-operational/{module-name}:{action} { Note : If there is no "input" | Method : POST URI : {ncmp-root}/ncmp/v1/operations/ch/3445fff/ds/ncmp-datastores:passthrough-operational/_3gpp-common-managed-element:resetDevice (dummy action) Header : Body : Response : | passthrough-running is supported in Istanbul using
ncmp-datastores:running is not supported in Istanbul | |||||
13 | Read descendant data resources with | GET | {ncmp-root}/ncmp/v1/ch/<cm-handle>/{data-resource-identifier}?fields={fields-expression} options
| Scenario : Read all NRCellDU MOs with attributes userLabel and id under the _3gpp-nr-nrm-gnbdufunction:GNBDUFunction MO Method : GET URI :{ncmp-root}/ncmp/v1/data/ch/3445fff/ManagedElement[@id=Kista-001] Header : Response : HTTP/1.1 200 OK { _3gpp-nr-nrm-nrcelldu:NRCellDU=1 { _3gpp-nr-nrm-nrcelldu:NRCellDU=4 { _3gpp-nr-nrm-nrcelldu:NRCellDU=5 { | passthrough-running is supported in Istanbul using
| |||||
14 | Read data resources to a given depth | POST | {ncmp-root}/ncmp/v1/ch/<cm-handle>{data-resource-identifier}?depth={level}
| Method : POST URI : {ncmp-root}/ncmp/v1/ch/3445fff/ManagedElement[@id=Kista-001]/GNBDUFunction[@id=1]?depth=4 Header : Body: Response : HTTP/1.1 200 OK _3gpp-nr-nrm-nrsectorcarrier: _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=3{ _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 { _3gpp-nr-nrm-nrcelldu:NRCellDU=1 { _3gpp-nr-nrm-nrcelldu:NRCellDU=4 { _3gpp-nr-nrm-nrcelldu:NRCellDU=5 { | passthrough-running is supported in Istanbul using
ncmp-datastores:running is not supported in Istanbul | |||||
15 | Replace a data resource for a cmhandle | PUT | ncmp-root}/ncmp/v1/data/ch/<cm-handle>/{data-resource-identifier} { <yang-data-resource-identifier> } | Scenario : Replace _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 txDirection Method : PUT URI : {ncmp-root}/ncmp/v1/data/ch/34l5k32/ManagedElement[@id=Kista-001] Header : Body : { | passthrough-running is supported in Istanbul using
ncmp-datastores:running is not supported in Istanbul | |||||
16 | Async Requests | GET/ POST/ PATCH /PUT/ DELETE | {ncmp-root}/ncmp/v1/ch/<cmhandle>/data/ds/ncmp-datastores:passthrough-running/ {xpath}?topic=<dmaap-topic-Identifier> **Async communication channel is DMaaP Immediate response with a requestId is sent to the caller and the CRUD request is executed asynchronously where data is returned via the provided topic identifier. | Scenario : Async request to NCMP Method : GET/POST/PATCH/PUT/DELETE URI : {ncmp-root}/ncmp/v1/data/ch/de3455/ManagedElement[@id=Kista-001]/GNBDUFunction[@id=1]?topic=5G:SectorCarrierOrchestrator-0012391:12 Body : // Include body where required Response : response data is published on the topic identified by <topicIdentifier> keyed on request. Event Successful Reponse : |
...