Remove peers_watcher dependency on pubsub #790
+624
−450
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Removed pubsub dependency from
peers_watcher.go
for node state changes and BGP secret changes so that we can remove pubsub altogether. Now, thePeerManager
acts as the single coordination point.PeerManager
is responsible for creating (i)PeerHandler
(ii)PeerWatcher
(iii)SecretWatcher
and registering the handlers for BGP secret and node state changes.SecretWatcher
&PeerWatcher
) now maintains a list of handlers to notify directly, rather than broadcasting events via pubsub.PeerManager
at startup:PeerHandler
is registered with theConnectivityHandler
for node state changes.PeerManager
is registered with theSecretWatcher
for secret changes, and forwards those to thePeerHandler
.SecretChangeHandler
to handle BGP secret changes.SecretGetter
to fetch BGP secrets.PeerHandler
OnSecretChanged
method to handle secret changes.SecretGetter
andSecretCleanupHandler
interfaces to fetch and clean up unused secrets.PeerWatcher
PeerHandler
directly for processing when peers are added, updated, or deleted.SecretWatcher
PeerHandler
via thePeerManager
).Connectivity Handler
PeerHandler
of node state changes when nodes join/leave the cluster.Made the changes on top of the nsk-split-svc branch for now, will rebase on top of
master
once those commits forsingle thread agent
are merged.