Table of Contents
References
Jira server 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-1616
(CM notification) Event Subscription LCM
Impl. Proposal CM Event Subscription LCM: Create
Jira | ||||||
---|---|---|---|---|---|---|
|
Requirements
Functional
# | Interface | Requirement | Additional Information |
---|---|---|---|
1 | CPS-E-08 | Event from clients to delete an ongoing subscription with the dmi's responsible for managing the underlying devices. |
Error Handling
# | Error Scenario | Expected behavior |
---|
Capabilities
# | Parameter | Expectation | Notes |
---|
Out-of-scope
- Working with wildcards and subscription update which will be taken care by a separate epic.
- Subscription create ( done as part of a different story )
Assumptions
# | Issue | Notes | Decisions |
---|---|---|---|
1 | The whole subscription event is deleted |
Issues & Decisions
# | Issue | Notes | Decisions |
---|---|---|---|
1 | Delete the subscription from the database? |
| |
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. |
| |
3 | The subscription delete request 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 ? |
Overview
- We receive an event of type : subscriptionDeleted from the client ( DME ) containing the subscription clientId and subscription name along with datastore and dataCategory details ( DMEtoNCMP )
- We check in NCMP that we have an ongoing subscription using clientId and subscriptionName.
- If we have ongoing subscription , we forward the event to dmi-plugins so that the changes are applied in the devices managed by dmi-plugin as well. ( Delete Subscription CM Event Subscription LCM: Delete )
- Now if the dmi-plugins have applied the request then we get an event back from dmi-plugin and NCMP will process that event and based on that it will delete the ongoing subscription request from the database itself. If the response from DMI plugins is accepted ( i.e it can delete the subscriptions from the underlying devices and no subscription delete request are in PENDING or REJECTED state )Then we delete the subscriptions from the DB as well. ( Delete Subscription CM Event Subscription LCM: Delete )
- After processing the received event from DMI , NCMP will send the final event to the client (DME). ( Delete Subscription CM Event Subscription LCM: Delete )
Subscription Delete Sequence Diagram
PlantUML Macro | ||||
---|---|---|---|---|
| ||||
@startuml "Subscription Delete" actor rApp as "rApp/Client" participant DME participant NCMP participant DMI_PLUGIN rApp --> DME DME -> 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 --> DME: 6. Respond with the status that we received from dmi plugin DME --> rApp @enduml |
DME to NCMP
Subscription Delete Event
|
NCMP to DMI-Plugins
Produced by NCMP and Consumed by DMI Plugins
|
DMI-Plugins to NCMP
Produced by DMI Plugins and Consumed by NCMP
|
Notes
- dmiName in Output Schema is populated from application.yml of DMI-plugin.
- DMI-plugin subscribes to the topic to consume Input Schema given in application.yml of DMI-plugin.
...
|
NCMP to DME
Produced by NCMP to send it to the Client-Apps
|
...