Remove component status infrastructure in favor of reusing start/stop #436
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.
We've made quite a few changes in recent months around winding
stop/start into everything to the point where all services are now
compliant with this concept, including the main client.
Quite a long time ago we put in a "component monitor" framework to help
tests wait for clients to successfully start up. It worked reasonably
well, but is a large amount of code, not very generic, and involves
winding callback functions into all components, which is a little
unsightly.
Here, I'm proposing that we replace the job component monitor was doing
with a more simple wait on the
Started
channel of the client:This is made possible because similar to how the component monitor
framework worked, the client doesn't signal that it's fully started
until it's successfully waited for all its subservices to start up:
So all in all, we should be able to get similar guarantees for test
purposes while needing less code and getting more reusability (in that
non-client services can also use exactly the same code to wait for start
up).