This repository has been archived by the owner on Jan 21, 2020. It is now read-only.
Manager now uses a late binding proxy for group plugin #354
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.
Currently the manager functions as a stateful proxy for a stateless group plugin. It implements the group plugin SPI and intercepts user's api call to persist configs before dispatching the call out to the actual stateless group plugin for doing real work. As a result the current implementation expects a stateless group plugin to be running so that the manager can connect to it on startup.
This creates a problem of introducing ordering in how we start up the controllers. This PR fixes this by making a simple late-binding proxy for the group plugin. This way, plugin lookup / resolution doesn't take place on startup of the manager, but on the first call of the SPI methods.
This PR also sets the stage for implementing plugin activation by the manager, since the manager will be the first and only controller running and is responsible for starting up other plugins on-demand.
Signed-off-by: David Chung [email protected]