// Validates resource requirement spec. func validateResourceRequirements(container *api.Container) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} for resourceName, quantity := range container.Resources.Limits { // Validate resource name. errs := validateResourceName(resourceName.String(), fmt.Sprintf("resources.limits[%s]", resourceName)) if api.IsStandardResourceName(resourceName.String()) { errs = append(errs, validateBasicResource(quantity).Prefix(fmt.Sprintf("Resource %s: ", resourceName))...) } allErrs = append(allErrs, errs...) } return allErrs }
// Validate compute resource typename. // Refer to docs/resources.md for more details. func validateResourceName(value string, field string) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} if !util.IsQualifiedName(value) { return append(allErrs, errs.NewFieldInvalid(field, value, "resource typename: "+qualifiedNameErrorMsg)) } if len(strings.Split(value, "/")) == 1 { if !api.IsStandardResourceName(value) { return append(allErrs, errs.NewFieldInvalid(field, value, "is neither a standard resource type nor is fully qualified")) } } return errs.ValidationErrorList{} }