Skip to content

Commit d04950d

Browse files
authored
Merge pull request #6193 from devtron-labs/bulk-edit-fix
fix: bulk edit fix for global override
2 parents cf8d17e + a83b24e commit d04950d

File tree

2 files changed

+44
-32
lines changed

2 files changed

+44
-32
lines changed

internal/sql/repository/bulkUpdate/BulkUpdateRepository.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ type BulkUpdateRepository interface {
4444
FindAppByChartEnvId(chartEnvId int) (*app.App, error)
4545
FindBulkChartsByAppNameSubstring(appNameIncludes []string, appNameExcludes []string) ([]*chartRepoRepository.Chart, error)
4646
FindBulkChartsEnvByAppNameSubstring(appNameIncludes []string, appNameExcludes []string, envId int) ([]*chartConfig.EnvConfigOverride, error)
47-
BulkUpdateChartsValuesYamlAndGlobalOverrideById(id int, patch string) error
47+
BulkUpdateChartsValuesYamlAndGlobalOverrideById(id int, patchValuesYml string, patchGlobalOverrideYml string) error
4848
BulkUpdateChartsEnvYamlOverrideById(id int, patch string) error
4949

5050
//For ConfigMap & Secret :
@@ -222,12 +222,12 @@ func (repositoryImpl BulkUpdateRepositoryImpl) FindBulkChartsEnvByAppNameSubstri
222222
err := q.Select()
223223
return charts, err
224224
}
225-
func (repositoryImpl BulkUpdateRepositoryImpl) BulkUpdateChartsValuesYamlAndGlobalOverrideById(id int, patch string) error {
225+
func (repositoryImpl BulkUpdateRepositoryImpl) BulkUpdateChartsValuesYamlAndGlobalOverrideById(id int, patchValuesYml string, patchGlobalOverrideYml string) error {
226226
chart := &chartRepoRepository.Chart{}
227227
_, err := repositoryImpl.dbConnection.
228228
Model(chart).
229-
Set("values_yaml = ?", patch).
230-
Set("global_override = ?", patch).
229+
Set("values_yaml = ?", patchValuesYml).
230+
Set("global_override = ?", patchGlobalOverrideYml).
231231
Where("id = ?", id).
232232
Update()
233233
if err != nil {

pkg/bulkAction/BulkUpdateService.go

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -406,52 +406,64 @@ func (impl BulkUpdateServiceImpl) BulkUpdateDeploymentTemplate(bulkUpdatePayload
406406
} else {
407407
for _, chart := range charts {
408408
appDetailsByChart, _ := impl.bulkUpdateRepository.FindAppByChartId(chart.Id)
409-
modified, err := impl.ApplyJsonPatch(deploymentTemplatePatch, chart.Values)
409+
modifiedValuesYml, err := impl.ApplyJsonPatch(deploymentTemplatePatch, chart.Values)
410410
if err != nil {
411-
impl.logger.Errorw("error in applying JSON patch", "err", err)
411+
impl.logger.Errorw("error in applying JSON patch to chart.Values", "err", err)
412412
bulkUpdateFailedResponse := &DeploymentTemplateBulkUpdateResponseForOneApp{
413413
AppId: appDetailsByChart.Id,
414414
AppName: appDetailsByChart.AppName,
415415
Message: fmt.Sprintf("Error in applying JSON patch : %s", err.Error()),
416416
}
417417
deploymentTemplateBulkUpdateResponse.Failure = append(deploymentTemplateBulkUpdateResponse.Failure, bulkUpdateFailedResponse)
418418
} else {
419-
err = impl.bulkUpdateRepository.BulkUpdateChartsValuesYamlAndGlobalOverrideById(chart.Id, modified)
419+
modifiedGlobalOverrideYml, err := impl.ApplyJsonPatch(deploymentTemplatePatch, chart.GlobalOverride)
420420
if err != nil {
421-
impl.logger.Errorw("error in bulk updating charts", "err", err)
421+
impl.logger.Errorw("error in applying JSON patch to GlobalOverride", "err", err)
422422
bulkUpdateFailedResponse := &DeploymentTemplateBulkUpdateResponseForOneApp{
423423
AppId: appDetailsByChart.Id,
424424
AppName: appDetailsByChart.AppName,
425-
Message: fmt.Sprintf("Error in updating in db : %s", err.Error()),
425+
Message: fmt.Sprintf("Error in applying JSON patch : %s", err.Error()),
426426
}
427427
deploymentTemplateBulkUpdateResponse.Failure = append(deploymentTemplateBulkUpdateResponse.Failure, bulkUpdateFailedResponse)
428428
} else {
429-
bulkUpdateSuccessResponse := &DeploymentTemplateBulkUpdateResponseForOneApp{
430-
AppId: appDetailsByChart.Id,
431-
AppName: appDetailsByChart.AppName,
432-
Message: "Updated Successfully",
433-
}
434-
deploymentTemplateBulkUpdateResponse.Successful = append(deploymentTemplateBulkUpdateResponse.Successful, bulkUpdateSuccessResponse)
435-
436-
//creating history entry for deployment template
437-
appLevelAppMetricsEnabled, err := impl.deployedAppMetricsService.GetMetricsFlagByAppId(chart.AppId)
429+
err = impl.bulkUpdateRepository.BulkUpdateChartsValuesYamlAndGlobalOverrideById(chart.Id, modifiedValuesYml, modifiedGlobalOverrideYml)
438430
if err != nil {
439-
impl.logger.Errorw("error in getting app level metrics app level", "error", err, "appId", chart.AppId)
440-
return nil
441-
}
442-
chart.GlobalOverride = modified
443-
chart.Values = modified
444-
err = impl.deploymentTemplateHistoryService.CreateDeploymentTemplateHistoryFromGlobalTemplate(chart, nil, appLevelAppMetricsEnabled)
445-
if err != nil {
446-
impl.logger.Errorw("error in creating entry for deployment template history", "err", err, "chart", chart)
447-
}
448-
//VARIABLE_MAPPING_UPDATE
449-
//NOTE: this flow is doesn't have the user info, therefore updated by is being set to the last updated by
450-
err = impl.scopedVariableManager.ExtractAndMapVariables(chart.GlobalOverride, chart.Id, repository5.EntityTypeDeploymentTemplateAppLevel, chart.UpdatedBy, nil)
451-
if err != nil {
452-
return nil
431+
impl.logger.Errorw("error in bulk updating charts", "err", err)
432+
bulkUpdateFailedResponse := &DeploymentTemplateBulkUpdateResponseForOneApp{
433+
AppId: appDetailsByChart.Id,
434+
AppName: appDetailsByChart.AppName,
435+
Message: fmt.Sprintf("Error in updating in db : %s", err.Error()),
436+
}
437+
deploymentTemplateBulkUpdateResponse.Failure = append(deploymentTemplateBulkUpdateResponse.Failure, bulkUpdateFailedResponse)
438+
} else {
439+
bulkUpdateSuccessResponse := &DeploymentTemplateBulkUpdateResponseForOneApp{
440+
AppId: appDetailsByChart.Id,
441+
AppName: appDetailsByChart.AppName,
442+
Message: "Updated Successfully",
443+
}
444+
deploymentTemplateBulkUpdateResponse.Successful = append(deploymentTemplateBulkUpdateResponse.Successful, bulkUpdateSuccessResponse)
445+
446+
//creating history entry for deployment template
447+
appLevelAppMetricsEnabled, err := impl.deployedAppMetricsService.GetMetricsFlagByAppId(chart.AppId)
448+
if err != nil {
449+
impl.logger.Errorw("error in getting app level metrics app level", "error", err, "appId", chart.AppId)
450+
return nil
451+
}
452+
chart.GlobalOverride = modifiedGlobalOverrideYml
453+
chart.Values = modifiedValuesYml
454+
err = impl.deploymentTemplateHistoryService.CreateDeploymentTemplateHistoryFromGlobalTemplate(chart, nil, appLevelAppMetricsEnabled)
455+
if err != nil {
456+
impl.logger.Errorw("error in creating entry for deployment template history", "err", err, "chart", chart)
457+
}
458+
//VARIABLE_MAPPING_UPDATE
459+
//NOTE: this flow is doesn't have the user info, therefore updated by is being set to the last updated by
460+
err = impl.scopedVariableManager.ExtractAndMapVariables(chart.GlobalOverride, chart.Id, repository5.EntityTypeDeploymentTemplateAppLevel, chart.UpdatedBy, nil)
461+
if err != nil {
462+
return nil
463+
}
453464
}
454465
}
466+
455467
}
456468
}
457469
}

0 commit comments

Comments
 (0)