@@ -22,6 +22,7 @@ import (
2222 "github.com/devtron-labs/devtron/pkg/cluster/environment/repository"
2323 "github.com/devtron-labs/devtron/pkg/sql"
2424 "github.com/go-pg/pg"
25+ "github.com/go-pg/pg/orm"
2526 "github.com/juju/errors"
2627)
2728
@@ -58,16 +59,16 @@ type EnvConfigOverrideRepository interface {
5859 ActiveEnvConfigOverride (appId , environmentId int ) (* EnvConfigOverride , error ) //successful env config
5960 GetByIdIncludingInactive (id int ) (* EnvConfigOverride , error )
6061 //this api updates only EnvOverrideValues, EnvMergedValues, Status, ManualReviewed, active based on id
61- UpdateProperties (config * EnvConfigOverride ) error
62+ UpdateProperties (tx * pg. Tx , config * EnvConfigOverride ) error
6263 GetByEnvironment (targetEnvironmentId int ) ([]EnvConfigOverride , error )
6364
6465 GetEnvConfigByChartId (chartId int ) ([]EnvConfigOverride , error )
6566 UpdateEnvConfigStatus (config * EnvConfigOverride ) error
6667 Delete (envConfigOverride * EnvConfigOverride ) error
67- FindLatestChartForAppByAppIdAndEnvId (appId , targetEnvironmentId int ) (* EnvConfigOverride , error )
68+ FindLatestChartForAppByAppIdAndEnvId (tx * pg. Tx , appId , targetEnvironmentId int ) (* EnvConfigOverride , error )
6869 FindChartRefIdsForLatestChartForAppByAppIdAndEnvIds (appId int , targetEnvironmentIds []int ) (map [int ]int , error )
6970 FindChartByAppIdAndEnvIdAndChartRefId (appId , targetEnvironmentId int , chartRefId int ) (* EnvConfigOverride , error )
70- Update (envConfigOverride * EnvConfigOverride ) (* EnvConfigOverride , error )
71+ Update (tx * pg. Tx , envConfigOverride * EnvConfigOverride ) (* EnvConfigOverride , error )
7172 FindChartForAppByAppIdAndEnvId (appId , targetEnvironmentId int ) (* EnvConfigOverride , error )
7273 SaveWithTxn (model * EnvConfigOverride , tx * pg.Tx ) error
7374 UpdateWithTxn (envConfigOverride * EnvConfigOverride , tx * pg.Tx ) (* EnvConfigOverride , error )
@@ -78,6 +79,7 @@ type EnvConfigOverrideRepository interface {
7879 // EnvConfigOverride.Chart is not populated,
7980 // as the chartRepoRepository.Chart contains the reference chart(in bytes).
8081 GetAllOverridesForApp (appId int ) ([]* EnvConfigOverride , error )
82+ GetDbConnection () * pg.DB
8183}
8284
8385type EnvConfigOverrideRepositoryImpl struct {
@@ -205,8 +207,13 @@ func (r EnvConfigOverrideRepositoryImpl) GetByIdIncludingInactive(id int) (*EnvC
205207
206208// this api updates only EnvOverrideValues, EnvMergedValues, Status, ManualReviewed, active
207209// based on id
208- func (r EnvConfigOverrideRepositoryImpl ) UpdateProperties (config * EnvConfigOverride ) error {
209- _ , err := r .dbConnection .Model (config ).
210+ func (r EnvConfigOverrideRepositoryImpl ) UpdateProperties (tx * pg.Tx , config * EnvConfigOverride ) error {
211+ var connection orm.DB
212+ connection = tx
213+ if tx == nil {
214+ connection = r .dbConnection
215+ }
216+ _ , err := connection .Model (config ).
210217 Set ("env_override_yaml = ?" , config .EnvOverrideValues ).
211218 Set ("status =?" , config .Status ).
212219 Set ("reviewed =?" , config .ManualReviewed ).
@@ -272,9 +279,14 @@ func (r EnvConfigOverrideRepositoryImpl) Delete(envConfigOverride *EnvConfigOver
272279 return err
273280}
274281
275- func (r EnvConfigOverrideRepositoryImpl ) FindLatestChartForAppByAppIdAndEnvId (appId , targetEnvironmentId int ) (* EnvConfigOverride , error ) {
282+ func (r EnvConfigOverrideRepositoryImpl ) FindLatestChartForAppByAppIdAndEnvId (tx * pg. Tx , appId , targetEnvironmentId int ) (* EnvConfigOverride , error ) {
276283 eco := & EnvConfigOverride {}
277- err := r .dbConnection .
284+ var connection orm.DB
285+ connection = tx
286+ if tx == nil {
287+ connection = r .dbConnection
288+ }
289+ err := connection .
278290 Model (eco ).
279291 Where ("env_config_override.target_environment = ?" , targetEnvironmentId ).
280292 Where ("env_config_override.latest = ?" , true ).
@@ -321,8 +333,13 @@ func (r EnvConfigOverrideRepositoryImpl) FindChartByAppIdAndEnvIdAndChartRefId(a
321333 return eco , err
322334}
323335
324- func (r EnvConfigOverrideRepositoryImpl ) Update (envConfigOverride * EnvConfigOverride ) (* EnvConfigOverride , error ) {
325- err := r .dbConnection .Update (envConfigOverride )
336+ func (r EnvConfigOverrideRepositoryImpl ) Update (tx * pg.Tx , envConfigOverride * EnvConfigOverride ) (* EnvConfigOverride , error ) {
337+ var connection orm.DB
338+ connection = tx
339+ if tx == nil {
340+ connection = r .dbConnection
341+ }
342+ err := connection .Update (envConfigOverride )
326343 return envConfigOverride , err
327344}
328345
@@ -380,3 +397,7 @@ func (r EnvConfigOverrideRepositoryImpl) GetAllOverridesForApp(appId int) ([]*En
380397 Select ()
381398 return eco , err
382399}
400+
401+ func (r EnvConfigOverrideRepositoryImpl ) GetDbConnection () * pg.DB {
402+ return r .dbConnection
403+ }
0 commit comments