apf: add validation to exempt for borrowing
Signed-off-by: Mike Spreitzer <mspreitz@us.ibm.com>
This commit is contained in:

committed by
Mike Spreitzer

parent
f78d6062eb
commit
f8e4e8abac
@@ -369,7 +369,14 @@ func ValidatePriorityLevelConfigurationSpec(spec *flowcontrol.PriorityLevelConfi
|
||||
if spec.Limited != nil {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("limited"), "must be nil if the type is not Limited"))
|
||||
}
|
||||
if spec.Exempt != nil {
|
||||
allErrs = append(allErrs, ValidateExemptPriorityLevelConfiguration(spec.Exempt, fldPath.Child("exempt"))...)
|
||||
}
|
||||
case flowcontrol.PriorityLevelEnablementLimited:
|
||||
if spec.Exempt != nil {
|
||||
allErrs = append(allErrs, field.Required(fldPath.Child("exempt"), "must be nil if the type is Limited"))
|
||||
}
|
||||
|
||||
if spec.Limited == nil {
|
||||
allErrs = append(allErrs, field.Required(fldPath.Child("limited"), "must not be empty when type is Limited"))
|
||||
} else {
|
||||
@@ -399,6 +406,17 @@ func ValidateLimitedPriorityLevelConfiguration(lplc *flowcontrol.LimitedPriority
|
||||
return allErrs
|
||||
}
|
||||
|
||||
func ValidateExemptPriorityLevelConfiguration(eplc *flowcontrol.ExemptPriorityLevelConfiguration, fldPath *field.Path) field.ErrorList {
|
||||
var allErrs field.ErrorList
|
||||
if eplc.NominalConcurrencyShares != nil && *eplc.NominalConcurrencyShares < 0 {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("nominalConcurrencyShares"), *eplc.NominalConcurrencyShares, "must be a non-negative integer"))
|
||||
}
|
||||
if eplc.LendablePercent != nil && !(*eplc.LendablePercent >= 0 && *eplc.LendablePercent <= 100) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("lendablePercent"), *eplc.LendablePercent, "must be between 0 and 100, inclusive"))
|
||||
}
|
||||
return allErrs
|
||||
}
|
||||
|
||||
func getVersionedFieldNameForConcurrencyShares(requestGV schema.GroupVersion) string {
|
||||
switch {
|
||||
case requestGV == flowcontrolv1alpha1.SchemeGroupVersion ||
|
||||
|
Reference in New Issue
Block a user