@@ -3,6 +3,7 @@ package complexscheduler
3
3
import (
4
4
"errors"
5
5
"fmt"
6
+ "sort"
6
7
"testing"
7
8
8
9
"math"
@@ -1011,8 +1012,10 @@ func TestSelectMemoryNodesSequence(t *testing.T) {
1011
1012
refreshPod (res , deployMap , mem , 0 )
1012
1013
res , deployMap , err = SelectMemoryNodes (k , res , nil , cpu , mem , 5 , false )
1013
1014
assert .NoError (t , err )
1014
- assert .Equal (t , deployMap [res [0 ].Name ], 3 )
1015
- assert .Equal (t , deployMap [res [1 ].Name ], 2 )
1015
+ finalCounts := []int {deployMap [res [0 ].Name ], deployMap [res [1 ].Name ]}
1016
+ sort .Ints (finalCounts )
1017
+ assert .ElementsMatch (t , []int {2 , 3 }, finalCounts )
1018
+
1016
1019
}
1017
1020
1018
1021
func TestSelectMemoryNodesGiven (t * testing.T ) {
@@ -1024,15 +1027,15 @@ func TestSelectMemoryNodesGiven(t *testing.T) {
1024
1027
}
1025
1028
1026
1029
k , _ := newPotassium ()
1027
- res , deployMap , err := SelectMemoryNodes (k , pod , countMap , 1.0 , 512 * int64 (units .MiB ), 2 , false )
1030
+ _ , deployMap , err := SelectMemoryNodes (k , pod , countMap , 1.0 , 512 * int64 (units .MiB ), 2 , false )
1028
1031
assert .NoError (t , err )
1029
- for _ , node := range res {
1030
- if node .Name == "n3" {
1031
- assert .Equal (t , deployMap [node .Name ], 2 )
1032
- continue
1033
- }
1034
- assert .Equal (t , deployMap [node .Name ], 0 )
1032
+ finalCounts := []int {}
1033
+ for _ , node := range pod {
1034
+ finalCounts = append (finalCounts , countMap [node .Name ]+ deployMap [node .Name ])
1035
1035
}
1036
+ sort .Ints (finalCounts )
1037
+ assert .ElementsMatch (t , []int {1 , 1 , 1 , 2 }, finalCounts )
1038
+
1036
1039
}
1037
1040
1038
1041
func TestMaxIdleNode (t * testing.T ) {
@@ -1219,10 +1222,11 @@ func TestSelectStorageNodesSequence(t *testing.T) {
1219
1222
res , deployMap , err := SelectStorageNodes (k , scheduleInfos , nil , stor , 1 , false )
1220
1223
assert .NoError (t , err )
1221
1224
assert .Equal (t , 2 , len (res ))
1222
- assert .Equal (t , 1 , deployMap [res [0 ].Name ])
1223
1225
assert .Equal (t , 1 , res [0 ].Capacity )
1224
- assert .Equal (t , 0 , deployMap [res [1 ].Name ])
1225
1226
assert .Equal (t , 2 , res [1 ].Capacity )
1227
+ counts := []int {deployMap [scheduleInfos [0 ].Name ], deployMap [scheduleInfos [1 ].Name ]}
1228
+ sort .Ints (counts )
1229
+ assert .ElementsMatch (t , []int {0 , 1 }, counts )
1226
1230
1227
1231
refreshPod (res , deployMap , mem , stor )
1228
1232
countMap := map [string ]int {
@@ -1251,10 +1255,14 @@ func TestSelectStorageNodesSequence(t *testing.T) {
1251
1255
return
1252
1256
}
1253
1257
i , j := getLess (res )
1254
- assert .Equal (t , 0 , deployMap [res [i ].Name ])
1255
- assert .Equal (t , 2 , deployMap [res [j ].Name ])
1256
- assert .Equal (t , 1 , res [i ].Capacity )
1257
- assert .Equal (t , 0 , res [j ].Capacity )
1258
+ getFinalCounts := func (deployMap , countMap map [string ]int ) (counts []int ) {
1259
+ for name , d := range deployMap {
1260
+ counts = append (counts , d + countMap [name ])
1261
+ }
1262
+ sort .Ints (counts )
1263
+ return
1264
+ }
1265
+ assert .ElementsMatch (t , []int {1 , 2 }, getFinalCounts (deployMap , countMap ))
1258
1266
1259
1267
refreshPod (res , deployMap , mem , stor )
1260
1268
countMap = map [string ]int {
@@ -1268,13 +1276,6 @@ func TestSelectStorageNodesSequence(t *testing.T) {
1268
1276
assert .Equal (t , 2 , len (res ))
1269
1277
assert .Equal (t , 14 , res [0 ].Capacity )
1270
1278
assert .Equal (t , 15 , res [1 ].Capacity )
1271
-
1272
- res , deployMap , err = SelectStorageNodes (k , res , countMap , int64 (units .GiB ), 1 , false )
1273
- assert .NoError (t , err )
1274
- i , j = getLess (res )
1275
- assert .Equal (t , 2 , len (res ))
1276
- assert .Equal (t , 1 , deployMap [res [i ].Name ])
1277
- assert .Equal (t , 0 , res [i ].Capacity )
1278
1279
}
1279
1280
1280
1281
func SelectStorageNodes (k * Potassium , scheduleInfos []resourcetypes.ScheduleInfo , countMap map [string ]int , storage int64 , need int , each bool ) ([]resourcetypes.ScheduleInfo , map [string ]int , error ) {
@@ -1295,7 +1296,7 @@ func SelectStorageNodes(k *Potassium, scheduleInfos []resourcetypes.ScheduleInfo
1295
1296
for i , scheduleInfo := range scheduleInfos {
1296
1297
for _ , si := range strategyInfos {
1297
1298
if si .Nodename == scheduleInfo .Name {
1298
- scheduleInfos [i ].Capacity = si .Capacity
1299
+ scheduleInfos [i ].Capacity = si .Capacity - deployMap [ si . Nodename ]
1299
1300
}
1300
1301
}
1301
1302
}
0 commit comments