mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +00:00
Watching on invalid label/field selectors should error
This commit is contained in:
parent
c8244cd1b3
commit
31fc19efe9
@ -54,17 +54,21 @@ func (h *WatchHandler) setSelfLinkAddName(obj runtime.Object, req *http.Request)
|
|||||||
return h.selfLinker.SetSelfLink(obj, newURL.String())
|
return h.selfLinker.SetSelfLink(obj, newURL.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func getWatchParams(query url.Values) (label, field labels.Selector, resourceVersion string) {
|
func getWatchParams(query url.Values) (label, field labels.Selector, resourceVersion string, err error) {
|
||||||
if s, err := labels.ParseSelector(query.Get("labels")); err != nil {
|
s, perr := labels.ParseSelector(query.Get("labels"))
|
||||||
label = labels.Everything()
|
if perr != nil {
|
||||||
} else {
|
err = perr
|
||||||
|
return
|
||||||
|
}
|
||||||
label = s
|
label = s
|
||||||
|
|
||||||
|
s, perr = labels.ParseSelector(query.Get("fields"))
|
||||||
|
if perr != nil {
|
||||||
|
err = perr
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if s, err := labels.ParseSelector(query.Get("fields")); err != nil {
|
|
||||||
field = labels.Everything()
|
|
||||||
} else {
|
|
||||||
field = s
|
field = s
|
||||||
}
|
|
||||||
resourceVersion = query.Get("resourceVersion")
|
resourceVersion = query.Get("resourceVersion")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -95,7 +99,11 @@ func (h *WatchHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if watcher, ok := storage.(ResourceWatcher); ok {
|
if watcher, ok := storage.(ResourceWatcher); ok {
|
||||||
label, field, resourceVersion := getWatchParams(req.URL.Query())
|
label, field, resourceVersion, err := getWatchParams(req.URL.Query())
|
||||||
|
if err != nil {
|
||||||
|
errorJSON(err, h.codec, w)
|
||||||
|
return
|
||||||
|
}
|
||||||
watching, err := watcher.Watch(ctx, label, field, resourceVersion)
|
watching, err := watcher.Watch(ctx, label, field, resourceVersion)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errorJSON(err, h.codec, w)
|
errorJSON(err, h.codec, w)
|
||||||
|
Loading…
Reference in New Issue
Block a user