From f91f9a89e8764fcdd32aff344a92509b36293977 Mon Sep 17 00:00:00 2001 From: Artur Troian Date: Tue, 13 Jun 2023 08:10:42 -0400 Subject: [PATCH] fix: GPU attributes must be empty if units 0 Signed-off-by: Artur Troian --- go/node/deployment/v1beta3/resource_list_validation.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/go/node/deployment/v1beta3/resource_list_validation.go b/go/node/deployment/v1beta3/resource_list_validation.go index 821fb36d..5d2a6934 100644 --- a/go/node/deployment/v1beta3/resource_list_validation.go +++ b/go/node/deployment/v1beta3/resource_list_validation.go @@ -131,11 +131,16 @@ func validateGPU(u *types.GPU) (sdk.Int, error) { if u == nil { return sdk.Int{}, fmt.Errorf("error: invalid unit GPU, cannot be nil") } + if (u.Units.Value() > uint64(validationConfig.MaxUnitGPU)) || (u.Units.Value() < uint64(validationConfig.MinUnitGPU)) { return sdk.Int{}, fmt.Errorf("error: invalid unit GPU (%v > %v > %v fails)", validationConfig.MaxUnitGPU, u.Units.Value(), validationConfig.MinUnitGPU) } + if u.Units.Value() == 0 && len(u.Attributes) > 0 { + return sdk.Int{}, fmt.Errorf("error: invalid GPU state. attributes cannot be present if units == 0") + } + if err := u.Attributes.Validate(); err != nil { return sdk.Int{}, fmt.Errorf("error: invalid GPU attributes: %w", err) }