...
515 CPS-1 - Spike: Support multiple CM-Handles for NCMP Get Operation
Assumptions
...
Requirements
Functional
Interface | Requirement | Addtional Information | |
---|---|---|---|
REST NCMP-xx | Support batch read operation using an asynchronous response to client specified topic | payload includes list of cm handle ids | |
REST DMY-yy | Support batch read operation using an asynchronous response to client specified topic | payload includes list of (associated for this plugin) cm handles ids with their public properties | |
Error handling
Error Scenario | Expected behavior | |
---|---|---|
DMI Not respond to initial synchronous request with normal HTTTP timeout | Special Error message send to client topic detailing cm-handles |
Capabilities
Parameter | Expectation | Notes |
---|---|---|
Response Time 1 request | <2 seconds |
|
Batch-size | 200-300 cm handles | No hardcoded limit |
Response payload size | ?? KB | Performance test for cabilitie should be tested with this average response size |
Environment |
Out-of-scope
- support for multiple resource identifies in one batch operation
- cache data: only passthrough datastores will be supported (see decision #2)
Assumptions
# | Assumption | Notes |
---|---|---|
1 | "fields" and "scope" are proprietary options or not in the scope of this analysis. | agreed with kieran mccarthy , these are optional parameters (name-value pairs) not interpreted by NCMP but can be interpreted by proprietary plugins |
2 | same xpath (resourceIdentifierInQuery) for all cm handles or different for each cm handle | agreed with kieran mccarthy , if different resources are required on the same cm-handle the client wil send another (batch) request |
Issues & Decisions
# | Issue | Notes | Decision | |
---|---|---|---|---|
1 | Which operation(s) need support for multiple cm handles? |
if many what is the priority? | agreed with kieran mccarthy Only Get (read) (in future other operations might be support batch option too) | |
2 | Which datasources should be supported? | Do we need to support passthrough-only no-cached() data only ? | passthrough.*agreed with kieran mccarthy all passthrough datastores will be supported Not implemented (yet) response, for other | datastores with respponse code datastores |
3 | URL pattern for NCMP bulk endpoints | Existing : /v1/ch/{cm-handle}/data/ds/{datastore-name} CPS Proposed : /v1/batch/data/ds/{datastore-name} ( include cm handles into payload / body and leave datastore into url) | agreed with kieran mccarthy | |
4 | keep datastore, topic and optional parameters in the URL itself instead into body.
| CPS prefers keep interface similar as single cm handle interface (consistency and cost) Existing : ...&topic=topicParamInQuery | agreed with kieran mccarthy | |
5 | support in ONAP DMI-plugin | agreed with Toine Siebelink ONAP plugin can respond with not implemented yet code, | ||
6 | Response always Async ie. topic is compulsory ? | Assume topic is compulsory (defined in OPenApi) → Response therefore wil be 400 if not supplied | Yes , Not supported for othersAgreed with kieran mccarthy Topic is optional but system will respond with 'Not implemented (yet when not specified or blank | |
7 | Should NCMP Amalgamate Async responses from DMI-Plugin before forwarding ? | step 6 in flow diagram | NoAgreed with kieran mccarthy NCMP wil only forward to client topic no handling tracking or any responses or status of request | |
8 | Handle non responding dmi-plugin | Agreed with kieran mccarthy | ||
9 | Should (can) NCMP check if 'MyTopic' specified by client exist | |||
10 | Overlap with Deutsche Telekom | Sourabh Sourabh discussed Lee Anjella Macabuhay who confirmed there s no overlap | No OverlapTBD |
<Note. use green for closed issues, yellow for important ones if needed>
...
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
Message Flow details
Flow Step | Short description | Message Details | Notes | |||||||
---|---|---|---|---|---|---|---|---|---|---|
1 | Bulk Get Request |
| Define new get operation "getResourceDataForCmHandles" into ncmp.yml | |||||||
2 | Ack Client Request |
| ||||||||
3 | DMI Bulk Request |
| The DMI PLugin should eb told the client topic so that NCMP does have to 'remember' to relation between request id and client topic! | |||||||
4 | Ack Client Request |
| ||||||||
5 | Kafka Messages from DMI to NCMP |
| ||||||||
6 | Kafka Message(s) from NCMP to Client |
| ||||||||
7 | Alternative for 4/5 → Non responding DMI. NCMP will have to create error message detailing cm-handles | See decision # 8see open issue #9 |