Merge pull request #5229 from brendandburns/errors

Switch selector parse errors to return HTTP 400 instead of the default (500)
This commit is contained in:
Alex Mohr
2015-03-10 10:16:41 -07:00

View File

@@ -82,17 +82,19 @@ func GetResource(r RESTGetter, ctxFn ContextFunc, namer ScopeNamer, codec runtim
}
func parseSelectorQueryParams(query url.Values, version, apiResource string) (label, field labels.Selector, err error) {
label, err = labels.Parse(query.Get("labels"))
labelString := query.Get("labels")
label, err = labels.Parse(labelString)
if err != nil {
return nil, nil, err
return nil, nil, errors.NewBadRequest(fmt.Sprintf("The 'labels' selector parameter (%s) could not be parsed: %v", labelString, err))
}
convertToInternalVersionFunc := func(label, value string) (newLabel, newValue string, err error) {
return api.Scheme.ConvertFieldLabel(version, apiResource, label, value)
}
field, err = labels.ParseAndTransformSelector(query.Get("fields"), convertToInternalVersionFunc)
fieldString := query.Get("fields")
field, err = labels.ParseAndTransformSelector(fieldString, convertToInternalVersionFunc)
if err != nil {
return nil, nil, err
return nil, nil, errors.NewBadRequest(fmt.Sprintf("The 'fields' selector parameter (%s) could not be parsed: %v", fieldString, err))
}
return label, field, nil
}