fix(rules): handle deletion async #1095
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.
Fixes #1093
This change makes Automated Rule deletion happen asynchronously, similar to how Automated Rule activation is also asynchronous.
Prior to this change, creating an enabled Rule definition was a fast request that simply defined the Rule and returned. Any
recordings created by that rule were processed asynchronously and separately from the original request. Deleting a rule, on
the other hand, was synchronous - all matching targets would be tested again for rule applicability, and recordings would be
stopped on any matching targets. When all of those tasks were completed the deletion response would finally be sent back to the
requesting client, with a 500 status code indicating that at least one of those tasks failed and a 200 if everything succeeded.
With this change the deletion acts the same way as creation/activation. The rule definition deletion is the only thing blocked on
before the API response is sent to the client. If clean up is required then this is handled asynchronously in the background.
(Worth noting: Rule creation also used to be a synchronous request but was made async some time ago, and deletion was never updated the same way)