forked from openshift/origin
/
validation.go
25 lines (21 loc) · 927 Bytes
/
validation.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package validation
import (
"k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/util/validation/field"
"github.com/openshift/origin/pkg/project/admission/requestlimit/api"
)
func ValidateProjectRequestLimitConfig(config *api.ProjectRequestLimitConfig) field.ErrorList {
allErrs := field.ErrorList{}
for i, projectLimit := range config.Limits {
allErrs = append(allErrs, ValidateProjectLimitBySelector(projectLimit, field.NewPath("limits").Index(i))...)
}
return allErrs
}
func ValidateProjectLimitBySelector(limit api.ProjectLimitBySelector, path *field.Path) field.ErrorList {
allErrs := field.ErrorList{}
allErrs = append(allErrs, validation.ValidateLabels(limit.Selector, path.Child("selector"))...)
if limit.MaxProjects != nil && *limit.MaxProjects < 0 {
allErrs = append(allErrs, field.Invalid(path.Child("maxProjects"), *limit.MaxProjects, "cannot be a negative number"))
}
return allErrs
}