1 Which operation(s) need support for multiple cm handles? Get Create Update (Put) Patch Delete if many what is the priority?
agreed 08 Mar 2023 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 08 Mar 2023 with kieran mccarthy :
all passthrough datastores will be supported
Not implemented (yet) response, for non passthrough datastores
3 URL pattern for NCMP bulk endpoints 08 Mar 2023
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 08 Mar 2023 with kieran mccarthy : Follow the existing interfaces as much as possible for consistency and efficiency -----------------------------------------------------------------------------------------------------------------------
17 Apr 2023 Meeting : kafka message schema & batch interface extension
POST http://localhost:8080/ncmp/v1/batch&topic=my-topic-name
{ operations: [ { operation: read, datastore: "...", options: "...", resourceIdentifier: "...", cmhandleIds: [4, 6] }, { operation: read, datastore: "...", options: "...", resourceIdentifier: "...", cmhandleIds: [1, 2, 3] } ] }
agreed 08 Mar 2023 with kieran mccarthy : Follow the existing interfaces as much as possible for consistency and efficiency
------------------------------------------------------------------------------------------------------------
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 08 Mar 2023 with kieran mccarthy : Follow the existing interfaces as much as possible for consistency and efficiency
5 support in ONAP DMI-plugin
agreed 08 Mar 2023 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 08 Mar 2023 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 Agreed 08 Mar 2023 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 08 Mar 2023 with kieran mccarthy : No response for 4b then send an error response to the topic given by client
9 Should (can) NCMP check if 'MyTopic' specified by client exist Consider Access Control too. For now NCMP can log error. Client is responsible for topic setup Agreed 08 Mar 2023 with kieran mccarthy : NCMP can log error when forward to 'client topic' Security not in scope (yet)
10 How to handle non-existing CM-Handles (id) Suggestions
Silently ignore (initial) error responseshould we combine all errors in one message? Agreed 08 Mar 2023 with kieran mccarthy :
Additional error (messages) response with all cm-handles that cannot be resolved, also a separate error message wil be sent for each failed DMI
11 Overlap/clash with Deutsche Telekom user story:
Jiraserver ONAP Jira serverId 425b2b0a-557c-3c0c-b515-579789cceedb key CPS-1377
?!
08 Mar 2023 discussed in weekly ONAP meeting the DT user story is affect CPS-Core interface (not NCMP) and the requirement is to execute a query over ALL cm-handles (cached only?!) instead of a given list of cm-handles (~anchors)
12 Schema of bulk response
Jiraserver ONAP Jira columnIds issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 425b2b0a-557c-3c0c-b515-579789cceedb key CPS-1556
1) Agreement required on the structure of the response. Please see response structure below. 2) Does 'eventTime' field which holds the timestamp of the bulk response event, required or can it be dropped?
Code Blocktitle Schema of bulk response collapse true
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "urn:cps:org.onap.cps.ncmp.events:bulk-response-event-schema:v1",
"$ref": "#/definitions/BulkResponseEvent",
"definitions": {
"BulkResponseEvent": {
"description": "The payload for bulk response event.",
"type": "object",
"properties": {
"eventId": {
"description": "The unique id identifying the event generated by DMI for this bulk response event.",
"type": "string"
},
"eventCorrelationId": {
"description": "The request id passed by NCMP for this bulk response event.",
"type": "string"
},
"eventTime": {
"description": "The time of bulk response event. The expected format is 'yyyy-MM-dd'T'HH:mm:ss.SSSZ'.",
"type": "string"
},
"eventType": {
"description": "The type of bulk response event.",
"type": "string"
},
"eventSchema": {
"description": "The event schema for bulk response event.",
"type": "string"
},
"eventSchemaVersion": {
"description": "The event schema version for bulk response event.",
"type": "string"
},
"event": {
"$ref": "#/definitions/Event"
}
},
"required": [
"eventId",
"eventCorrelationId",
"eventTime",
"eventType",
"eventSchema",
"eventSchemaVersion"
]
},
"Event": {
"description": "The bulk response event content.",
"type": "object",
"existingJavaType": "java.lang.Object"
}
}
}
Code Blocktitle Sample bulk response collapse true
{
"eventId": "4cb32729-85e3-44d1-aa6e-c923b9b059a5",
"eventCorrelationId": "68f15800-8ed4-4bae-9e53-27a9e03e1911",
"eventTime": "2023-03-28T14:29:23.876+0000",
"eventType": "org.onap.cps.ncmp.event.model.BulkResponseEvent",
"eventSchema": "urn:cps:org.onap.cps.ncmp.event.model.BulkResponseEvent",
"eventSchemaVersion": "v1",
"event": {
"payload": "response of batch cm handles"
}
}
13 Schema for Bulk Response event forwarding to client specified topic
CPS-1557 - NCMP : forward bulk response messages to client topic
Not keeping the 'eventTarget' which comes from the BulkResponseEvent.
Note: Will consider 'eventTarget', If it finalized the schema from
Jiraserver ONAP Jira columnIds issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 425b2b0a-557c-3c0c-b515-579789cceedb key CPS-1556
Code Blocktitle Schema of bulk response collapse true
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "urn:cps:org.onap.cps.ncmp.events:async-bulk-response-event-schema:v1",
"$ref": "#/definitions/AsyncBulkResponseEvent",
"definitions": {
"AsyncBulkResponseEvent": {
"description": "The payload for bulk response event.",
"type": "object",
"properties": {
"eventId": {
"description": "The unique id identifying the event generated by DMI for this bulk response event.",
"type": "string"
},
"eventCorrelationId": {
"description": "The request id passed by NCMP for this bulk response event.",
"type": "string"
},
"eventTime": {
"description": "The time of bulk response event. The expected format is 'yyyy-MM-dd'T'HH:mm:ss.SSSZ'.",
"type": "string"
},
"eventType": {
"description": "The type of bulk response event.",
"type": "string"
},
"eventSchema": {
"description": "The event schema for bulk response event.",
"type": "string"
},
"eventSchemaVersion": {
"description": "The event schema version for bulk response event.",
"type": "string"
},
"event": {
"$ref": "#/definitions/Event"
}
},
"required": [
"eventId",
"eventCorrelationId",
"eventTime",
"eventType",
"eventSchema",
"eventSchemaVersion"
]
},
"Event": {
"description": "The bulk response event content.",
"type": "object",
"existingJavaType": "java.lang.Object"
}
}
}
Code Blocktitle Sample bulk response collapse true
{
"eventId": "4cb32729-85e3-44d1-aa6e-c923b9b059a5",
"eventCorrelationId": "68f15800-8ed4-4bae-9e53-27a9e03e1911",
"eventTime": "2023-03-28T14:29:23.876+0000",
"eventType": "org.onap.cps.ncmp.event.model.AysncBulkResponseEvent",
"eventSchema": "urn:cps:org.onap.cps.ncmp.event.model.AysncBulkResponseEvent",
"eventSchemaVersion": "v1",
"event": {
"payload": "response of batch cm handles"
}
}