Skip to content

Commit

Permalink
TEP-0090: Refactor GetTaskRunsStatus
Browse files Browse the repository at this point in the history
In this change, we separate that logic to fetch the status of a
specific TaskRun from the function that gets the status for all
TaskRuns in the PipelineRunState. This is separate function is
helpful for reuse and readability.

No functional changes made in this commit.
  • Loading branch information
jerop committed Jun 3, 2022
1 parent 2c24e33 commit cd0377a
Showing 1 changed file with 38 additions and 34 deletions.
72 changes: 38 additions & 34 deletions pkg/reconciler/pipelinerun/resources/pipelinerunstate.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,47 +145,51 @@ func (state PipelineRunState) GetTaskRunsStatus(pr *v1beta1.PipelineRun) map[str
continue
}

var prtrs *v1beta1.PipelineRunTaskRunStatus
if rprt.TaskRun != nil {
prtrs = pr.Status.TaskRuns[rprt.TaskRun.Name]
}
if prtrs == nil {
prtrs = &v1beta1.PipelineRunTaskRunStatus{
PipelineTaskName: rprt.PipelineTask.Name,
WhenExpressions: rprt.PipelineTask.WhenExpressions,
}
}
status[rprt.TaskRunName] = rprt.getTaskRunStatus(rprt.TaskRunName, rprt.TaskRun, pr)
}
return status
}

if rprt.TaskRun != nil {
prtrs.Status = &rprt.TaskRun.Status
func (rprt *ResolvedPipelineRunTask) getTaskRunStatus(taskRunName string, tr *v1beta1.TaskRun, pr *v1beta1.PipelineRun) *v1beta1.PipelineRunTaskRunStatus {
var prtrs *v1beta1.PipelineRunTaskRunStatus
if tr != nil {
prtrs = pr.Status.TaskRuns[tr.Name]
}
if prtrs == nil {
prtrs = &v1beta1.PipelineRunTaskRunStatus{
PipelineTaskName: rprt.PipelineTask.Name,
WhenExpressions: rprt.PipelineTask.WhenExpressions,
}
}

if len(rprt.ResolvedConditionChecks) > 0 {
cStatus := make(map[string]*v1beta1.PipelineRunConditionCheckStatus)
for _, c := range rprt.ResolvedConditionChecks {
cStatus[c.ConditionCheckName] = &v1beta1.PipelineRunConditionCheckStatus{
ConditionName: c.ConditionRegisterName,
}
if c.ConditionCheck != nil {
cStatus[c.ConditionCheckName].Status = c.NewConditionCheckStatus()
}
if tr != nil {
prtrs.Status = &tr.Status
}

if len(rprt.ResolvedConditionChecks) > 0 {
cStatus := make(map[string]*v1beta1.PipelineRunConditionCheckStatus)
for _, c := range rprt.ResolvedConditionChecks {
cStatus[c.ConditionCheckName] = &v1beta1.PipelineRunConditionCheckStatus{
ConditionName: c.ConditionRegisterName,
}
prtrs.ConditionChecks = cStatus
if rprt.ResolvedConditionChecks.IsDone() && !rprt.ResolvedConditionChecks.IsSuccess() {
if prtrs.Status == nil {
prtrs.Status = &v1beta1.TaskRunStatus{}
}
prtrs.Status.SetCondition(&apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionFalse,
Reason: ReasonConditionCheckFailed,
Message: fmt.Sprintf("ConditionChecks failed for Task %s in PipelineRun %s", rprt.TaskRunName, pr.Name),
})
if c.ConditionCheck != nil {
cStatus[c.ConditionCheckName].Status = c.NewConditionCheckStatus()
}
}
status[rprt.TaskRunName] = prtrs
prtrs.ConditionChecks = cStatus
if rprt.ResolvedConditionChecks.IsDone() && !rprt.ResolvedConditionChecks.IsSuccess() {
if prtrs.Status == nil {
prtrs.Status = &v1beta1.TaskRunStatus{}
}
prtrs.Status.SetCondition(&apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionFalse,
Reason: ReasonConditionCheckFailed,
Message: fmt.Sprintf("ConditionChecks failed for Task %s in PipelineRun %s", taskRunName, pr.Name),
})
}
}
return status
return prtrs
}

// GetTaskRunsResults returns a map of all successfully completed TaskRuns in the state, with the pipeline task name as
Expand Down

0 comments on commit cd0377a

Please sign in to comment.