@@ -20,11 +20,12 @@ Package rescheduling is using for HuaWei Ascend pin fault rescheduling.
2020package rescheduling
2121
2222import (
23- "github.com/agiledragon/gomonkey/v2"
24- "k8s.io/client-go/kubernetes"
2523 "reflect"
2624 "strconv"
2725 "testing"
26+
27+ "github.com/agiledragon/gomonkey/v2"
28+ "k8s.io/client-go/kubernetes"
2829 "volcano.sh/volcano/pkg/scheduler/api"
2930 "volcano.sh/volcano/pkg/scheduler/framework"
3031 "volcano.sh/volcano/pkg/scheduler/plugins/ascend-volcano-plugin/common/util"
@@ -666,11 +667,133 @@ func buildSkipThisTaskTestCase3() skipThisTaskTestCase {
666667 }
667668}
668669
670+ func buildSkipThisTaskTestCase4 () skipThisTaskTestCase {
671+ return skipThisTaskTestCase {
672+ name : "04-SkipThisTask allow-upgrade-false fault-task" ,
673+ fJob : & FaultJob {
674+ ReScheduleLimit : util .ReschedulingUpperLimitPod , // allowUpgradePodRescheduling() returns false
675+ },
676+ cacheFuncBefore : func () {},
677+ cacheFuncAfter : func () {},
678+ fTask : FaultTask {
679+ IsFaultTask : true ,
680+ },
681+ dpi : & deletePodInfo {},
682+ schedulerJob : & plugin.SchedulerJob {
683+ SchedulerJobAttr : util.SchedulerJobAttr {
684+ ComJob : util.ComJob {Label : map [string ]string {}},
685+ },
686+ },
687+ want : false , // Should not skip fault task when allowUpgrade is false
688+ }
689+ }
690+
691+ func buildSkipThisTaskTestCase5 () skipThisTaskTestCase {
692+ return skipThisTaskTestCase {
693+ name : "05-SkipThisTask allow-upgrade-false non-fault-task" ,
694+ fJob : & FaultJob {
695+ ReScheduleLimit : util .ReschedulingUpperLimitPod , // allowUpgradePodRescheduling() returns false
696+ },
697+ cacheFuncBefore : func () {},
698+ cacheFuncAfter : func () {},
699+ fTask : FaultTask {
700+ IsFaultTask : false ,
701+ },
702+ dpi : & deletePodInfo {},
703+ schedulerJob : & plugin.SchedulerJob {
704+ SchedulerJobAttr : util.SchedulerJobAttr {
705+ ComJob : util.ComJob {Label : map [string ]string {}},
706+ },
707+ },
708+ want : true , // Should skip non-fault task when allowUpgrade is false
709+ }
710+ }
711+
712+ func buildSkipThisTaskTestCase6 () skipThisTaskTestCase {
713+ return skipThisTaskTestCase {
714+ name : "06-SkipThisTask is-master-fault" ,
715+ fJob : & FaultJob {
716+ ReScheduleLimit : "" , // allowUpgradePodRescheduling() returns true
717+ FaultJobA5Field : FaultJobA5Field {
718+ IsMasterFault : true ,
719+ },
720+ },
721+ cacheFuncBefore : func () {},
722+ cacheFuncAfter : func () {},
723+ fTask : FaultTask {
724+ IsFaultTask : false ,
725+ },
726+ dpi : & deletePodInfo {},
727+ schedulerJob : & plugin.SchedulerJob {
728+ SchedulerJobAttr : util.SchedulerJobAttr {
729+ ComJob : util.ComJob {Label : map [string ]string {}},
730+ },
731+ },
732+ want : false , // Should not skip when IsMasterFault is true
733+ }
734+ }
735+
736+ func buildSkipThisTaskTestCase7 () skipThisTaskTestCase {
737+ return skipThisTaskTestCase {
738+ name : "07-SkipThisTask process-rescheduling-skip" ,
739+ fJob : & FaultJob {
740+ ReScheduleLimit : "" , // allowUpgradePodRescheduling() returns true
741+ PendingSessionNum : tpPendingTimes - 1 ,
742+ FaultTasks : []FaultTask {{IsFaultTask : true , NodeRankIndex : "0" }},
743+ },
744+ cacheFuncBefore : func () {},
745+ cacheFuncAfter : func () {},
746+ fTask : FaultTask {
747+ IsFaultTask : false ,
748+ NodeRankIndex : "1" ,
749+ },
750+ dpi : & deletePodInfo {},
751+ schedulerJob : & plugin.SchedulerJob {
752+ SchedulerJobAttr : util.SchedulerJobAttr {
753+ ComJob : util.ComJob {Label : map [string ]string {util .ProcessRecoverEnable : util .EnableFunc }},
754+ },
755+ },
756+ want : true , // Should skip when process rescheduling is in first stage
757+ }
758+ }
759+
760+ func buildSkipThisTaskTestCase8 () skipThisTaskTestCase {
761+ return skipThisTaskTestCase {
762+ name : "08-SkipThisTask pod-rescheduling-skip" ,
763+ fJob : & FaultJob {
764+ ReScheduleLimit : "" , // allowUpgradePodRescheduling() returns true
765+ PendingSessionNum : pendingTimes , // Set to a value >= spPendingTimes
766+ FaultTasks : []FaultTask {{IsFaultTask : true , NodeName : "test-node" }},
767+ },
768+ cacheFuncBefore : func () {},
769+ cacheFuncAfter : func () {},
770+ fTask : FaultTask {
771+ IsFaultTask : false ,
772+ NodeName : "test-node" , // Same node as fault task
773+ },
774+ dpi : & deletePodInfo {
775+ isSuperPod : true ,
776+ ids : []string {"test-id" },
777+ },
778+ schedulerJob : & plugin.SchedulerJob {
779+ SchedulerJobAttr : util.SchedulerJobAttr {
780+ ComJob : util.ComJob {Label : map [string ]string {util .SinglePodTag : util .EnableFunc }},
781+ },
782+ },
783+ want : false , // Should not skip when pod rescheduling
784+ }
785+ }
786+
669787func buildSkipThisTaskTestCases () []skipThisTaskTestCase {
670788 return []skipThisTaskTestCase {
671789 buildSkipThisTaskTestCase1 (),
672790 buildSkipThisTaskTestCase2 (),
673791 buildSkipThisTaskTestCase3 (),
792+ buildSkipThisTaskTestCase4 (),
793+ buildSkipThisTaskTestCase5 (),
794+ buildSkipThisTaskTestCase6 (),
795+ buildSkipThisTaskTestCase7 (),
796+ buildSkipThisTaskTestCase8 (),
674797 }
675798}
676799
0 commit comments