feat: case insensitive string comparison in evaluater package of the manager (#2632)

Signed-off-by: Gaius <gaius.qi@gmail.com>
This commit is contained in:
Gaius 2023-08-15 14:14:36 +08:00 committed by GitHub
parent 47807bd9a3
commit 732819bbe9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 12 deletions

View File

@ -192,7 +192,7 @@ func calculateIDCAffinityScore(dst, src string) float64 {
return minScore
}
if dst == src {
if strings.EqualFold(dst, src) {
return maxScore
}
@ -201,7 +201,7 @@ func calculateIDCAffinityScore(dst, src string) float64 {
// it gets the max score of idc.
srcElements := strings.Split(src, types.AffinitySeparator)
for _, srcElement := range srcElements {
if dst == srcElement {
if strings.EqualFold(dst, srcElement) {
return maxScore
}
}
@ -215,7 +215,7 @@ func calculateMultiElementAffinityScore(dst, src string) float64 {
return minScore
}
if dst == src {
if strings.EqualFold(dst, src) {
return maxScore
}
@ -231,7 +231,7 @@ func calculateMultiElementAffinityScore(dst, src string) float64 {
}
for i := 0; i < elementLen; i++ {
if dstElements[i] != srcElements[i] {
if !strings.EqualFold(dstElements[i], srcElements[i]) {
break
}

View File

@ -371,11 +371,11 @@ func TestSearcher_FindSchedulerClusters(t *testing.T) {
},
expect: func(t *testing.T, data []models.SchedulerCluster, err error) {
assert := assert.New(t)
assert.Equal(data[0].Name, "bax")
assert.Equal(data[1].Name, "bae")
assert.Equal(data[2].Name, "foo")
assert.Equal(data[3].Name, "bar")
assert.Equal(data[4].Name, "baz")
assert.Equal(data[0].Name, "baz")
assert.Equal(data[1].Name, "bar")
assert.Equal(data[2].Name, "bax")
assert.Equal(data[3].Name, "bae")
assert.Equal(data[4].Name, "foo")
assert.Equal(data[5].Name, "bac")
assert.Equal(data[6].Name, "bat")
assert.Equal(len(data), 7)

View File

@ -152,7 +152,11 @@ func calculateHostTypeScore(peer *resource.Peer) float64 {
// calculateIDCAffinityScore 0.0~1.0 larger and better.
func calculateIDCAffinityScore(dst, src string) float64 {
if dst != "" && src != "" && dst == src {
if dst == "" || src == "" {
return minScore
}
if strings.EqualFold(dst, src) {
return maxScore
}
@ -165,7 +169,7 @@ func calculateMultiElementAffinityScore(dst, src string) float64 {
return minScore
}
if dst == src {
if strings.EqualFold(dst, src) {
return maxScore
}
@ -181,9 +185,10 @@ func calculateMultiElementAffinityScore(dst, src string) float64 {
}
for i := 0; i < elementLen; i++ {
if dstElements[i] != srcElements[i] {
if !strings.EqualFold(dstElements[i], srcElements[i]) {
break
}
score++
}