Prevent empty string object name requests from being sent to the apiserver #1541
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.
Due to the URL-nature a get with an empty name is processed as a list call.
kube then fails to parse the result from the server. Other HTTP METHODS, like "DELETE" are also affected and e.g. cause the deletion of ALL objects. See the issue for more info.
Fixes #1540
Motivation
As described in #1540 I accidentally had a
&str
empty and was wondering about the weirdserde
error and though that something was broken somewhere else. Having a early on client-side validation makes the error clear.During testing I found out that
DELETE
was also affected and might have quite some impact.Solution
Many Requests have some kind of params validation, similar I introduced a
validate_name
fn for those requests that operator on a single instance (e.g.get
delete
patch
replace
). Requests likelist
andwatch
are unaffected.I added a single test for the get, idk if its necessrary to check all, but I could also provide more checks