deleted bosh config leaves dangling hm rule #2393
Merged
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.
start with no existing bosh configs of type resurrection
create a config of type resurrection via
bosh updatei-config
healthmanagerwill create a rule for that config that it tracks internally in the
@parsed_rules
array.
run
bosh delete-config
The problem is in the return early. While it makes sense to return
early if the argument for the method call is nil, it didn't make
sense to return early if the argument was set to an empty array.
Because we actually want the array to be empty if we try to delete
the last resurrection config.
Effectively this issue will cache the contents of the last rule. In a
scenario where the global config is ON and the contents of the last
rule were used to override that value for deployment XYZ, even after
deleting the rule, deployment XYZ would have the resurrection switched
off because the rule in health manager was never deleted even if the
bosh config didn't exists anymore.