mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
Wrap errors for framework/runtime
This commit is contained in:
parent
c37905c06c
commit
b79c2ebd7e
@ -538,7 +538,7 @@ func (f *frameworkImpl) RunFilterPlugins(
|
|||||||
if !pluginStatus.IsUnschedulable() {
|
if !pluginStatus.IsUnschedulable() {
|
||||||
// Filter plugins are not supposed to return any status other than
|
// Filter plugins are not supposed to return any status other than
|
||||||
// Success or Unschedulable.
|
// Success or Unschedulable.
|
||||||
errStatus := framework.NewStatus(framework.Error, fmt.Sprintf("running %q filter plugin for pod %q: %v", pl.Name(), pod.Name, pluginStatus.Message()))
|
errStatus := framework.AsStatus(fmt.Errorf("running %q filter plugin: %w", pl.Name(), pluginStatus.AsError()))
|
||||||
return map[string]*framework.Status{pl.Name(): errStatus}
|
return map[string]*framework.Status{pl.Name(): errStatus}
|
||||||
}
|
}
|
||||||
statuses[pl.Name()] = pluginStatus
|
statuses[pl.Name()] = pluginStatus
|
||||||
@ -577,7 +577,7 @@ func (f *frameworkImpl) RunPostFilterPlugins(ctx context.Context, state *framewo
|
|||||||
return r, s
|
return r, s
|
||||||
} else if !s.IsUnschedulable() {
|
} else if !s.IsUnschedulable() {
|
||||||
// Any status other than Success or Unschedulable is Error.
|
// Any status other than Success or Unschedulable is Error.
|
||||||
return nil, framework.NewStatus(framework.Error, s.Message())
|
return nil, framework.AsStatus(s.AsError())
|
||||||
}
|
}
|
||||||
statuses[pl.Name()] = s
|
statuses[pl.Name()] = s
|
||||||
}
|
}
|
||||||
@ -635,7 +635,7 @@ func (f *frameworkImpl) RunFilterPluginsWithNominatedPods(ctx context.Context, s
|
|||||||
var err error
|
var err error
|
||||||
podsAdded, stateToUse, nodeInfoToUse, err = addNominatedPods(ctx, ph, pod, state, info)
|
podsAdded, stateToUse, nodeInfoToUse, err = addNominatedPods(ctx, ph, pod, state, info)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return framework.NewStatus(framework.Error, err.Error())
|
return framework.AsStatus(err)
|
||||||
}
|
}
|
||||||
} else if !podsAdded || !status.IsSuccess() {
|
} else if !podsAdded || !status.IsSuccess() {
|
||||||
break
|
break
|
||||||
|
@ -363,7 +363,10 @@ var nodes = []*v1.Node{
|
|||||||
{ObjectMeta: metav1.ObjectMeta{Name: "node2"}},
|
{ObjectMeta: metav1.ObjectMeta{Name: "node2"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
var errInjectedStatus = errors.New("injected status")
|
var (
|
||||||
|
errInjectedStatus = errors.New("injected status")
|
||||||
|
errInjectedFilterStatus = errors.New("injected filter status")
|
||||||
|
)
|
||||||
|
|
||||||
func newFrameworkWithQueueSortAndBind(r Registry, pl *config.Plugins, plc []config.PluginConfig, opts ...Option) (framework.Framework, error) {
|
func newFrameworkWithQueueSortAndBind(r Registry, pl *config.Plugins, plc []config.PluginConfig, opts ...Option) (framework.Framework, error) {
|
||||||
if _, ok := r[queueSortPlugin]; !ok {
|
if _, ok := r[queueSortPlugin]; !ok {
|
||||||
@ -891,8 +894,8 @@ func TestFilterPlugins(t *testing.T) {
|
|||||||
inj: injectedResult{FilterStatus: int(framework.Error)},
|
inj: injectedResult{FilterStatus: int(framework.Error)},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wantStatus: framework.NewStatus(framework.Error, `running "TestPlugin" filter plugin for pod "": injected filter status`),
|
wantStatus: framework.AsStatus(fmt.Errorf(`running "TestPlugin" filter plugin: %w`, errInjectedFilterStatus)),
|
||||||
wantStatusMap: framework.PluginToStatus{"TestPlugin": framework.NewStatus(framework.Error, `running "TestPlugin" filter plugin for pod "": injected filter status`)},
|
wantStatusMap: framework.PluginToStatus{"TestPlugin": framework.AsStatus(fmt.Errorf(`running "TestPlugin" filter plugin: %w`, errInjectedFilterStatus))},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "UnschedulableFilter",
|
name: "UnschedulableFilter",
|
||||||
@ -931,8 +934,8 @@ func TestFilterPlugins(t *testing.T) {
|
|||||||
inj: injectedResult{FilterStatus: int(framework.Error)},
|
inj: injectedResult{FilterStatus: int(framework.Error)},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wantStatus: framework.NewStatus(framework.Error, `running "TestPlugin1" filter plugin for pod "": injected filter status`),
|
wantStatus: framework.AsStatus(fmt.Errorf(`running "TestPlugin1" filter plugin: %w`, errInjectedFilterStatus)),
|
||||||
wantStatusMap: framework.PluginToStatus{"TestPlugin1": framework.NewStatus(framework.Error, `running "TestPlugin1" filter plugin for pod "": injected filter status`)},
|
wantStatusMap: framework.PluginToStatus{"TestPlugin1": framework.AsStatus(fmt.Errorf(`running "TestPlugin1" filter plugin: %w`, errInjectedFilterStatus))},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "SuccessAndSuccessFilters",
|
name: "SuccessAndSuccessFilters",
|
||||||
@ -962,8 +965,8 @@ func TestFilterPlugins(t *testing.T) {
|
|||||||
inj: injectedResult{FilterStatus: int(framework.Success)},
|
inj: injectedResult{FilterStatus: int(framework.Success)},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wantStatus: framework.NewStatus(framework.Error, `running "TestPlugin1" filter plugin for pod "": injected filter status`),
|
wantStatus: framework.AsStatus(fmt.Errorf(`running "TestPlugin1" filter plugin: %w`, errInjectedFilterStatus)),
|
||||||
wantStatusMap: framework.PluginToStatus{"TestPlugin1": framework.NewStatus(framework.Error, `running "TestPlugin1" filter plugin for pod "": injected filter status`)},
|
wantStatusMap: framework.PluginToStatus{"TestPlugin1": framework.AsStatus(fmt.Errorf(`running "TestPlugin1" filter plugin: %w`, errInjectedFilterStatus))},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "SuccessAndErrorFilters",
|
name: "SuccessAndErrorFilters",
|
||||||
@ -978,8 +981,8 @@ func TestFilterPlugins(t *testing.T) {
|
|||||||
inj: injectedResult{FilterStatus: int(framework.Error)},
|
inj: injectedResult{FilterStatus: int(framework.Error)},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wantStatus: framework.NewStatus(framework.Error, `running "TestPlugin2" filter plugin for pod "": injected filter status`),
|
wantStatus: framework.AsStatus(fmt.Errorf(`running "TestPlugin2" filter plugin: %w`, errInjectedFilterStatus)),
|
||||||
wantStatusMap: framework.PluginToStatus{"TestPlugin2": framework.NewStatus(framework.Error, `running "TestPlugin2" filter plugin for pod "": injected filter status`)},
|
wantStatusMap: framework.PluginToStatus{"TestPlugin2": framework.AsStatus(fmt.Errorf(`running "TestPlugin2" filter plugin: %w`, errInjectedFilterStatus))},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "SuccessAndUnschedulableFilters",
|
name: "SuccessAndUnschedulableFilters",
|
||||||
@ -1023,8 +1026,8 @@ func TestFilterPlugins(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
runAllFilters: true,
|
runAllFilters: true,
|
||||||
wantStatus: framework.NewStatus(framework.Error, `running "TestPlugin1" filter plugin for pod "": injected filter status`),
|
wantStatus: framework.AsStatus(fmt.Errorf(`running "TestPlugin1" filter plugin: %w`, errInjectedFilterStatus)),
|
||||||
wantStatusMap: framework.PluginToStatus{"TestPlugin1": framework.NewStatus(framework.Error, `running "TestPlugin1" filter plugin for pod "": injected filter status`)},
|
wantStatusMap: framework.PluginToStatus{"TestPlugin1": framework.AsStatus(fmt.Errorf(`running "TestPlugin1" filter plugin: %w`, errInjectedFilterStatus))},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "ErrorAndErrorFilters",
|
name: "ErrorAndErrorFilters",
|
||||||
@ -1215,7 +1218,7 @@ func TestFilterPluginsWithNominatedPods(t *testing.T) {
|
|||||||
nominatedPod: highPriorityPod,
|
nominatedPod: highPriorityPod,
|
||||||
node: node,
|
node: node,
|
||||||
nodeInfo: framework.NewNodeInfo(pod),
|
nodeInfo: framework.NewNodeInfo(pod),
|
||||||
wantStatus: framework.NewStatus(framework.Error, `running AddPod on PreFilter plugin "TestPlugin1": injected status`),
|
wantStatus: framework.AsStatus(fmt.Errorf(`running AddPod on PreFilter plugin "TestPlugin1": %w`, errInjectedStatus)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "node has a high-priority nominated pod and filters fail",
|
name: "node has a high-priority nominated pod and filters fail",
|
||||||
@ -1235,7 +1238,7 @@ func TestFilterPluginsWithNominatedPods(t *testing.T) {
|
|||||||
nominatedPod: highPriorityPod,
|
nominatedPod: highPriorityPod,
|
||||||
node: node,
|
node: node,
|
||||||
nodeInfo: framework.NewNodeInfo(pod),
|
nodeInfo: framework.NewNodeInfo(pod),
|
||||||
wantStatus: framework.NewStatus(framework.Error, `running "TestPlugin2" filter plugin for pod "": injected filter status`),
|
wantStatus: framework.AsStatus(fmt.Errorf(`running "TestPlugin2" filter plugin: %w`, errInjectedFilterStatus)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "node has a low-priority nominated pod and pre filters return unschedulable",
|
name: "node has a low-priority nominated pod and pre filters return unschedulable",
|
||||||
|
@ -954,7 +954,7 @@ func TestSchedulerWithVolumeBinding(t *testing.T) {
|
|||||||
FindErr: findErr,
|
FindErr: findErr,
|
||||||
},
|
},
|
||||||
eventReason: "FailedScheduling",
|
eventReason: "FailedScheduling",
|
||||||
expectError: fmt.Errorf("running %q filter plugin for pod %q: %v", volumebinding.Name, "foo", findErr),
|
expectError: fmt.Errorf("running %q filter plugin: %v", volumebinding.Name, findErr),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "assume error",
|
name: "assume error",
|
||||||
|
Loading…
Reference in New Issue
Block a user