From 067b01cabdf08f0e3fa11c9fa8137e73f1ec0929 Mon Sep 17 00:00:00 2001 From: sp-yduck Date: Sat, 1 Feb 2025 14:10:54 +0000 Subject: [PATCH] fix empty node score list error --- cloud/scheduler/plugins/noderesource/node_resrouce.go | 2 +- cloud/scheduler/scheduler.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cloud/scheduler/plugins/noderesource/node_resrouce.go b/cloud/scheduler/plugins/noderesource/node_resrouce.go index 2cb280f..f995a66 100644 --- a/cloud/scheduler/plugins/noderesource/node_resrouce.go +++ b/cloud/scheduler/plugins/noderesource/node_resrouce.go @@ -29,6 +29,6 @@ func (pl *NodeResource) Score(ctx context.Context, state *framework.CycleState, u := cpu / float32(maxCPU) * float32(mem/maxMem) score := int64(1 / u) status := framework.NewStatus() - status.SetCode(1) + status.SetCode(0) return score, status } diff --git a/cloud/scheduler/scheduler.go b/cloud/scheduler/scheduler.go index a2eb13f..b54e4b6 100644 --- a/cloud/scheduler/scheduler.go +++ b/cloud/scheduler/scheduler.go @@ -379,15 +379,21 @@ func (s *Scheduler) RunScorePlugins(ctx context.Context, state *framework.CycleS s.logger.Info("scoring proxmox node") status := framework.NewStatus() scoresMap := make(map[string](map[int]framework.NodeScore)) + for _, pl := range s.registry.ScorePlugins() { + scoresMap[pl.Name()] = make(map[int]framework.NodeScore) + } nodeInfos, err := framework.GetNodeInfoList(ctx, s.client) if err != nil { status.SetCode(1) + s.logger.Error(err, "failed to get node info list") return nil, status } for index, nodeInfo := range nodeInfos { for _, pl := range s.registry.ScorePlugins() { score, status := pl.Score(ctx, state, config, nodeInfo) if !status.IsSuccess() { + status.SetCode(1) + s.logger.Error(status.Error(), fmt.Sprintf("failed to score node %s", nodeInfo.Node().Node)) return nil, status } scoresMap[pl.Name()][index] = framework.NodeScore{