[JUJU-4012] Allow runners to stop based on an error #28
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.
The following allows a runner to be stopped based on an error message. This makes it much more flexible in the phase of workers stopping based on an error, yet we don't want them to restart for some reason.
In addition, returning nil from some workers in the expectation that will ensure a clean kill is also mistaken. If using a runner to ensure workers stay running, returning nil will just cause that worker to restart after the delay. This probably isn't what we want in all scenarios. Adding this check allows us to add logic based on returned error cases to control the lifecycle of the worker.
This shouldn't require a new version either. Although we're adding a new field to the RunnerParams. We're backward compatible by ensuring that IsStoppable returns false by default.