Details
-
Improvement
-
Status: In Progress
-
Medium
-
Resolution: Unresolved
-
None
Description
RestconfStreamsSubscriptionService's path currently overlaps with RestconfDataService, i.e. the access is mediated through delegation. As noted in the current FIXME, the fact we are starting the stream through a GET operation is a REST violation. This harks back to the original implementation which dropped here: https://git.opendaylight.org/gerrit/c/controller/+/5094.
Given that the streams can hold a ton of data, we should start them when the first subscriber attaches and stop them when it detaches.
Current organization of the code deals with updating the datastore, which should actually happen when the stream is created, so this change requires cleaning up component wiring.
Attachments
Issue Links
- is blocked by
-
NETCONF-1099 Restore sal-remote create-notification-stream functionality
-
- Resolved
-
- relates to
-
NETCONF-1196 Clean-up RestconfStateStreamsTest class
-
- Resolved
-
Gerrit Reviews
| # | Subject | Branch | Project | Status | CR | V |
|---|---|---|---|---|---|---|
| 107122,1 | WIP: Rename RestconfStreamsSubscriptionService | master | netconf | Status: ABANDONED | 0 | +1 |
| 107867,1 | Eliminate NormalizedNodePayload.headers | master | netconf | Status: MERGED | +2 | +1 |
| 108728,4 | Change CreateStreamUtil return types | master | netconf | Status: MERGED | +2 | +1 |
| 108756,2 | Reduce StreamsConfiguration proliferation | master | netconf | Status: MERGED | -1 | +1 |
| 108757,1 | Fix device notification not working with websockets | master | netconf | Status: MERGED | +2 | +1 |
| 108758,2 | Clean up websocket's prepareUriByStreamName() | master | netconf | Status: MERGED | +2 | +1 |
| 108760,2 | Register only one events servlet | master | netconf | Status: MERGED | +2 | +1 |
| 108761,2 | Disable WebSocketInitializer serialization | master | netconf | Status: MERGED | +2 | +1 |
| 108762,1 | Factor out WebSocketFactory | master | netconf | Status: MERGED | +2 | +1 |
| 108798,1 | Do not parse data change stream name | master | netconf | Status: MERGED | +2 | +1 |
| 108803,1 | Simplify HandlersHolder | master | netconf | Status: MERGED | +2 | +1 |
| 108804,2 | Disconnect RestconfDataServiceImpl from streams | master | netconf | Status: MERGED | +2 | +1 |
| 108805,3 | Eliminate SubscribeToStreamUtil | master | netconf | Status: MERGED | +2 | +1 |
| 108806,1 | Eliminate rfc8040.streams.listeners package | master | netconf | Status: MERGED | +2 | +1 |
| 108807,1 | Move RestconfStreamsConstants | master | netconf | Status: MERGED | +2 | +1 |
| 108808,1 | Eliminate nb.rfc8040.monitoring | master | netconf | Status: MERGED | +2 | +1 |
| 108810,1 | Report 404 instead of 409 when listener is not found | master | netconf | Status: MERGED | +2 | +1 |
| 108811,2 | Eliminate AbstractRestconfApplication | master | netconf | Status: MERGED | +2 | +1 |
| 108812,1 | Clean up SSE stream name handling | master | netconf | Status: MERGED | +2 | +1 |
| 108813,2 | Clean up createWebSocket() | master | netconf | Status: MERGED | +2 | +1 |
| 108815,1 | Unify streams URI | master | netconf | Status: MERGED | +2 | +1 |
| 108820,1 | WIP: Introduce Stream as a tracking entity | master | netconf | Status: ABANDONED | -1 | -1 |
| 108823,2 | Clean up adapter constructors | master | netconf | Status: MERGED | +2 | +1 |
| 108826,3 | Refactor NotificationQueryParams | master | netconf | Status: MERGED | -1 | +1 |
| 108827,2 | WIP: Refactor listener attachment | master | netconf | Status: ABANDONED | -1 | -1 |
| 108828,2 | Do not pretend we support stream replay | master | netconf | Status: MERGED | +2 | +1 |
| 108829,2 | Clean up JSONDataTreeCandidateFormatter constants | master | netconf | Status: MERGED | +2 | +1 |
| 108830,2 | Ditch use of Optional in EventFormatter | master | netconf | Status: MERGED | +2 | +1 |
| 108831,12 | Improve subscriber tracking | master | netconf | Status: MERGED | +2 | +1 |
| 108832,4 | Purge AbstractNotificationsData | master | netconf | Status: MERGED | +2 | +1 |
| 108833,3 | Remove BaseListenerInterface | master | netconf | Status: MERGED | +2 | +1 |
| 108835,6 | Eliminate RestconfStreamsSubscriptionService | master | netconf | Status: MERGED | +2 | +1 |
| 108838,5 | Eliminate CreateStreamUtil | master | netconf | Status: MERGED | +2 | +1 |
| 108840,6 | ListenersBroker requires DOMDataBroker | master | netconf | Status: MERGED | +2 | +1 |
| 108845,1 | Use random UUIDs for stream names | master | netconf | Status: MERGED | +2 | +1 |
| 108846,2 | Eliminate AbstractStream.setCloseVars() | master | netconf | Status: MERGED | +2 | +1 |
| 108847,4 | Clean up stream class names | master | netconf | Status: MERGED | +2 | +1 |
| 108848,1 | Update sal-remote-augment model to rev 2023-11-03 | master | netconf | Status: MERGED | +2 | +1 |
| 108849,1 | Move restconfStateStreamPath() | master | netconf | Status: MERGED | +2 | +1 |
| 108850,2 | Allow RestconfStream to advertize multiple encodings | master | netconf | Status: MERGED | +2 | +1 |
| 108851,3 | Refactor EventFormatter constants | master | netconf | Status: MERGED | +2 | +1 |
| 108852,4 | Split out DataTreeChangeStream | master | netconf | Status: ABANDONED | 0 | -1 |
| 108864,12 | Expose streams with all supported encodings | master | netconf | Status: MERGED | +2 | +1 |
| 108875,2 | Populate restconf-state/streams | master | netconf | Status: MERGED | +2 | +1 |
| 108876,3 | Refactor EventFormatter interface | master | netconf | Status: MERGED | +2 | +1 |