Versions Compared

Key

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

...

CPS-1515 - Spike: Support multiple CM-Handles for NCMP Get Operation

Assumptions

...

Requirements

Functional

InterfaceRequirementAddtional Information
REST NCMP-xxSupport batch read operation using an asynchronous response to client specified topicpayload includes list of cm handle ids
REST DMY-yySupport batch read operation using an asynchronous response to client specified topicpayload includes list of (associated for this plugin) cm handles ids with their public properties




Error handling

Error ScenarioExpected behavior
DMI Not respond to initial synchronous request with normal HTTTP timeoutSpecial Error message send to client topic detailing cm-handles

Capabilities

ParameterExpectationNotes
Response Time 1 request<2 seconds
  • Async response available on client topic
  • No delay in DMI PLugin (tested/measured using stub DMI Plugin)
Batch-size200-300 cm handlesNo hardcoded limit
Response payload size?? KBPerformance test for cabilitie should be tested with this average response size
Environment

Out-of-scope

  1. support for multiple resource identifies in one batch operation
  2. 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

passthrough.* datastores with respponse code Yes , Not supported for othersNoNo Overlap

#

Issue

Notes 

Decision

1Which operation(s) need support for multiple cm handles?
  1. Get
  2. Create
  3. Update (Put)
  4. Patch
  5. Delete

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 ?
(maybe just start with that, support cached data bulk request later)

agreed with kieran mccarthy 

all passthrough datastores will be supported

Not implemented (yet) response, for other

datastores 

3URL  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 

4keep 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

Agreed with kieran mccarthy 

Topic is optional but system will respond with 'Not implemented (yet when not specified or blank

7Should NCMP Amalgamate Async responses from DMI-Plugin before forwarding ?step 6 in flow diagram

Agreed with kieran mccarthy NCMP wil only forward to client topic no handling tracking or any responses or status of request

8Handle non responding dmi-plugin

Agreed with kieran mccarthy 
No response for 4b then send an error response to the topic given by client

9Should (can) NCMP check if 'MyTopic' specified by client exist

10Overlap with Deutsche Telekom

Sourabh Sourabh discussed Lee Anjella Macabuhay who confirmed there s no overlap

TBD

<Note. use green for closed issues, yellow for important ones if needed>

...

Gliffy Diagram
macroId5966a68a-1641-430a-8c78-27c938f06e15
displayNameCm Handle Batch Message Flow
nameCm Handle Batch Interface Design
pagePin1921

Message Flow details

Flow Step

Short description

Message Details

Notes

1

Bulk Get Request


Code Block
title/v1/batch/data/ds/{datastore-name}
collapsetrue
body:
{"Cnhandles":["ch-1",...,"ch-n"]


Define new get operation "getResourceDataForCmHandles" into ncmp.yml

2Ack Client Request


Code Block
titleResponse 200
collapsetrue
{"requestId":"123"}



3DMI Bulk Request


Code Block
titleurl tbd
collapsetrue
body:
tbd


The DMI PLugin should eb told the client topic so that NCMP does have to 'remember' to relation between request id and client topic!
4Ack Client Request


Code Block
titleResponse 202
collapsetrue



5Kafka Messages from DMI to NCMP


Code Block
titleTopic: ncmp-async-m2m
collapsetrue
Message Details TBD



6Kafka Message(s) from NCMP to Client 



Code Block
titleTopic: <client topic>
collapsetrue
Message Details TBD



7Alternative for 4/5 → Non responding DMI. NCMP will have to create error message detailing cm-handles
See decision # 8see open issue #9