@@ -165,6 +165,9 @@ func TestPodScanner(t *testing.T) {
165165 },
166166 },
167167 },
168+ Status : corev1.PodStatus {
169+ QOSClass : corev1 .PodQOSGuaranteed ,
170+ },
168171 }
169172
170173 fakeCli := fakeclient .NewSimpleClientset (pod )
@@ -280,6 +283,9 @@ func TestPodScanner(t *testing.T) {
280283 },
281284 },
282285 },
286+ Status : corev1.PodStatus {
287+ QOSClass : corev1 .PodQOSGuaranteed ,
288+ },
283289 }
284290
285291 fakeCli = fakeclient .NewSimpleClientset (pod )
@@ -368,6 +374,9 @@ func TestPodScanner(t *testing.T) {
368374 },
369375 },
370376 },
377+ Status : corev1.PodStatus {
378+ QOSClass : corev1 .PodQOSGuaranteed ,
379+ },
371380 }
372381 fakeCli = fakeclient .NewSimpleClientset (pod )
373382 resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -458,6 +467,9 @@ func TestPodScanner(t *testing.T) {
458467 },
459468 },
460469 },
470+ Status : corev1.PodStatus {
471+ QOSClass : corev1 .PodQOSGuaranteed ,
472+ },
461473 }
462474 fakeCli = fakeclient .NewSimpleClientset (pod )
463475 resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -628,6 +640,9 @@ func TestPodScanner(t *testing.T) {
628640 },
629641 },
630642 },
643+ Status : corev1.PodStatus {
644+ QOSClass : corev1 .PodQOSGuaranteed ,
645+ },
631646 }
632647 fakeCli = fakeclient .NewSimpleClientset (pod )
633648 resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -825,6 +840,9 @@ func TestPodScanner(t *testing.T) {
825840 },
826841 },
827842 },
843+ Status : corev1.PodStatus {
844+ QOSClass : corev1 .PodQOSGuaranteed ,
845+ },
828846 }
829847 fakeCli = fakeclient .NewSimpleClientset (pod )
830848 resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -1029,6 +1047,9 @@ func TestPodScanner(t *testing.T) {
10291047 },
10301048 },
10311049 },
1050+ Status : corev1.PodStatus {
1051+ QOSClass : corev1 .PodQOSGuaranteed ,
1052+ },
10321053 }
10331054 fakeCli = fakeclient .NewSimpleClientset (pod )
10341055 resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -1113,6 +1134,120 @@ func TestPodScanner(t *testing.T) {
11131134 },
11141135 },
11151136 },
1137+ Status : corev1.PodStatus {
1138+ QOSClass : corev1 .PodQOSGuaranteed ,
1139+ },
1140+ }
1141+ fakeCli = fakeclient .NewSimpleClientset (pod )
1142+ resScan .(* PodResourcesScanner ).k8sClient = fakeCli
1143+ res , err := resScan .Scan ()
1144+
1145+ Convey ("Error is nil" , func () {
1146+ So (err , ShouldBeNil )
1147+ })
1148+ Convey ("Return PodResources should have values" , func () {
1149+ So (len (res .PodResources ), ShouldBeGreaterThan , 0 )
1150+ })
1151+
1152+ expected := []PodResources {
1153+ {
1154+ Name : "test-pod-0" ,
1155+ Namespace : "pod-res-test" ,
1156+ Containers : []ContainerResources {
1157+ {
1158+ Name : "test-cnt-0" ,
1159+ Resources : []ResourceInfo {
1160+ {
1161+ Name : "fake.io/resource" ,
1162+ Data : []string {"devA" },
1163+ },
1164+ },
1165+ },
1166+ },
1167+ },
1168+ }
1169+ So (reflect .DeepEqual (res .PodResources , expected ), ShouldBeTrue )
1170+ })
1171+
1172+ Convey ("When I successfully get valid response for guaranteed pods with not cpu pin containers" , func () {
1173+ resp := & v1.ListPodResourcesResponse {
1174+ PodResources : []* v1.PodResources {
1175+ {
1176+ Name : "test-pod-0" ,
1177+ Namespace : "pod-res-test" ,
1178+ Containers : []* v1.ContainerResources {
1179+ {
1180+ Name : "test-cnt-0" ,
1181+ CpuIds : []int64 {0 , 1 },
1182+ Devices : []* v1.ContainerDevices {
1183+ {
1184+ ResourceName : "fake.io/resource" ,
1185+ DeviceIds : []string {"devA" },
1186+ },
1187+ },
1188+ },
1189+ {
1190+ Name : "test-cnt-1" ,
1191+ Devices : []* v1.ContainerDevices {
1192+ {
1193+ ResourceName : "fake.io/resource" ,
1194+ DeviceIds : []string {"devA" },
1195+ },
1196+ },
1197+ },
1198+ },
1199+ },
1200+ },
1201+ }
1202+ mockPodResClient .On ("List" , mock .AnythingOfType ("*context.timerCtx" ), mock .AnythingOfType ("*v1.ListPodResourcesRequest" )).Return (resp , nil )
1203+ pod := & corev1.Pod {
1204+ TypeMeta : metav1.TypeMeta {
1205+ Kind : "Pod" ,
1206+ APIVersion : "v1" ,
1207+ },
1208+ ObjectMeta : metav1.ObjectMeta {
1209+ Name : "test-pod-0" ,
1210+ Namespace : "pod-res-test" ,
1211+ },
1212+ Spec : corev1.PodSpec {
1213+ Containers : []corev1.Container {
1214+ {
1215+ Name : "test-cnt-0" ,
1216+ Resources : corev1.ResourceRequirements {
1217+ Requests : corev1.ResourceList {
1218+
1219+ corev1 .ResourceName ("fake.io/resource" ): * resource .NewQuantity (1 , resource .DecimalSI ),
1220+ corev1 .ResourceMemory : * resource .NewQuantity (100 , resource .DecimalSI ),
1221+ corev1 .ResourceCPU : resource .MustParse ("2" ),
1222+ },
1223+ Limits : corev1.ResourceList {
1224+ corev1 .ResourceName ("fake.io/resource" ): * resource .NewQuantity (1 , resource .DecimalSI ),
1225+ corev1 .ResourceMemory : * resource .NewQuantity (100 , resource .DecimalSI ),
1226+ corev1 .ResourceCPU : resource .MustParse ("2" ),
1227+ },
1228+ },
1229+ },
1230+ {
1231+ Name : "test-cnt-1" ,
1232+ Resources : corev1.ResourceRequirements {
1233+ Requests : corev1.ResourceList {
1234+
1235+ corev1 .ResourceName ("fake.io/resource" ): * resource .NewQuantity (1 , resource .DecimalSI ),
1236+ corev1 .ResourceMemory : * resource .NewQuantity (100 , resource .DecimalSI ),
1237+ corev1 .ResourceCPU : resource .MustParse ("1500m" ),
1238+ },
1239+ Limits : corev1.ResourceList {
1240+ corev1 .ResourceName ("fake.io/resource" ): * resource .NewQuantity (1 , resource .DecimalSI ),
1241+ corev1 .ResourceMemory : * resource .NewQuantity (100 , resource .DecimalSI ),
1242+ corev1 .ResourceCPU : resource .MustParse ("1500m" ),
1243+ },
1244+ },
1245+ },
1246+ },
1247+ },
1248+ Status : corev1.PodStatus {
1249+ QOSClass : corev1 .PodQOSGuaranteed ,
1250+ },
11161251 }
11171252 fakeCli = fakeclient .NewSimpleClientset (pod )
11181253 resScan .(* PodResourcesScanner ).k8sClient = fakeCli
@@ -1132,6 +1267,19 @@ func TestPodScanner(t *testing.T) {
11321267 Containers : []ContainerResources {
11331268 {
11341269 Name : "test-cnt-0" ,
1270+ Resources : []ResourceInfo {
1271+ {
1272+ Name : corev1 .ResourceCPU ,
1273+ Data : []string {"0" , "1" },
1274+ },
1275+ {
1276+ Name : "fake.io/resource" ,
1277+ Data : []string {"devA" },
1278+ },
1279+ },
1280+ },
1281+ {
1282+ Name : "test-cnt-1" ,
11351283 Resources : []ResourceInfo {
11361284 {
11371285 Name : "fake.io/resource" ,
0 commit comments