From 3d583398fe2795b7d4c87c8fb8ad068116d7d09d Mon Sep 17 00:00:00 2001 From: kerthcet Date: Tue, 25 Apr 2023 20:23:37 +0800 Subject: [PATCH 1/2] Avoid to build the error msg for twice Signed-off-by: kerthcet --- .../plugins/defaultpreemption/default_preemption.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption.go b/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption.go index a2d20968d11..b54676fe010 100644 --- a/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption.go +++ b/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption.go @@ -97,8 +97,9 @@ func (pl *DefaultPreemption) PostFilter(ctx context.Context, state *framework.Cy } result, status := pe.Preempt(ctx, pod, m) - if status.Message() != "" { - return result, framework.NewStatus(status.Code(), "preemption: "+status.Message()) + msg := status.Message() + if len(msg) > 0 { + return result, framework.NewStatus(status.Code(), "preemption: "+msg) } return result, status } From 580f83ab4a5ab7122085cf0847429cb65e86f617 Mon Sep 17 00:00:00 2001 From: kerthcet Date: Mon, 28 Aug 2023 22:36:36 +0800 Subject: [PATCH 2/2] Avoid duplicated dots in pod condition Signed-off-by: kerthcet --- pkg/scheduler/framework/types.go | 9 +++------ pkg/scheduler/framework/types_test.go | 6 +++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/pkg/scheduler/framework/types.go b/pkg/scheduler/framework/types.go index 08b76183d98..b1c951f073b 100644 --- a/pkg/scheduler/framework/types.go +++ b/pkg/scheduler/framework/types.go @@ -307,8 +307,6 @@ type FitError struct { const ( // NoNodeAvailableMsg is used to format message when no nodes available. NoNodeAvailableMsg = "0/%v nodes are available" - // SeparatorFormat is used to separate PreFilterMsg, FilterMsg and PostFilterMsg. - SeparatorFormat = " %v." ) // Error returns detailed information of why the pod failed to fit on each node. @@ -319,7 +317,7 @@ func (f *FitError) Error() string { if preFilterMsg != "" { // PreFilter plugin returns unschedulable. // Add the messages from PreFilter plugins to reasonMsg. - reasonMsg += fmt.Sprintf(SeparatorFormat, preFilterMsg) + reasonMsg += fmt.Sprintf(" %v.", preFilterMsg) } if preFilterMsg == "" { @@ -346,7 +344,7 @@ func (f *FitError) Error() string { } sortedFilterMsg := sortReasonsHistogram() if len(sortedFilterMsg) != 0 { - reasonMsg += fmt.Sprintf(SeparatorFormat, strings.Join(sortedFilterMsg, ", ")) + reasonMsg += fmt.Sprintf(" %v.", strings.Join(sortedFilterMsg, ", ")) } } @@ -355,9 +353,8 @@ func (f *FitError) Error() string { // since we may run PostFilter (if enabled) in both cases. postFilterMsg := f.Diagnosis.PostFilterMsg if postFilterMsg != "" { - reasonMsg += fmt.Sprintf(SeparatorFormat, postFilterMsg) + reasonMsg += fmt.Sprintf(" %v", postFilterMsg) } - return reasonMsg } diff --git a/pkg/scheduler/framework/types_test.go b/pkg/scheduler/framework/types_test.go index e2c3d56058b..fd9abd79273 100644 --- a/pkg/scheduler/framework/types_test.go +++ b/pkg/scheduler/framework/types_test.go @@ -1415,7 +1415,7 @@ func TestFitError_Error(t *testing.T) { // PostFilterMsg will be included. PostFilterMsg: "Error running PostFilter plugin FailedPostFilter", }, - wantReasonMsg: "0/3 nodes are available: Node(s) failed PreFilter plugin FalsePreFilter. Error running PostFilter plugin FailedPostFilter.", + wantReasonMsg: "0/3 nodes are available: Node(s) failed PreFilter plugin FalsePreFilter. Error running PostFilter plugin FailedPostFilter", }, { name: "nodes failed one Filter plugin with an empty PostFilterMsg", @@ -1442,7 +1442,7 @@ func TestFitError_Error(t *testing.T) { }, PostFilterMsg: "Error running PostFilter plugin FailedPostFilter", }, - wantReasonMsg: "0/3 nodes are available: 3 Node(s) failed Filter plugin FalseFilter-1. Error running PostFilter plugin FailedPostFilter.", + wantReasonMsg: "0/3 nodes are available: 3 Node(s) failed Filter plugin FalseFilter-1. Error running PostFilter plugin FailedPostFilter", }, { name: "nodes failed two Filter plugins with an empty PostFilterMsg", @@ -1469,7 +1469,7 @@ func TestFitError_Error(t *testing.T) { }, PostFilterMsg: "Error running PostFilter plugin FailedPostFilter", }, - wantReasonMsg: "0/3 nodes are available: 1 Node(s) failed Filter plugin FalseFilter-2, 2 Node(s) failed Filter plugin FalseFilter-1. Error running PostFilter plugin FailedPostFilter.", + wantReasonMsg: "0/3 nodes are available: 1 Node(s) failed Filter plugin FalseFilter-2, 2 Node(s) failed Filter plugin FalseFilter-1. Error running PostFilter plugin FailedPostFilter", }, { name: "failed to Permit on node",