@@ -383,14 +383,14 @@ func validateAllocationConfigSource(source resource.AllocationConfigSource, fldP
383
383
return allErrs
384
384
}
385
385
386
- // ValidateClass validates a DeviceClass.
386
+ // ValidateDeviceClass validates a DeviceClass.
387
387
func ValidateDeviceClass (class * resource.DeviceClass ) field.ErrorList {
388
388
allErrs := corevalidation .ValidateObjectMeta (& class .ObjectMeta , false , corevalidation .ValidateClassName , field .NewPath ("metadata" ))
389
389
allErrs = append (allErrs , validateDeviceClassSpec (& class .Spec , nil , field .NewPath ("spec" ))... )
390
390
return allErrs
391
391
}
392
392
393
- // ValidateClassUpdate tests if an update to DeviceClass is valid.
393
+ // ValidateDeviceClassUpdate tests if an update to DeviceClass is valid.
394
394
func ValidateDeviceClassUpdate (class , oldClass * resource.DeviceClass ) field.ErrorList {
395
395
allErrs := corevalidation .ValidateObjectMetaUpdate (& class .ObjectMeta , & oldClass .ObjectMeta , field .NewPath ("metadata" ))
396
396
allErrs = append (allErrs , validateDeviceClassSpec (& class .Spec , & oldClass .Spec , field .NewPath ("spec" ))... )
@@ -466,7 +466,7 @@ func ValidateResourceSlice(slice *resource.ResourceSlice) field.ErrorList {
466
466
return allErrs
467
467
}
468
468
469
- // ValidateResourceSlice tests if a ResourceSlice update is valid.
469
+ // ValidateResourceSliceUpdate tests if a ResourceSlice update is valid.
470
470
func ValidateResourceSliceUpdate (resourceSlice , oldResourceSlice * resource.ResourceSlice ) field.ErrorList {
471
471
allErrs := corevalidation .ValidateObjectMetaUpdate (& resourceSlice .ObjectMeta , & oldResourceSlice .ObjectMeta , field .NewPath ("metadata" ))
472
472
allErrs = append (allErrs , validateResourceSliceSpec (& resourceSlice .Spec , & oldResourceSlice .Spec , field .NewPath ("spec" ))... )
@@ -483,13 +483,13 @@ func validateResourceSliceSpec(spec, oldSpec *resource.ResourceSliceSpec, fldPat
483
483
allErrs = append (allErrs , apimachineryvalidation .ValidateImmutableField (spec .NodeName , oldSpec .NodeName , fldPath .Child ("nodeName" ))... )
484
484
}
485
485
486
- numNodeSelectionFields := 0
486
+ setFields := make ([] string , 0 , 3 )
487
487
if spec .NodeName != "" {
488
- numNodeSelectionFields ++
488
+ setFields = append ( setFields , "`nodeName`" )
489
489
allErrs = append (allErrs , validateNodeName (spec .NodeName , fldPath .Child ("nodeName" ))... )
490
490
}
491
491
if spec .NodeSelector != nil {
492
- numNodeSelectionFields ++
492
+ setFields = append ( setFields , "`nodeSelector`" )
493
493
allErrs = append (allErrs , corevalidation .ValidateNodeSelector (spec .NodeSelector , false , fldPath .Child ("nodeSelector" ))... )
494
494
if len (spec .NodeSelector .NodeSelectorTerms ) != 1 {
495
495
// This additional constraint simplifies merging of different selectors
@@ -498,14 +498,15 @@ func validateResourceSliceSpec(spec, oldSpec *resource.ResourceSliceSpec, fldPat
498
498
}
499
499
}
500
500
if spec .AllNodes {
501
- numNodeSelectionFields ++
501
+ setFields = append ( setFields , "`allNodes`" )
502
502
}
503
- switch numNodeSelectionFields {
503
+ switch len ( setFields ) {
504
504
case 0 :
505
505
allErrs = append (allErrs , field .Required (fldPath , "exactly one of `nodeName`, `nodeSelector`, or `allNodes` is required" ))
506
506
case 1 :
507
507
default :
508
- allErrs = append (allErrs , field .Invalid (fldPath , nil , "exactly one of `nodeName`, `nodeSelector`, or `allNodes` is required" ))
508
+ allErrs = append (allErrs , field .Invalid (fldPath , fmt .Sprintf ("{%s}" , strings .Join (setFields , ", " )),
509
+ "exactly one of `nodeName`, `nodeSelector`, or `allNodes` is required, but multiple fields are set" ))
509
510
}
510
511
511
512
allErrs = append (allErrs , validateSet (spec .Devices , resource .ResourceSliceMaxDevices , validateDevice ,
@@ -569,7 +570,6 @@ var (
569
570
570
571
// optional dot-separated build identifier segments (e.g. +build.id.20240305)
571
572
`(\+` + buildIdentifier + `(\.` + buildIdentifier + `)*)?` +
572
-
573
573
`$` )
574
574
)
575
575
0 commit comments