...
PlantUML Macro |
---|
align | center |
---|
title | Subscription Delete |
---|
|
@startuml "Subsciption Delete"
participant CLIENT
participant NCMP
participant DMI_PLUGIN
CLIENT -> NCMP: 1. Incoming subscriptionDelete event
NCMP -> DMI_PLUGIN: 2. ncmp to forward event to dmi plugin
DMI_PLUGIN -> DMI_PLUGIN: 3. Apply the requested event and respond with the status
DMI_PLUGIN --> NCMP: 4. Status of the subscriptionDelete request whether accepted/rejected/pending
NCMP --> NCMP: 5. If all accepted then only remove the subcription data from DB
NCMP --> CLIENT: 6. Respond with the status that we received from dmi plugin
@enduml |
EDM to NCMP
Subscription Delete Event
...
topic subscription
id generated by client
source "SCO-9989752"
specversion "1.0"
type subscriptionDeleted
time
dataschema org.onap.ncmp.cm.subscription:1.0.0
data
{
"data" : {
"subscription" : {
"clientID" : "SCO-9989752" ,
"name" : "cm-subscription-001"
},
"dataType" : {
"dataspace" : "ALL" ,
"dataCategory" : "CM" ,
"dataProvider" : "CM-SERVICE"
},
"predicates":{
"datastore":"passthrough-running"
}
}
"javaType" : "org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp"
|
NCMP to DMI-Plugins
![](/download/attachments/177079422/CPS%20Subscription%20Response%20Handling.jpg?version=1&modificationDate=1688476486000&api=v2)
Input Schema (Schema 3) - Produced by NCMP and Consumed by DMI Plugins
topic: ncmp-dmi-cm-avc-subscription-dminame1
id uuid
source "SCO-9989752"
specversion "1.0"
type subscriptionDeleted
time // ncmp will generate
dataschema org.onap.ncmp.dmi.cm.subscription:1.0.0
data
{
"data":{
"subscription":{
"clientID":"SCO-9989752",
"name":"cm-subscription-001",
"isTagged":false
},
"dataType":{
"dataspace":"ALL",
"dataCategory":"CM",
"dataProvider":"CM-SERVICE"
},
"predicates":{
"targets":[
{"id" : <cmhandleid>,
"additional-properties": ["shape":"circle"]},
{"id" : <cmhandleid>,
"additional-properties": ["shape":"triangle"]},
{"id" : <cmhandleid>,
"additional-properties": ["shape":"square"]}
],
"datastore":"passthrough-running",
"datastore-xpath-filter":"//_3gpp-nr-nrm-gnbdufunction:GNBDUFunction/_3gpp-nr-nrm-nrcelldu:NRCellDU/ | //_3gpp-nr-nrm-gnbcuupfunction:GNBCUUPFunction// | //_3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction/_3gpp-nr-nrm-nrcelldu:NRCellCU// | //_3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier//"
}
}
}
"javaType": "org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi"
|
DMI-Plugins to NCMP
Output Schema (Schema 4) - Produced Produced by DMI Plugins and Consumed by NCMP
topic: dmi-ncmp-cm-avc-subscription
id uuid - generated by dmi-plugins
source <dmiName>
specversion "1.0"
type subscriptionDeletedStatus
time - generated by dmi
correlationid: <clientId>:<subscriptionName>
dataschema org.onap.ncmp.dmi.cm.subscription:1.0.0
data
{
"clientId":"SCO-9989752",
"subscriptionName":"cm-subscription-001",
"dmiName":"<dmiName>",
"subscriptionStatus":[
{
id : <cmhandleid>,
status : rejected | accepted | pending,
details : <some message> // only present for rejected
},
{...}
]
}
"javaType": "org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp"
|
...
dmi:
service:
name: ${DMI_SERVICE_NAME:ncmp-dmi-plugin}
app:
dmi:
avc:
subscription-topic: ${DMI_CM_AVC_SUBSCRIPTION:ncmp-dmi-cm-avc-subscription-${dmi.service.name}}
|
NCMP to Client-Apps
...
Produced by NCMP to send it to the Client-Apps
topic: subscription-response
id uuid - generated by NCMP
source <NCMP>
specversion "1.0"
type subscriptionDeletedStatus
time // NCMP would generate
correlationid: clientId:subscriptionName
dataschema org.onap.ncmp.cm.subscription:1.0.0
data
{
"data": {
“statusCode” : 207, # Some error code reflecting partial success. ** // To be discussed with the whole team
“statusMessage” : “Partially Applied Subscription”,
“additionalInfo” : {
“rejected” : [{
“details” : “faulty subscription format for target(s)”, // need to finalize the detailed message for grouping.
“targets” : [“cmhandle1”, “cmhandle2”, “cmhandle3”]
},
{
“details” : “faulty subscription format for target(s) - xyz”, // need to finalize the detailed message for grouping.
“targets” : [“cmhandle1”]
}
],
“pending” : {
“details” : “EMS/node connectivity issues, retrying”,
“targets” : [“cmhandle4”, “cmhandle5”, “cmhandle6”]
}
}
}
// we dont have to send the accepted cmhandle details.
** 202 could indicate complete failure –
"data": {
“statusCode” : 406, # Some error code reflecting complete rejection of the request
“statusMessage” : “Subscription rejected : Faulty Subscription Data”,
“additionalInfo” : {
“rejected” : {
“details” : “//NRxxCellDU is not a valid subscription type”
},
Have another for Pending CMHandles gone to accepted
"javaType": "org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client"
|
...