@@ -60,6 +60,7 @@ type DeploymentConfigurationServiceImpl struct {
60
60
configMapHistoryService configMapAndSecret.ConfigMapHistoryService
61
61
deploymentTemplateHistoryReadService read.DeploymentTemplateHistoryReadService
62
62
configMapHistoryReadService read2.ConfigMapHistoryReadService
63
+ cdWorkflowRepository pipelineConfig.CdWorkflowRepository
63
64
}
64
65
65
66
func NewDeploymentConfigurationServiceImpl (logger * zap.SugaredLogger ,
@@ -79,6 +80,7 @@ func NewDeploymentConfigurationServiceImpl(logger *zap.SugaredLogger,
79
80
configMapHistoryService configMapAndSecret.ConfigMapHistoryService ,
80
81
deploymentTemplateHistoryReadService read.DeploymentTemplateHistoryReadService ,
81
82
configMapHistoryReadService read2.ConfigMapHistoryReadService ,
83
+ cdWorkflowRepository pipelineConfig.CdWorkflowRepository ,
82
84
) (* DeploymentConfigurationServiceImpl , error ) {
83
85
deploymentConfigurationService := & DeploymentConfigurationServiceImpl {
84
86
logger : logger ,
@@ -98,6 +100,7 @@ func NewDeploymentConfigurationServiceImpl(logger *zap.SugaredLogger,
98
100
configMapHistoryService : configMapHistoryService ,
99
101
deploymentTemplateHistoryReadService : deploymentTemplateHistoryReadService ,
100
102
configMapHistoryReadService : configMapHistoryReadService ,
103
+ cdWorkflowRepository : cdWorkflowRepository ,
101
104
}
102
105
103
106
return deploymentConfigurationService , nil
@@ -264,8 +267,12 @@ func (impl *DeploymentConfigurationServiceImpl) getConfigDataForDeploymentHistor
264
267
}
265
268
configDataDto .WithConfigMapData (cmConfigData )
266
269
// fetching for cm config ends
267
-
268
- if userHasAdminAccess {
270
+ isWfrFirstDeployment , err := impl .IsFirstDeployment (configDataQueryParams .PipelineId , configDataQueryParams .WfrId )
271
+ if err != nil {
272
+ impl .logger .Errorw ("error in checking if a single deployment history is present for pipelineId or not" , "pipelineId" , configDataQueryParams .PipelineId , "err" , err )
273
+ return nil , err
274
+ }
275
+ if userHasAdminAccess || isWfrFirstDeployment {
269
276
// fetching for cs config starts
270
277
secretConfigDto , err := impl .getCmCsConfigHistory (ctx , configDataQueryParams , repository3 .SECRET_TYPE , userHasAdminAccess )
271
278
if err != nil {
@@ -279,6 +286,18 @@ func (impl *DeploymentConfigurationServiceImpl) getConfigDataForDeploymentHistor
279
286
return configDataDto , nil
280
287
}
281
288
289
+ func (impl * DeploymentConfigurationServiceImpl ) IsFirstDeployment (pipelineId , wfrId int ) (bool , error ) {
290
+ wfrs , err := impl .cdWorkflowRepository .FindDeployedCdWorkflowRunnersByPipelineId (pipelineId )
291
+ if err != nil {
292
+ impl .logger .Errorw ("error in getting all cd workflow runners for a pipeline id" , "pipelineId" , pipelineId , "err" , err )
293
+ return false , err
294
+ }
295
+ if len (wfrs ) > 0 && wfrs [0 ].Id == wfrId {
296
+ return true , nil
297
+ }
298
+ return false , nil
299
+ }
300
+
282
301
func (impl * DeploymentConfigurationServiceImpl ) getCmCsConfigHistory (ctx context.Context , configDataQueryParams * bean2.ConfigDataQueryParams , configType repository3.ConfigType , userHasAdminAccess bool ) (* bean2.DeploymentAndCmCsConfig , error ) {
283
302
var resourceType bean.ResourceType
284
303
history , err := impl .configMapHistoryRepository .GetHistoryByPipelineIdAndWfrId (configDataQueryParams .PipelineId , configDataQueryParams .WfrId , configType )
0 commit comments