Skip to content

Commit 8deb70c

Browse files
authored
Merge pull request kubernetes#95091 from arghya88/wrap-errors-plugins-selectorspread/podtopologyspread
wrap errors in selectorspread and podtoplogyspread plugin
2 parents aaf9883 + 8154dc9 commit 8deb70c

File tree

4 files changed

+18
-17
lines changed

4 files changed

+18
-17
lines changed

pkg/scheduler/framework/plugins/podtopologyspread/filtering.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ func (s *preFilterState) updateWithPod(updatedPod, preemptorPod *v1.Pod, node *v
146146
func (pl *PodTopologySpread) PreFilter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod) *framework.Status {
147147
s, err := pl.calPreFilterState(pod)
148148
if err != nil {
149-
return framework.NewStatus(framework.Error, err.Error())
149+
return framework.AsStatus(err)
150150
}
151151
cycleState.Write(preFilterStateKey, s)
152152
return nil
@@ -161,7 +161,7 @@ func (pl *PodTopologySpread) PreFilterExtensions() framework.PreFilterExtensions
161161
func (pl *PodTopologySpread) AddPod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToAdd *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
162162
s, err := getPreFilterState(cycleState)
163163
if err != nil {
164-
return framework.NewStatus(framework.Error, err.Error())
164+
return framework.AsStatus(err)
165165
}
166166

167167
s.updateWithPod(podToAdd, podToSchedule, nodeInfo.Node(), 1)
@@ -172,7 +172,7 @@ func (pl *PodTopologySpread) AddPod(ctx context.Context, cycleState *framework.C
172172
func (pl *PodTopologySpread) RemovePod(ctx context.Context, cycleState *framework.CycleState, podToSchedule *v1.Pod, podToRemove *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
173173
s, err := getPreFilterState(cycleState)
174174
if err != nil {
175-
return framework.NewStatus(framework.Error, err.Error())
175+
return framework.AsStatus(err)
176176
}
177177

178178
s.updateWithPod(podToRemove, podToSchedule, nodeInfo.Node(), -1)
@@ -184,7 +184,7 @@ func getPreFilterState(cycleState *framework.CycleState) (*preFilterState, error
184184
c, err := cycleState.Read(preFilterStateKey)
185185
if err != nil {
186186
// preFilterState doesn't exist, likely PreFilter wasn't invoked.
187-
return nil, fmt.Errorf("error reading %q from cycleState: %v", preFilterStateKey, err)
187+
return nil, fmt.Errorf("reading %q from cycleState: %v", preFilterStateKey, err)
188188
}
189189

190190
s, ok := c.(*preFilterState)
@@ -276,12 +276,12 @@ func (pl *PodTopologySpread) calPreFilterState(pod *v1.Pod) (*preFilterState, er
276276
func (pl *PodTopologySpread) Filter(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
277277
node := nodeInfo.Node()
278278
if node == nil {
279-
return framework.NewStatus(framework.Error, "node not found")
279+
return framework.AsStatus(fmt.Errorf("node not found"))
280280
}
281281

282282
s, err := getPreFilterState(cycleState)
283283
if err != nil {
284-
return framework.NewStatus(framework.Error, err.Error())
284+
return framework.AsStatus(err)
285285
}
286286

287287
// However, "empty" preFilterState is legit which tolerates every toSchedule Pod.

pkg/scheduler/framework/plugins/podtopologyspread/filtering_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package podtopologyspread
1818

1919
import (
2020
"context"
21+
"fmt"
2122
"reflect"
2223
"testing"
2324

@@ -1651,7 +1652,7 @@ func TestPreFilterDisabled(t *testing.T) {
16511652
p := &PodTopologySpread{}
16521653
cycleState := framework.NewCycleState()
16531654
gotStatus := p.Filter(context.Background(), cycleState, pod, nodeInfo)
1654-
wantStatus := framework.NewStatus(framework.Error, `error reading "PreFilterPodTopologySpread" from cycleState: not found`)
1655+
wantStatus := framework.AsStatus(fmt.Errorf(`reading "PreFilterPodTopologySpread" from cycleState: not found`))
16551656
if !reflect.DeepEqual(gotStatus, wantStatus) {
16561657
t.Errorf("status does not match: %v, want: %v", gotStatus, wantStatus)
16571658
}

pkg/scheduler/framework/plugins/podtopologyspread/scoring.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func (pl *PodTopologySpread) PreScore(
113113
) *framework.Status {
114114
allNodes, err := pl.sharedLister.NodeInfos().List()
115115
if err != nil {
116-
return framework.NewStatus(framework.Error, fmt.Sprintf("error when getting all nodes: %v", err))
116+
return framework.AsStatus(fmt.Errorf("getting all nodes: %w", err))
117117
}
118118

119119
if len(filteredNodes) == 0 || len(allNodes) == 0 {
@@ -127,7 +127,7 @@ func (pl *PodTopologySpread) PreScore(
127127
}
128128
err = pl.initPreScoreState(state, pod, filteredNodes)
129129
if err != nil {
130-
return framework.NewStatus(framework.Error, fmt.Sprintf("error when calculating preScoreState: %v", err))
130+
return framework.AsStatus(fmt.Errorf("calculating preScoreState: %w", err))
131131
}
132132

133133
// return if incoming pod doesn't have soft topology spread Constraints.
@@ -173,14 +173,14 @@ func (pl *PodTopologySpread) PreScore(
173173
// it is normalized later.
174174
func (pl *PodTopologySpread) Score(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status) {
175175
nodeInfo, err := pl.sharedLister.NodeInfos().Get(nodeName)
176-
if err != nil || nodeInfo.Node() == nil {
177-
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("getting node %q from Snapshot: %v, node is nil: %v", nodeName, err, nodeInfo.Node() == nil))
176+
if err != nil {
177+
return 0, framework.AsStatus(fmt.Errorf("getting node %q from Snapshot: %w", nodeName, err))
178178
}
179179

180180
node := nodeInfo.Node()
181181
s, err := getPreScoreState(cycleState)
182182
if err != nil {
183-
return 0, framework.NewStatus(framework.Error, err.Error())
183+
return 0, framework.AsStatus(err)
184184
}
185185

186186
// Return if the node is not qualified.
@@ -210,7 +210,7 @@ func (pl *PodTopologySpread) Score(ctx context.Context, cycleState *framework.Cy
210210
func (pl *PodTopologySpread) NormalizeScore(ctx context.Context, cycleState *framework.CycleState, pod *v1.Pod, scores framework.NodeScoreList) *framework.Status {
211211
s, err := getPreScoreState(cycleState)
212212
if err != nil {
213-
return framework.NewStatus(framework.Error, err.Error())
213+
return framework.AsStatus(err)
214214
}
215215
if s == nil {
216216
return nil
@@ -235,7 +235,7 @@ func (pl *PodTopologySpread) NormalizeScore(ctx context.Context, cycleState *fra
235235
for i := range scores {
236236
nodeInfo, err := pl.sharedLister.NodeInfos().Get(scores[i].Name)
237237
if err != nil {
238-
return framework.NewStatus(framework.Error, err.Error())
238+
return framework.AsStatus(err)
239239
}
240240
node := nodeInfo.Node()
241241

pkg/scheduler/framework/plugins/selectorspread/selector_spread.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,17 @@ func (pl *SelectorSpread) Score(ctx context.Context, state *framework.CycleState
8686

8787
c, err := state.Read(preScoreStateKey)
8888
if err != nil {
89-
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("Error reading %q from cycleState: %v", preScoreStateKey, err))
89+
return 0, framework.AsStatus(fmt.Errorf("reading %q from cycleState: %w", preScoreStateKey, err))
9090
}
9191

9292
s, ok := c.(*preScoreState)
9393
if !ok {
94-
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("%+v convert to tainttoleration.preScoreState error", c))
94+
return 0, framework.AsStatus(fmt.Errorf("cannot convert saved state to tainttoleration.preScoreState"))
9595
}
9696

9797
nodeInfo, err := pl.sharedLister.NodeInfos().Get(nodeName)
9898
if err != nil {
99-
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("getting node %q from Snapshot: %v", nodeName, err))
99+
return 0, framework.AsStatus(fmt.Errorf("getting node %q from Snapshot: %w", nodeName, err))
100100
}
101101

102102
count := countMatchingPods(pod.Namespace, s.selector, nodeInfo)

0 commit comments

Comments
 (0)