- Compare Active Subscriptions (DB) with the current request
- Find delta
- we have the same subscription if we have the same combination of
- cmhandle AND xpath filter AND datastore
- we have the same subscription if we have the same combination of
- Create structure to hold all 'PENDING' subscriptions
- HZ map
- Update when there's overlapping
- updating the status in the HZ map from 'PENDING' for duplicated request(s)
- Find delta
...
SubscriptionId | cmHandle | filter | datastore |
---|---|---|---|
A-10 | ch-1 | p1/c1 | ncmp-datastore:passthrough-operational |
A-10 | ch-1 | p2/c2 | ncmp-datastore:passthrough-operational |
A-10 | ch-2 | p1/c1 | ncmp-datastore:passthrough-operational |
A-10 | ch-2 | p2/c2 | ncmp-datastore:passthrough-operational |
Pending Subscriptions saved in CmSubscriptionCache
SubscriptionId | dmi-plugin | affectedCmHandles | status |
---|---|---|---|
A-10 | dmi-1 | ["ch-1","ch-2"] | PENDING |
A-10 | dmi-2 | ["ch-3"] | PENDING |
Wide Net → Narrow Net method
draw.io Diagram | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
B:
Reuse CmSubscriptionCacheObject model to store "PENDING" subscriptions
...