Add support for request
This commit is contained in:
@@ -1490,19 +1490,32 @@ func ValidateResourceRequirements(requirements *api.ResourceRequirements) errs.V
|
||||
allErrs := errs.ValidationErrorList{}
|
||||
for resourceName, quantity := range requirements.Limits {
|
||||
// Validate resource name.
|
||||
errs := validateResourceName(resourceName.String(), fmt.Sprintf("resources.limits[%s]", resourceName))
|
||||
allErrs = append(allErrs, 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, validateBasicResource(quantity).Prefix(fmt.Sprintf("Resource %s: ", resourceName))...)
|
||||
}
|
||||
// Check that request <= limit.
|
||||
requestQuantity, exists := requirements.Requests[resourceName]
|
||||
if exists {
|
||||
var requestValue, limitValue int64
|
||||
requestValue = requestQuantity.Value()
|
||||
limitValue = quantity.Value()
|
||||
// Do a more precise comparison if possible (if the value won't overflow).
|
||||
if requestValue <= resource.MaxMilliValue && limitValue <= resource.MaxMilliValue {
|
||||
requestValue = requestQuantity.MilliValue()
|
||||
limitValue = quantity.MilliValue()
|
||||
}
|
||||
if limitValue < requestValue {
|
||||
allErrs = append(allErrs, errs.NewFieldInvalid(fmt.Sprintf("resources.limits[%s]", resourceName), quantity.String(), "limit cannot be smaller than request"))
|
||||
}
|
||||
}
|
||||
allErrs = append(allErrs, errs...)
|
||||
}
|
||||
for resourceName, quantity := range requirements.Requests {
|
||||
// Validate resource name.
|
||||
errs := validateResourceName(resourceName.String(), fmt.Sprintf("resources.requests[%s]", resourceName))
|
||||
allErrs = append(allErrs, validateResourceName(resourceName.String(), fmt.Sprintf("resources.requests[%s]", resourceName))...)
|
||||
if api.IsStandardResourceName(resourceName.String()) {
|
||||
errs = append(errs, validateBasicResource(quantity).Prefix(fmt.Sprintf("Resource %s: ", resourceName))...)
|
||||
allErrs = append(allErrs, validateBasicResource(quantity).Prefix(fmt.Sprintf("Resource %s: ", resourceName))...)
|
||||
}
|
||||
allErrs = append(allErrs, errs...)
|
||||
}
|
||||
return allErrs
|
||||
}
|
||||
|
Reference in New Issue
Block a user