Fix bug and simplify dynamicconfig #2875
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.
What changed?
The logic for handling multiple dynamicconfig constraints (in the case of task queue constraints) was split between
Collection
andClient
, which led to at least one bug: a less specific value would be preferred over a more specific one if the more specific one happened to match the default value supplied by the caller.This pushes more of the logic into
Client
, which now takes a slice of filter maps, and checks them in order (plus the non-constrained value).Why?
Fix a bug, make code easier to understand.
How did you test it?
unit tests
Potential risks
This changes the interface of
dynamicconfig.Client
, so any projects that use the server as a library may have to update their code (to wrap the map in a slice).Client
isn't used in the server itself at all, sinceCollection
is a nicer interface.