Skip to content

Commit 35abd40

Browse files
committed
fix
1 parent 77914ad commit 35abd40

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

internal/sql/repository/pipelineConfig/PipelineRepository.go

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ type PipelineRepository interface {
118118
FindActiveByInFilter(envId int, appIdIncludes []int) (pipelines []*Pipeline, err error)
119119
FindActivePipelineAppIdsByInFilter(envId int, appIdIncludes []int) ([]int, error)
120120
FindActiveByNotFilter(envId int, appIdExcludes []int) (pipelines []*Pipeline, err error)
121-
FindAllPipelinesByChartsOverrideAndAppIdAndChartId(chartOverridden bool, appId int, chartId int) (pipelines []*Pipeline, err error)
121+
FindAllPipelinesWithoutOverriddenCharts(appId int) (pipelineIds []int, err error)
122122
FindActiveByAppIdAndPipelineId(appId int, pipelineId int) ([]*Pipeline, error)
123123
FindActiveByAppIdAndEnvId(appId int, envId int) (*Pipeline, error)
124124
SetDeploymentAppCreatedInPipeline(deploymentAppCreated bool, pipelineId int, userId int32) error
@@ -577,19 +577,16 @@ func (impl *PipelineRepositoryImpl) FindActiveByNotFilter(envId int, appIdExclud
577577
return pipelines, err
578578
}
579579

580-
func (impl *PipelineRepositoryImpl) FindAllPipelinesByChartsOverrideAndAppIdAndChartId(hasConfigOverridden bool, appId int, chartId int) (pipelines []*Pipeline, err error) {
581-
err = impl.dbConnection.Model(&pipelines).
582-
Column("pipeline.*").
583-
Join("inner join charts on pipeline.app_id = charts.app_id").
584-
Join("inner join chart_env_config_override ceco on charts.id = ceco.chart_id").
585-
Where("pipeline.app_id = ?", appId).
586-
Where("charts.id = ?", chartId).
587-
Where("ceco.is_override = ?", hasConfigOverridden).
588-
Where("pipeline.deleted = ?", false).
589-
Where("ceco.active = ?", true).
590-
Where("charts.active = ?", true).
591-
Select()
592-
return pipelines, err
580+
func (impl *PipelineRepositoryImpl) FindAllPipelinesWithoutOverriddenCharts(appId int) (pipelineIds []int, err error) {
581+
err = impl.dbConnection.Model().Table("pipeline").Column("pipeline.id").
582+
Where("pipeline.deleted = ?", false).Where("pipeline.app_id = ?", appId).
583+
Where(`pipeline.environment_id NOT IN (
584+
SELECT ceco.target_environment FROM chart_env_config_override ceco
585+
INNER JOIN charts ON charts.id = ceco.chart_id
586+
WHERE charts.app_id = ? AND charts.active = ? AND ceco.is_override = ?
587+
AND ceco.active = ? AND ceco.latest = ?)`, appId, true, true, true, true).
588+
Select(&pipelineIds)
589+
return pipelineIds, err
593590
}
594591

595592
func (impl *PipelineRepositoryImpl) FindActiveByAppIdAndPipelineId(appId int, pipelineId int) ([]*Pipeline, error) {

pkg/deployment/manifest/deploymentTemplate/DeploymentTemplateHistoryService.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,16 @@ func NewDeploymentTemplateHistoryServiceImpl(logger *zap.SugaredLogger, deployme
7070

7171
func (impl DeploymentTemplateHistoryServiceImpl) CreateDeploymentTemplateHistoryFromGlobalTemplate(chart *chartRepoRepository.Chart, tx *pg.Tx, IsAppMetricsEnabled bool) (err error) {
7272
//getting all pipelines without overridden charts
73-
pipelines, err := impl.pipelineRepository.FindAllPipelinesByChartsOverrideAndAppIdAndChartId(false, chart.AppId, chart.Id)
73+
pipelineIds, err := impl.pipelineRepository.FindAllPipelinesWithoutOverriddenCharts(chart.AppId)
7474
if err != nil && err != pg.ErrNoRows {
7575
impl.logger.Errorw("err in getting pipelines, CreateDeploymentTemplateHistoryFromGlobalTemplate", "err", err, "chart", chart)
7676
return err
7777
}
78+
/*
79+
When creating base template entry, we also create entries for all pipeline whose env template is not overridden;
80+
as the change in base template will also impact them. Earlier we used to create individual entries for all pipelines
81+
but due to performance impact we are now saving the impacted pipelineIds in the base template entry itself (column pipeline_ids).
82+
*/
7883
chartRefDto, err := impl.chartRefService.FindById(chart.ChartRefId)
7984
if err != nil {
8085
impl.logger.Errorw("err in getting chartRef, CreateDeploymentTemplateHistoryFromGlobalTemplate", "err", err, "chart", chart)
@@ -89,6 +94,7 @@ func (impl DeploymentTemplateHistoryServiceImpl) CreateDeploymentTemplateHistory
8994
TemplateName: chartRefDto.Name,
9095
TemplateVersion: chartRefDto.Version,
9196
IsAppMetricsEnabled: IsAppMetricsEnabled,
97+
PipelineIds: pipelineIds,
9298
AuditLog: sql.AuditLog{
9399
CreatedOn: chart.CreatedOn,
94100
CreatedBy: chart.CreatedBy,

pkg/pipeline/history/repository/DeploymentTemplateHistoryRepository.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ type DeploymentTemplateHistory struct {
5757
DeployedOn time.Time `sql:"deployed_on"`
5858
DeployedBy int32 `sql:"deployed_by"`
5959
MergeStrategy string `sql:"merge_strategy"`
60+
PipelineIds []int `sql:"pipeline_ids,array"`
6061
sql.AuditLog
6162
//getting below data from cd_workflow_runner and users join
6263
DeploymentStatus string `sql:"-"`

0 commit comments

Comments
 (0)