From 8d0875f99a55f0f4934f7313907f5e9197b8a0dd Mon Sep 17 00:00:00 2001 From: wanyaoqi Date: Mon, 16 Oct 2023 16:21:00 +0800 Subject: [PATCH] fix(scheduler): isolated device predicate miss sriov nic --- .../predicates/isolated_device_predicate.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/scheduler/algorithm/predicates/isolated_device_predicate.go b/pkg/scheduler/algorithm/predicates/isolated_device_predicate.go index 87c8f8e11f..8acd4c5062 100644 --- a/pkg/scheduler/algorithm/predicates/isolated_device_predicate.go +++ b/pkg/scheduler/algorithm/predicates/isolated_device_predicate.go @@ -38,10 +38,22 @@ func (f *IsolatedDevicePredicate) Clone() core.FitPredicate { func (f *IsolatedDevicePredicate) PreExecute(ctx context.Context, u *core.Unit, cs []core.Candidater) (bool, error) { data := u.SchedData() - if len(data.IsolatedDevices) == 0 { - return false, nil + if len(data.IsolatedDevices) > 0 { + return true, nil } - return true, nil + networks := data.Networks + for i := 0; i < len(networks); i++ { + if networks[i].SriovDevice != nil { + return true, nil + } + } + disks := data.Disks + for i := 0; i < len(disks); i++ { + if disks[i].NVMEDevice != nil { + return true, nil + } + } + return false, nil } func (f *IsolatedDevicePredicate) Execute(ctx context.Context, u *core.Unit, c core.Candidater) (bool, []core.PredicateFailureReason, error) {