From 48c906c5289d34f16e8e63b6a4b847a30f753841 Mon Sep 17 00:00:00 2001
From: chengjoey <30427474+chengjoey@users.noreply.github.com>
Date: Wed, 27 Oct 2021 13:40:44 +0800
Subject: [PATCH] rerun and rerun failed pipeline don't use cron time (#2560)

---
 .../pipeline/services/pipelinesvc/convert.go    | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/modules/pipeline/services/pipelinesvc/convert.go b/modules/pipeline/services/pipelinesvc/convert.go
index 8e0ff9e8878..182cb8e0f2f 100644
--- a/modules/pipeline/services/pipelinesvc/convert.go
+++ b/modules/pipeline/services/pipelinesvc/convert.go
@@ -49,8 +49,13 @@ func (s *PipelineSvc) ConvertPipeline(p *spec.Pipeline) *apistructs.PipelineDTO
 
 	// from extra
 	if p.TriggerMode == apistructs.PipelineTriggerModeCron && p.Extra.CronTriggerTime != nil {
-		result.TimeCreated = p.Extra.CronTriggerTime
-		result.TimeBegin = p.Extra.CronTriggerTime
+		// if pipeline is rerun and rerun failed, don't need to convert trigger time
+		pipelineType := p.Labels[apistructs.LabelPipelineType]
+		if pipelineType != apistructs.PipelineTypeRerun.String() &&
+			pipelineType != apistructs.PipelineTypeRerunFailed.String() {
+			result.TimeCreated = p.Extra.CronTriggerTime
+			result.TimeBegin = p.Extra.CronTriggerTime
+		}
 	}
 	result.Namespace = p.Extra.Namespace
 	result.OrgName = p.GetOrgName()
@@ -122,8 +127,12 @@ func (s *PipelineSvc) Convert2PagePipeline(p *spec.Pipeline) *apistructs.PagePip
 		TimeUpdated:      p.TimeUpdated,
 	}
 	if p.TriggerMode == apistructs.PipelineTriggerModeCron && p.Extra.CronTriggerTime != nil {
-		result.TimeCreated = p.Extra.CronTriggerTime
-		result.TimeBegin = p.Extra.CronTriggerTime
+		pipelineType := p.Labels[apistructs.LabelPipelineType]
+		if pipelineType != apistructs.PipelineTypeRerun.String() &&
+			pipelineType != apistructs.PipelineTypeRerunFailed.String() {
+			result.TimeCreated = p.Extra.CronTriggerTime
+			result.TimeBegin = p.Extra.CronTriggerTime
+		}
 	}
 	return &result
 }