@@ -507,24 +507,8 @@ func (sc *SchedulerCache) Evict(taskInfo *kbapi.TaskInfo, reason string) error {
507507 }
508508 }()
509509
510- if ! shadowPodGroup (job .PodGroup ) {
511- if job .PodGroup .Version == api .PodGroupVersionV1Alpha1 {
512- pg , err := api .ConvertPodGroupInfoToV1alpha1 (job .PodGroup )
513- if err != nil {
514- glog .Errorf ("Error While converting api.PodGroup to v1alpha.PodGroup with error: %v" , err )
515- return err
516- }
517- sc .Recorder .Eventf (pg , v1 .EventTypeNormal , "Evict" , reason )
518- } else if job .PodGroup .Version == api .PodGroupVersionV1Alpha2 {
519- pg , err := api .ConvertPodGroupInfoToV1alpha2 (job .PodGroup )
520- if err != nil {
521- glog .Errorf ("Error While converting api.PodGroup to v2alpha.PodGroup with error: %v" , err )
522- return err
523- }
524- sc .Recorder .Eventf (pg , v1 .EventTypeNormal , "Evict" , reason )
525- } else {
526- return fmt .Errorf ("Invalid PodGroup Version: %s" , job .PodGroup .Version )
527- }
510+ if err := sc .convertPodGroupInfo (job , v1 .EventTypeNormal , "Evict" , reason ); err != nil {
511+ return err
528512 }
529513
530514 return nil
@@ -778,33 +762,16 @@ func (sc *SchedulerCache) RecordJobStatusEvent(job *kbapi.JobInfo) {
778762 baseErrorMessage = kbapi .AllNodeUnavailableMsg
779763 }
780764
781- if ! shadowPodGroup (job .PodGroup ) {
782- pgUnschedulable := job .PodGroup != nil &&
783- (job .PodGroup .Status .Phase == api .PodGroupUnknown ||
784- job .PodGroup .Status .Phase == api .PodGroupPending )
785- pdbUnschedulabe := job .PDB != nil && len (job .TaskStatusIndex [api .Pending ]) != 0
765+ pgUnschedulable := job .PodGroup != nil &&
766+ (job .PodGroup .Status .Phase == api .PodGroupUnknown ||
767+ job .PodGroup .Status .Phase == api .PodGroupPending )
768+ pdbUnschedulabe := job .PDB != nil && len (job .TaskStatusIndex [api .Pending ]) != 0
786769
787- // If pending or unschedulable, record unschedulable event.
788- if pgUnschedulable || pdbUnschedulabe {
789- msg := fmt .Sprintf ("%v/%v tasks in gang unschedulable: %v" , len (job .TaskStatusIndex [api .Pending ]), len (job .Tasks ), job .FitError ())
790- if job .PodGroup .Version == api .PodGroupVersionV1Alpha1 {
791- podGroup , err := api .ConvertPodGroupInfoToV1alpha1 (job .PodGroup )
792- if err != nil {
793- glog .Errorf ("Error while converting PodGroup to v1alpha1.PodGroup with error: %v" , err )
794- }
795- sc .Recorder .Eventf (podGroup , v1 .EventTypeWarning ,
796- string (v1alpha1 .PodGroupUnschedulableType ), msg )
797- }
770+ // If pending or unschedulable, record unschedulable event.
771+ if pgUnschedulable || pdbUnschedulabe {
772+ msg := fmt .Sprintf ("%v/%v tasks in gang unschedulable: %v" , len (job .TaskStatusIndex [api .Pending ]), len (job .Tasks ), job .FitError ())
798773
799- if job .PodGroup .Version == api .PodGroupVersionV1Alpha2 {
800- podGroup , err := api .ConvertPodGroupInfoToV1alpha2 (job .PodGroup )
801- if err != nil {
802- glog .Errorf ("Error while converting PodGroup to v1alpha2.PodGroup with error: %v" , err )
803- }
804- sc .Recorder .Eventf (podGroup , v1 .EventTypeWarning ,
805- string (v1alpha1 .PodGroupUnschedulableType ), msg )
806- }
807- }
774+ sc .convertPodGroupInfo (job , v1 .EventTypeWarning , string (v1alpha1 .PodGroupUnschedulableType ), msg )
808775 }
809776
810777 // Update podCondition for tasks Allocated and Pending before job discarded
@@ -825,7 +792,7 @@ func (sc *SchedulerCache) RecordJobStatusEvent(job *kbapi.JobInfo) {
825792
826793// UpdateJobStatus update the status of job and its tasks.
827794func (sc * SchedulerCache ) UpdateJobStatus (job * kbapi.JobInfo , updatePG bool ) (* kbapi.JobInfo , error ) {
828- if updatePG && ! shadowPodGroup ( job . PodGroup ) {
795+ if updatePG {
829796 pg , err := sc .StatusUpdater .UpdatePodGroup (job .PodGroup )
830797 if err != nil {
831798 return nil , err
@@ -837,3 +804,23 @@ func (sc *SchedulerCache) UpdateJobStatus(job *kbapi.JobInfo, updatePG bool) (*k
837804
838805 return job , nil
839806}
807+
808+ func (sc * SchedulerCache ) convertPodGroupInfo (job * kbapi.JobInfo , eventtype , reason , message string ) error {
809+ if job .PodGroup .Version == api .PodGroupVersionV1Alpha1 {
810+ pg , err := api .ConvertPodGroupInfoToV1alpha1 (job .PodGroup )
811+ if err != nil {
812+ glog .Errorf ("Error While converting api.PodGroup to v1alpha.PodGroup with error: %v" , err )
813+ return err
814+ }
815+ sc .Recorder .Eventf (pg , eventtype , reason , message )
816+ } else if job .PodGroup .Version == api .PodGroupVersionV1Alpha2 {
817+ pg , err := api .ConvertPodGroupInfoToV1alpha2 (job .PodGroup )
818+ if err != nil {
819+ glog .Errorf ("Error While converting api.PodGroup to v2alpha.PodGroup with error: %v" , err )
820+ return err
821+ }
822+ sc .Recorder .Eventf (pg , eventtype , reason , message )
823+ }
824+
825+ return fmt .Errorf ("Invalid PodGroup Version: %s" , job .PodGroup .Version )
826+ }
0 commit comments