Skip to content

Commit 65e1424

Browse files
authored
Merge pull request #6584 from devtron-labs/dev-cd-config
misc: GetConfigDBObj in tx
2 parents bcb1103 + 86f3ec5 commit 65e1424

File tree

3 files changed

+26
-15
lines changed

3 files changed

+26
-15
lines changed

internal/sql/repository/deploymentConfig/repository.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ type Repository interface {
5858
SaveAll(tx *pg.Tx, configs []*DeploymentConfig) ([]*DeploymentConfig, error)
5959
Update(tx *pg.Tx, config *DeploymentConfig) (*DeploymentConfig, error)
6060
UpdateAll(tx *pg.Tx, config []*DeploymentConfig) ([]*DeploymentConfig, error)
61-
GetByAppIdAndEnvId(appId, envId int) (*DeploymentConfig, error)
62-
GetAppLevelConfigForDevtronApps(appId int) (*DeploymentConfig, error)
61+
GetByAppIdAndEnvId(tx *pg.Tx, appId, envId int) (*DeploymentConfig, error)
62+
GetAppLevelConfigForDevtronApps(tx *pg.Tx, appId int) (*DeploymentConfig, error)
6363
GetAppAndEnvLevelConfigsInBulk(appIdToEnvIdsMap map[int][]int) ([]*DeploymentConfig, error)
6464
GetByAppIdAndEnvIdEvenIfInactive(appId, envId int) (*DeploymentConfig, error)
6565
GetConfigByAppIds(appIds []int) ([]*DeploymentConfig, error)
@@ -121,9 +121,15 @@ func (impl *RepositoryImpl) UpdateAll(tx *pg.Tx, configs []*DeploymentConfig) ([
121121
return configs, err
122122
}
123123

124-
func (impl *RepositoryImpl) GetByAppIdAndEnvId(appId, envId int) (*DeploymentConfig, error) {
124+
func (impl *RepositoryImpl) GetByAppIdAndEnvId(tx *pg.Tx, appId, envId int) (*DeploymentConfig, error) {
125125
result := &DeploymentConfig{}
126-
err := impl.dbConnection.Model(result).
126+
var query *orm.Query
127+
if tx != nil {
128+
query = tx.Model(result)
129+
} else {
130+
query = impl.dbConnection.Model(result)
131+
}
132+
err := query.
127133
Join("INNER JOIN app a").
128134
JoinOn("deployment_config.app_id = a.id").
129135
Join("INNER JOIN environment e").
@@ -138,9 +144,15 @@ func (impl *RepositoryImpl) GetByAppIdAndEnvId(appId, envId int) (*DeploymentCon
138144
return result, err
139145
}
140146

141-
func (impl *RepositoryImpl) GetAppLevelConfigForDevtronApps(appId int) (*DeploymentConfig, error) {
147+
func (impl *RepositoryImpl) GetAppLevelConfigForDevtronApps(tx *pg.Tx, appId int) (*DeploymentConfig, error) {
142148
result := &DeploymentConfig{}
143-
err := impl.dbConnection.Model(result).
149+
var query *orm.Query
150+
if tx != nil {
151+
query = tx.Model(result)
152+
} else {
153+
query = impl.dbConnection.Model(result)
154+
}
155+
err := query.
144156
Join("INNER JOIN app a").
145157
JoinOn("deployment_config.app_id = a.id").
146158
Where("a.active = ?", true).

pkg/deployment/common/deploymentConfigService.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func (impl *DeploymentConfigServiceImpl) CreateOrUpdateConfig(tx *pg.Tx, config
114114
return nil, err
115115
}
116116

117-
configDbObj, err := impl.GetConfigDBObj(config.AppId, config.EnvironmentId)
117+
configDbObj, err := impl.GetConfigDBObj(tx, config.AppId, config.EnvironmentId)
118118
if err != nil && !errors.Is(err, pg.ErrNoRows) {
119119
impl.logger.Errorw("error in fetching deployment config from DB by appId and envId",
120120
"appId", config.AppId, "envId", config.EnvironmentId, "err", err)
@@ -275,7 +275,7 @@ func (impl *DeploymentConfigServiceImpl) GetAndMigrateConfigIfAbsentForHelmApp(a
275275

276276
func (impl *DeploymentConfigServiceImpl) UpdateRepoUrlForAppAndEnvId(repoURL string, appId, envId int) error {
277277

278-
dbObj, err := impl.deploymentConfigRepository.GetByAppIdAndEnvId(appId, envId)
278+
dbObj, err := impl.deploymentConfigRepository.GetByAppIdAndEnvId(nil, appId, envId)
279279
if err != nil {
280280
impl.logger.Errorw("error in getting deployment config by appId", "appId", appId, "envId", envId, "err", err)
281281
return err
@@ -445,7 +445,7 @@ func (impl *DeploymentConfigServiceImpl) getConfigForHelmApps(appId int, envId i
445445
helmDeploymentConfig *bean.DeploymentConfig
446446
isMigrationNeeded bool
447447
)
448-
config, err := impl.deploymentConfigRepository.GetByAppIdAndEnvId(appId, envId)
448+
config, err := impl.deploymentConfigRepository.GetByAppIdAndEnvId(nil, appId, envId)
449449
if err != nil && !errors.Is(err, pg.ErrNoRows) {
450450
impl.logger.Errorw("error in fetching deployment config by by appId and envId", "appId", appId, "envId", envId, "err", err)
451451
return nil, err
@@ -596,18 +596,17 @@ func (impl *DeploymentConfigServiceImpl) getAllEnvLevelConfigsForLinkedReleases(
596596
}
597597
return configs, nil
598598
}
599-
600-
func (impl *DeploymentConfigServiceImpl) GetConfigDBObj(appId, envId int) (*deploymentConfig.DeploymentConfig, error) {
599+
func (impl *DeploymentConfigServiceImpl) GetConfigDBObj(tx *pg.Tx, appId, envId int) (*deploymentConfig.DeploymentConfig, error) {
601600
var configDbObj *deploymentConfig.DeploymentConfig
602601
var err error
603602
if envId == 0 {
604-
configDbObj, err = impl.deploymentConfigRepository.GetAppLevelConfigForDevtronApps(appId)
603+
configDbObj, err = impl.deploymentConfigRepository.GetAppLevelConfigForDevtronApps(tx, appId)
605604
if err != nil {
606605
impl.logger.Errorw("error in getting deployment config db object by appId", "appId", appId, "err", err)
607606
return nil, err
608607
}
609608
} else {
610-
configDbObj, err = impl.deploymentConfigRepository.GetByAppIdAndEnvId(appId, envId)
609+
configDbObj, err = impl.deploymentConfigRepository.GetByAppIdAndEnvId(tx, appId, envId)
611610
if err != nil {
612611
impl.logger.Errorw("error in getting deployment config db object by appId and envId", "appId", appId, "envId", envId, "err", err)
613612
return nil, err

pkg/deployment/common/read/deploymentConfigReadService.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ func (impl *DeploymentConfigReadServiceImpl) GetDeploymentConfigForApp(appId int
123123
appLevelConfig *bean.DeploymentConfig
124124
isMigrationNeeded bool
125125
)
126-
appLevelConfigDbObj, err := impl.deploymentConfigRepository.GetAppLevelConfigForDevtronApps(appId)
126+
appLevelConfigDbObj, err := impl.deploymentConfigRepository.GetAppLevelConfigForDevtronApps(nil, appId)
127127
if err != nil && !interalUtil.IsErrNoRows(err) {
128128
impl.logger.Errorw("error in getting deployment config db object by appId", "appId", appId, "err", err)
129129
return appLevelConfig, isMigrationNeeded, err
@@ -158,7 +158,7 @@ func (impl *DeploymentConfigReadServiceImpl) GetDeploymentConfigForAppAndEnv(app
158158
envLevelConfig *bean.DeploymentConfig
159159
isMigrationNeeded bool
160160
)
161-
appAndEnvLevelConfigDBObj, err := impl.deploymentConfigRepository.GetByAppIdAndEnvId(appId, envId)
161+
appAndEnvLevelConfigDBObj, err := impl.deploymentConfigRepository.GetByAppIdAndEnvId(nil, appId, envId)
162162
if err != nil && !interalUtil.IsErrNoRows(err) {
163163
impl.logger.Errorw("error in getting deployment config db object by appId and envId", "appId", appId, "envId", envId, "err", err)
164164
return envLevelConfig, isMigrationNeeded, err

0 commit comments

Comments
 (0)