...
Issues & Decisions
# | Issue | Notes | Decisions |
---|---|---|---|
1 | Delete the subscription from the database? | We plan to do it when we receive response from the DMI plugins and the underlying subscriptions from the devices are deleted. | kieran mccarthy Agree |
2 | What do we need to send to the DMI Plugin so that they are able to decide that how to delete the ongoing subscription. | We are sending cmHandle information and predicates information ( datastore , xpaths and cmHandle ) and private cmHandle properties. | kieran mccarthy Agree |
3 | Who should be able to retry and make sure the subscriptions are deleted from the respective DMIs managing the devices. | kieran mccarthy The agenda for the next meeting. We can decide then. More on the "DELETING" stage ( if we want to have it ) | kieran mccarthy As discussed on , The DME should be able to maintain Subscription State and make decision when to retry based on the response outcome we provide to it for create and/or delete use cases. |
4 | DME to NCMP Event to have targets and datastore-xpath-filter information for the subscription delete use case ? | DME to only send the subscription id inorder to delete the request. NCMP will figure out the details corresponding to the provided subscription id and figure out what to request to DMI Plugin for deletion. | kieran mccarthy As per the discussion today we agreed to use targets , datastore-xpath-filters and datastores for the subscription delete use case. Revised approach is mentioned in the Notes section. |
5 | Do we send additional properties from NCMP to DMI | We are sending additional/private properties as of now. | kieran mccarthy Agree |
6 | Can the DMI Plugin REJECT the Cm Subscription Delete Request ? | kieran mccarthy Wanted to check if this is the VALID use case we have ? | kieran mccarthy Yes it may be rejected or indicate partial failure. If one or more of the underlying data producers (node/ems) is disconnected for some reason then the request cannot be fulfilled. The client should be notified of the failure.
|
Algorithm for CM Subscription Delete
...
DME to NCMP Cm Subscription Delete Request
Name
Parent
Type
Example
Mandatory ? Notes
1 id header String Y 2 version header String 1.0 Y 3 source
header String DME Y 4 type
header String subscriptionDeleteRequest Y 5 dataschema
header URI org.onap.ncmp.cm.subscription:1.0.0 Y 6 data
Object Y 7 subscriptionId
data String cm-subscription-001 Y 8 predicates
data Object N
ExampleCode Block title DME to NCMP Cm Subscription Delete Request linenumbers true collapse true id : random-UUID version : "1.0" source : "DME" type : "subscriptionDeleteRequest", dataschema : org.onap.ncmp.cm.subscription:1.0.0 { "data": { "subscriptionId": "unique subscription id" // mandatory }
NCMP to DMI-Plugin Subscription Request
Name
Parent
Type
Example
Mandatory ? Notes
1 id header String Y 2 version header String 1.0 Y 3 source
header String DMENCMP Y 4 type
header String subscriptionDeleteRequest Y 5 dataschema
header URI org.onap.ncmp.dmi.cm.subscription:1.0.0 Y 6 correlationid
header String subscriptionId#dmiPluginName Y Concatenation of subscriptionId and dmi plugin name 7 data
Object Y 8 cmHandles
data Array Y 9 cmhandleId
cmHandles String Y 10 privateProperties
cmHandles Map N 11 predicates
data Array N 12 targetFilter
predicates Array of String Y list of cm handle ids 13 scopeFilter
predicates Object N 14 datastore
scopeFilter String Y ncmp-datastore:passthrough-operational OR ncmp-datastore:passthrough-running 15 xpathFilter
scopeFilter Array of String Y
ExampleCode Block title NCMP to DMI-Plugin Subscription Request linenumbers true collapse true id : random UUID version : 1.0 source : "NCMP" type : "subscriptionDeleteRequest" dataschema : org.onap.ncmp.dmi.cm.subscription:1.0.0 correlationId ( concatenation of subscriptionId and dmi-plugin-name with a separator) { "data": { "cmhandles" : [ // mandatory { "cmHandleId": "cmhandle1", "private-properties": {...} }, { "cmHandleId": "cmhandle2", "private-properties": {...} }, { "cmHandleId": "cmhandle3", "private-properties": {...} } ] "predicates": [ { “targetFilter” : [“cmHandle1”, “cmHandle2”, "cmhandle3"], // mandatory "scopeFilter" : { "datastore": “ncmp-datastore:passthrough-operational or ncmp-datastore:passthrough-running", // optional. default is passthrough-operational "xpath-filter": list of valid xpaths // mandatory } }, { “targetFilter” : [“cmHandle1”, “cmHandle2”, "cmhandle3"], "scopeFilter" : { "datastore": “ncmp-datastore:passthrough-operational or ncmp-datastore:passthrough-running", // optional. default is passthrough-operational "xpath-filter": list of valid xpaths * } } ] }
DMI-Plugin to NCMP Cm Subscription Delete Response
Name
Parent
Type
Example
Mandatory ? Notes
1 id header String Y 2 version header String 1.0 Y 3 source
header String DME Y 4 type
header String subscriptionDeleteResponse Y 5 dataschema
header URI org.onap.ncmp.dmi.cm.subscription:1.0.0 Y 6 correlationid
header String subscriptionId#dmiPluginName Y Concatenation of subscriptionId and dmi plugin name 7 data
Object Y 8 statusCode
data String Y 1 - Accept the subscription request
104 - Reject the subscription request9 statusMessage
data String Y ACCEPTED
REJECTED
ExampleCode Block title DMI-Plugin to NCMP Cm Subscription Delete Response linenumbers true collapse true id : random UUID version : "1.0" source : <dmi-plugin-name> type : "subcriptionDeleteResponse" dataschema : org.onap.ncmp.dmi.cm.subscription:1.0.0 correlationid : ( concatenation of subscriptionId and dmi-plugin-name with a separator) { "data" : { "statusCode": "1/104", // mandatory "statusMessage" : "ACCEPTED/REJECTED" // mandatory } }
NCMP to DME Cm Subscription Delete Response
Name
Parent
Type
Example
Mandatory ? Notes
1 id header String Y 2 version header String 1.0 Y 3 source
header String DME Y 4 type
header String subscriptionDeleteResponse Y 5 dataschema
header URI org.onap.ncmp.cm.subscription:1.0.0 Y 6 correlationid
header String subscriptionId Y 7 data
Object Y 8 subscriptionId
data String Y 9 acceptedTargets
data Array of String N 10 rejectedTargets
data Array of String N 11 pendingTargets
data Array of String N
ExampleCode Block title NCMP to DME Cm Subscription Delete Response linenumbers true collapse true id : random UUID version : "1.0" source : "NCMP" type : "subcriptionDeleteResponse", dataschema : org.onap.ncmp.cm.subscription:1.0.0, correlationid : <subscriptionId> { "data": { "subscriptionId": "sample-subscription-id", // mandatory "acceptedTargets" : ["ch-1", ...], // optional "rejectedTargets" : ["ch-1", ...], // optional "pendingTargets" : ["ch-1", ...], // optional } }
...