Skip to content

Commit dce8b0f

Browse files
authored
Merge branch 'develop' into go-routines-wrapped
2 parents d67ed55 + 0f53272 commit dce8b0f

File tree

6 files changed

+35
-15
lines changed

6 files changed

+35
-15
lines changed

api/restHandler/app/pipeline/configure/BuildPipelineRestHandler.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1085,6 +1085,16 @@ func (handler *PipelineConfigRestHandlerImpl) GetBuildLogs(w http.ResponseWriter
10851085
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
10861086
return
10871087
}
1088+
followLogs := true
1089+
if ok := r.URL.Query().Has("followLogs"); ok {
1090+
followLogsStr := r.URL.Query().Get("followLogs")
1091+
follow, err := strconv.ParseBool(followLogsStr)
1092+
if err != nil {
1093+
common.WriteJsonResp(w, err, "followLogs is not a valid bool", http.StatusBadRequest)
1094+
return
1095+
}
1096+
followLogs = follow
1097+
}
10881098

10891099
workflowId, err := strconv.Atoi(vars["workflowId"])
10901100
if err != nil {
@@ -1116,7 +1126,7 @@ func (handler *PipelineConfigRestHandlerImpl) GetBuildLogs(w http.ResponseWriter
11161126
return
11171127
}
11181128
}
1119-
logsReader, cleanUp, err := handler.ciHandlerService.GetRunningWorkflowLogs(workflowId)
1129+
logsReader, cleanUp, err := handler.ciHandlerService.GetRunningWorkflowLogs(workflowId, followLogs)
11201130
if err != nil {
11211131
handler.Logger.Errorw("service err, GetBuildLogs", "err", err, "pipelineId", pipelineId, "workflowId", workflowId, "lastEventId", lastEventId)
11221132
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)

api/restHandler/app/pipeline/configure/DeploymentPipelineRestHandler.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1609,6 +1609,16 @@ func (handler *PipelineConfigRestHandlerImpl) GetPrePostDeploymentLogs(w http.Re
16091609
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
16101610
return
16111611
}
1612+
followLogs := true
1613+
if ok := r.URL.Query().Has("followLogs"); ok {
1614+
followLogsStr := r.URL.Query().Get("followLogs")
1615+
follow, err := strconv.ParseBool(followLogsStr)
1616+
if err != nil {
1617+
common.WriteJsonResp(w, err, "followLogs is not a valid bool", http.StatusBadRequest)
1618+
return
1619+
}
1620+
followLogs = follow
1621+
}
16121622
handler.Logger.Infow("request payload, GetPrePostDeploymentLogs", "err", err, "appId", appId, "environmentId", environmentId, "pipelineId", pipelineId, "workflowId", workflowId)
16131623

16141624
// RBAC CHECK
@@ -1619,7 +1629,7 @@ func (handler *PipelineConfigRestHandlerImpl) GetPrePostDeploymentLogs(w http.Re
16191629
}
16201630
// RBAC CHECK
16211631

1622-
logsReader, cleanUp, err := handler.cdHandlerService.GetRunningWorkflowLogs(environmentId, pipelineId, workflowId)
1632+
logsReader, cleanUp, err := handler.cdHandlerService.GetRunningWorkflowLogs(environmentId, pipelineId, workflowId, followLogs)
16231633
if err != nil {
16241634
handler.Logger.Errorw("service err, GetPrePostDeploymentLogs", "err", err, "appId", appId, "environmentId", environmentId, "pipelineId", pipelineId, "workflowId", workflowId)
16251635
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)

pkg/build/trigger/HandlerService.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ type HandlerService interface {
7979
StartCiWorkflowAndPrepareWfRequest(trigger types.Trigger) (*pipelineConfig.CiPipeline, map[string]string, *pipelineConfig.CiWorkflow, *types.WorkflowRequest, error)
8080

8181
CancelBuild(workflowId int, forceAbort bool) (int, error)
82-
GetRunningWorkflowLogs(workflowId int) (*bufio.Reader, func() error, error)
82+
GetRunningWorkflowLogs(workflowId int, followLogs bool) (*bufio.Reader, func() error, error)
8383
GetHistoricBuildLogs(workflowId int, ciWorkflow *pipelineConfig.CiWorkflow) (map[string]string, error)
8484
DownloadCiWorkflowArtifacts(pipelineId int, buildId int) (*os.File, error)
8585
}
@@ -1694,16 +1694,16 @@ func (impl *HandlerServiceImpl) getRestConfig(workflow *pipelineConfig.CiWorkflo
16941694
return restConfig, nil
16951695
}
16961696

1697-
func (impl *HandlerServiceImpl) GetRunningWorkflowLogs(workflowId int) (*bufio.Reader, func() error, error) {
1697+
func (impl *HandlerServiceImpl) GetRunningWorkflowLogs(workflowId int, followLogs bool) (*bufio.Reader, func() error, error) {
16981698
ciWorkflow, err := impl.ciWorkflowRepository.FindById(workflowId)
16991699
if err != nil {
17001700
impl.Logger.Errorw("err", "err", err)
17011701
return nil, nil, err
17021702
}
1703-
return impl.getWorkflowLogs(ciWorkflow)
1703+
return impl.getWorkflowLogs(ciWorkflow, followLogs)
17041704
}
17051705

1706-
func (impl *HandlerServiceImpl) getWorkflowLogs(ciWorkflow *pipelineConfig.CiWorkflow) (*bufio.Reader, func() error, error) {
1706+
func (impl *HandlerServiceImpl) getWorkflowLogs(ciWorkflow *pipelineConfig.CiWorkflow, followLogs bool) (*bufio.Reader, func() error, error) {
17071707
if string(v1alpha1.NodePending) == ciWorkflow.PodStatus {
17081708
return bufio.NewReader(strings.NewReader("")), func() error { return nil }, nil
17091709
}
@@ -1726,7 +1726,7 @@ func (impl *HandlerServiceImpl) getWorkflowLogs(ciWorkflow *pipelineConfig.CiWor
17261726
isExt = true
17271727
}
17281728

1729-
logStream, cleanUp, err := impl.ciLogService.FetchRunningWorkflowLogs(ciLogRequest, clusterConfig, isExt)
1729+
logStream, cleanUp, err := impl.ciLogService.FetchRunningWorkflowLogs(ciLogRequest, clusterConfig, isExt, followLogs)
17301730
if logStream == nil || err != nil {
17311731
if !ciWorkflow.BlobStorageEnabled {
17321732
return nil, nil, &util.ApiError{Code: "200", HttpStatusCode: 400, UserMessage: "logs-not-stored-in-repository"}

pkg/deployment/trigger/devtronApps/HandlerService.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ type HandlerService interface {
104104

105105
CancelStage(workflowRunnerId int, forceAbort bool, userId int32) (int, error)
106106
DownloadCdWorkflowArtifacts(buildId int) (*os.File, error)
107-
GetRunningWorkflowLogs(environmentId int, pipelineId int, workflowId int) (*bufio.Reader, func() error, error)
107+
GetRunningWorkflowLogs(environmentId int, pipelineId int, workflowId int, followLogs bool) (*bufio.Reader, func() error, error)
108108
}
109109

110110
type HandlerServiceImpl struct {

pkg/deployment/trigger/devtronApps/prePostWfAndLogsCode.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ func (impl *HandlerServiceImpl) DownloadCdWorkflowArtifacts(buildId int) (*os.Fi
224224
return file, nil
225225
}
226226

227-
func (impl *HandlerServiceImpl) GetRunningWorkflowLogs(environmentId int, pipelineId int, wfrId int) (*bufio.Reader, func() error, error) {
227+
func (impl *HandlerServiceImpl) GetRunningWorkflowLogs(environmentId int, pipelineId int, wfrId int, followLogs bool) (*bufio.Reader, func() error, error) {
228228
cdWorkflow, err := impl.cdWorkflowRepository.FindWorkflowRunnerById(wfrId)
229229
if err != nil {
230230
impl.logger.Errorw("error on fetch wf runner", "err", err)
@@ -253,16 +253,16 @@ func (impl *HandlerServiceImpl) GetRunningWorkflowLogs(environmentId int, pipeli
253253
} else if cdWorkflow.WorkflowType == types.POST {
254254
isExtCluster = pipeline.RunPostStageInEnv
255255
}
256-
return impl.getWorkflowLogs(pipelineId, cdWorkflow, clusterConfig, isExtCluster)
256+
return impl.getWorkflowLogs(pipelineId, cdWorkflow, clusterConfig, isExtCluster, followLogs)
257257
}
258258

259-
func (impl *HandlerServiceImpl) getWorkflowLogs(pipelineId int, cdWorkflow *pipelineConfig.CdWorkflowRunner, clusterConfig *k8s.ClusterConfig, runStageInEnv bool) (*bufio.Reader, func() error, error) {
259+
func (impl *HandlerServiceImpl) getWorkflowLogs(pipelineId int, cdWorkflow *pipelineConfig.CdWorkflowRunner, clusterConfig *k8s.ClusterConfig, runStageInEnv bool, followLogs bool) (*bufio.Reader, func() error, error) {
260260
cdLogRequest := types.BuildLogRequest{
261261
PodName: cdWorkflow.PodName,
262262
Namespace: cdWorkflow.Namespace,
263263
}
264264

265-
logStream, cleanUp, err := impl.ciLogService.FetchRunningWorkflowLogs(cdLogRequest, clusterConfig, runStageInEnv)
265+
logStream, cleanUp, err := impl.ciLogService.FetchRunningWorkflowLogs(cdLogRequest, clusterConfig, runStageInEnv, followLogs)
266266
if logStream == nil || err != nil {
267267
if !cdWorkflow.BlobStorageEnabled {
268268
return nil, nil, errors.New("logs-not-stored-in-repository")

pkg/pipeline/CiLogService.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030
)
3131

3232
type CiLogService interface {
33-
FetchRunningWorkflowLogs(ciLogRequest types.BuildLogRequest, clusterConfig *k8s.ClusterConfig, isExt bool) (io.ReadCloser, func() error, error)
33+
FetchRunningWorkflowLogs(ciLogRequest types.BuildLogRequest, clusterConfig *k8s.ClusterConfig, isExt bool, followLogs bool) (io.ReadCloser, func() error, error)
3434
FetchLogs(baseLogLocationPathConfig string, ciLogRequest types.BuildLogRequest) (*os.File, func() error, error)
3535
}
3636

@@ -53,7 +53,7 @@ func NewCiLogServiceImpl(logger *zap.SugaredLogger, k8sUtil *k8s.K8sServiceImpl)
5353
}, nil
5454
}
5555

56-
func (impl *CiLogServiceImpl) FetchRunningWorkflowLogs(ciLogRequest types.BuildLogRequest, clusterConfig *k8s.ClusterConfig, isExt bool) (io.ReadCloser, func() error, error) {
56+
func (impl *CiLogServiceImpl) FetchRunningWorkflowLogs(ciLogRequest types.BuildLogRequest, clusterConfig *k8s.ClusterConfig, isExt bool, followLogs bool) (io.ReadCloser, func() error, error) {
5757
var kubeClient *kubernetes.Clientset
5858
kubeClient = impl.kubeClient
5959
var err error
@@ -64,7 +64,7 @@ func (impl *CiLogServiceImpl) FetchRunningWorkflowLogs(ciLogRequest types.BuildL
6464
return nil, nil, err
6565
}
6666
}
67-
req := impl.k8sUtil.GetLogsForAPod(kubeClient, ciLogRequest.Namespace, ciLogRequest.PodName, bean.Main, true)
67+
req := impl.k8sUtil.GetLogsForAPod(kubeClient, ciLogRequest.Namespace, ciLogRequest.PodName, bean.Main, followLogs)
6868
podLogs, err := req.Stream(context.Background())
6969
if err != nil {
7070
impl.logger.Errorw("error in opening stream", "name", ciLogRequest.PodName, "err", err)

0 commit comments

Comments
 (0)