From d2907bf5bf226cd7504d688139c2928ad45499db Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Wed, 8 Jun 2022 16:45:15 +0800 Subject: [PATCH] fix(scheduler): check if chached image supports UEFI --- .../predicates/baremetal/uefi_predicate.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/scheduler/algorithm/predicates/baremetal/uefi_predicate.go b/pkg/scheduler/algorithm/predicates/baremetal/uefi_predicate.go index de1e93ce33..0cc9474731 100644 --- a/pkg/scheduler/algorithm/predicates/baremetal/uefi_predicate.go +++ b/pkg/scheduler/algorithm/predicates/baremetal/uefi_predicate.go @@ -61,13 +61,24 @@ func (f *UEFIImagePredicate) PreExecute(ctx context.Context, u *core.Unit, cs [] return true, nil } +func (f *UEFIImagePredicate) isImageUEFI() bool { + if f.cacheImage.UEFI.Bool() { + return true + } + support, err := f.cacheImage.Info.Bool("properties", "uefi_support") + if err != nil { + return false + } + return support +} + func (f *UEFIImagePredicate) Execute(ctx context.Context, u *core.Unit, c core.Candidater) (bool, []core.PredicateFailureReason, error) { h := predicates.NewPredicateHelper(f, u, c) imgName := f.cacheImage.GetName() hostName := c.Getter().Name() imageMsg := fmt.Sprintf("image %s is not UEFI", imgName) hostMsg := fmt.Sprintf("host %s is not UEFI boot", hostName) - isUEFIImage := f.cacheImage.UEFI.Bool() + isUEFIImage := f.isImageUEFI() if isUEFIImage { imageMsg = fmt.Sprintf("image %s is UEFI", imgName) }