Skip to content

Commit 9f7732e

Browse files
committed
chore: Update Chart type at Base Level refactoring
1 parent 952a12d commit 9f7732e

File tree

16 files changed

+377
-295
lines changed

16 files changed

+377
-295
lines changed

api/restHandler/CoreAppRestHandler.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1851,7 +1851,7 @@ func (handler CoreAppRestHandlerImpl) createEnvDeploymentTemplate(appId int, use
18511851
UserId: userId,
18521852
IsAppMetricsEnabled: deploymentTemplateOverride.ShowAppMetrics,
18531853
}
1854-
newChartEntry, err := handler.chartService.CreateChartFromEnvOverride(templateRequest, context.Background())
1854+
newChartEntry, err := handler.chartService.CreateChartFromEnvOverride(context.Background(), templateRequest)
18551855
if err != nil {
18561856
handler.logger.Errorw("service err, CreateChartFromEnvOverride", "err", err, "appId", appId, "envId", envId, "chartRefId", chartRefId)
18571857
return err

api/restHandler/app/pipeline/configure/DeploymentPipelineRestHandler.go

+207-153
Large diffs are not rendered by default.

internal/sql/repository/chartConfig/PipelineConfigRepository.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func (impl PipelineConfigRepositoryImpl) Save(pipelineStrategy *PipelineStrategy
5959
}
6060

6161
func (impl PipelineConfigRepositoryImpl) Update(pipelineStrategy *PipelineStrategy, tx *pg.Tx) error {
62-
_, err := impl.dbConnection.Model(pipelineStrategy).WherePK().UpdateNotNull()
62+
_, err := tx.Model(pipelineStrategy).WherePK().UpdateNotNull()
6363
return err
6464
}
6565

internal/util/ChartTemplateService.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ type ChartCreateResponse struct {
6363
}
6464

6565
type ChartTemplateService interface {
66-
FetchValuesFromReferenceChart(chartMetaData *chart.Metadata, refChartLocation string, templateName string, userId int32, pipelineStrategyPath string) (*ChartValues, error)
66+
FetchValuesFromReferenceChart(chartMetaData *chart.Metadata, refChartLocation string, pipelineStrategyPath string) (*ChartValues, error)
6767
GetChartVersion(location string) (string, error)
6868
BuildChart(ctx context.Context, chartMetaData *chart.Metadata, referenceTemplatePath string) (string, error)
6969
BuildChartProxyForHelmApps(chartCreateRequest *ChartCreateRequest) (chartCreateResponse *ChartCreateResponse, err error)
@@ -116,7 +116,7 @@ func (impl ChartTemplateServiceImpl) GetChartVersion(location string) (string, e
116116
return chartContent.Version, nil
117117
}
118118

119-
func (impl ChartTemplateServiceImpl) FetchValuesFromReferenceChart(chartMetaData *chart.Metadata, refChartLocation string, templateName string, userId int32, pipelineStrategyPath string) (*ChartValues, error) {
119+
func (impl ChartTemplateServiceImpl) FetchValuesFromReferenceChart(chartMetaData *chart.Metadata, refChartLocation string, pipelineStrategyPath string) (*ChartValues, error) {
120120
chartMetaData.APIVersion = "v1" // ensure always v1
121121
dir := impl.GetDir()
122122
chartDir := filepath.Join(CHART_WORKING_DIR_PATH, dir)

pkg/appClone/AppCloneService.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ func (impl *AppCloneServiceImpl) createEnvOverride(oldAppId, newAppId int, userI
533533
IsBasicViewLocked: envPropertiesReq.IsBasicViewLocked,
534534
CurrentViewEditor: envPropertiesReq.CurrentViewEditor,
535535
}
536-
_, err = impl.chartService.CreateChartFromEnvOverride(templateRequest, ctx)
536+
_, err = impl.chartService.CreateChartFromEnvOverride(ctx, templateRequest)
537537
if err != nil {
538538
impl.logger.Error(err)
539539
return nil, nil

pkg/chart/ChartService.go

+24-24
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ import (
5858

5959
type ChartService interface {
6060
Create(templateRequest bean3.TemplateRequest, ctx context.Context) (chart *bean3.TemplateRequest, err error)
61-
CreateChartFromEnvOverride(templateRequest bean3.TemplateRequest, ctx context.Context) (chart *bean3.TemplateRequest, err error)
61+
CreateChartFromEnvOverride(ctx context.Context, templateRequest bean3.TemplateRequest) (chart *bean3.TemplateRequest, err error)
6262
GetByAppIdAndChartRefId(appId int, chartRefId int) (chartTemplate *bean3.TemplateRequest, err error)
6363
UpdateAppOverride(ctx context.Context, templateRequest *bean3.TemplateRequest) (*bean3.TemplateRequest, error)
6464
IsReadyToTrigger(appId int, envId int, pipelineId int) (IsReady, error)
6565
FindPreviousChartByAppId(appId int) (chartTemplate *bean3.TemplateRequest, err error)
6666
UpgradeForApp(appId int, chartRefId int, newAppOverride map[string]interface{}, userId int32, ctx context.Context) (bool, error)
6767
CheckIfChartRefUserUploadedByAppId(id int) (bool, error)
68-
PatchEnvOverrides(values json.RawMessage, oldChartType string, newChartType string) (json.RawMessage, error)
68+
ChartSpecificPatchOperations(values json.RawMessage, chartChangeType *chartRefBean.ChartRefChangeType) (json.RawMessage, error)
6969

7070
ChartRefAutocompleteGlobalData() (*chartRefBean.ChartRefAutocompleteResponse, error)
7171
ChartRefAutocompleteForAppOrEnv(appId int, envId int) (*chartRefBean.ChartRefAutocompleteResponse, error)
@@ -136,11 +136,13 @@ func NewChartServiceImpl(chartRepository chartRepoRepository.ChartRepository,
136136
}
137137
}
138138

139-
func (impl *ChartServiceImpl) PatchEnvOverrides(values json.RawMessage, oldChartType string, newChartType string) (json.RawMessage, error) {
140-
return PatchWinterSoldierConfig(values, newChartType)
139+
func (impl *ChartServiceImpl) ChartSpecificPatchOperations(values json.RawMessage, chartChangeType *chartRefBean.ChartRefChangeType) (json.RawMessage, error) {
140+
return PatchWinterSoldierConfig(values, chartChangeType.NewChartType)
141141
}
142142

143143
func (impl *ChartServiceImpl) Create(templateRequest bean3.TemplateRequest, ctx context.Context) (*bean3.TemplateRequest, error) {
144+
newCtx, span := otel.Tracer("orchestrator").Start(ctx, "ChartServiceImpl.Create")
145+
defer span.End()
144146
err := impl.chartRefService.CheckChartExists(templateRequest.ChartRefId)
145147
if err != nil {
146148
impl.logger.Errorw("error in getting missing chart for chartRefId", "err", err, "chartRefId")
@@ -237,7 +239,7 @@ func (impl *ChartServiceImpl) Create(templateRequest bean3.TemplateRequest, ctx
237239
if err != nil {
238240
return nil, err
239241
}
240-
chartValues, err := impl.chartTemplateService.FetchValuesFromReferenceChart(chartMeta, refChart, templateName, templateRequest.UserId, pipelineStrategyPath)
242+
chartValues, err := impl.chartTemplateService.FetchValuesFromReferenceChart(chartMeta, refChart, pipelineStrategyPath)
241243
if err != nil {
242244
return nil, err
243245
}
@@ -341,7 +343,7 @@ func (impl *ChartServiceImpl) Create(templateRequest bean3.TemplateRequest, ctx
341343
ChartRefId: templateRequest.ChartRefId,
342344
UserId: templateRequest.UserId,
343345
}
344-
err = impl.deployedAppMetricsService.CreateOrUpdateAppOrEnvLevelMetrics(ctx, appLevelMetricsUpdateReq)
346+
err = impl.deployedAppMetricsService.CreateOrUpdateAppOrEnvLevelMetrics(newCtx, appLevelMetricsUpdateReq)
345347
if err != nil {
346348
impl.logger.Errorw("error, CheckAndUpdateAppOrEnvLevelMetrics", "err", err, "req", appLevelMetricsUpdateReq)
347349
return nil, err
@@ -371,7 +373,9 @@ func (impl *ChartServiceImpl) UpdateChartLocationForEnvironmentConfigs(appId, ch
371373
return nil
372374
}
373375

374-
func (impl *ChartServiceImpl) CreateChartFromEnvOverride(templateRequest bean3.TemplateRequest, ctx context.Context) (*bean3.TemplateRequest, error) {
376+
func (impl *ChartServiceImpl) CreateChartFromEnvOverride(ctx context.Context, templateRequest bean3.TemplateRequest) (*bean3.TemplateRequest, error) {
377+
_, span := otel.Tracer("orchestrator").Start(ctx, "ChartServiceImpl.CreateChartFromEnvOverride")
378+
defer span.End()
375379
err := impl.chartRefService.CheckChartExists(templateRequest.ChartRefId)
376380
if err != nil {
377381
impl.logger.Errorw("error in getting missing chart for chartRefId", "err", err, "chartRefId")
@@ -409,7 +413,7 @@ func (impl *ChartServiceImpl) CreateChartFromEnvOverride(templateRequest bean3.T
409413
if err != nil {
410414
return nil, err
411415
}
412-
chartValues, err := impl.chartTemplateService.FetchValuesFromReferenceChart(chartMeta, refChart, templateName, templateRequest.UserId, pipelineStrategyPath)
416+
chartValues, err := impl.chartTemplateService.FetchValuesFromReferenceChart(chartMeta, refChart, pipelineStrategyPath)
413417
if err != nil {
414418
return nil, err
415419
}
@@ -639,22 +643,18 @@ func (impl *ChartServiceImpl) GetByAppIdAndChartRefId(appId int, chartRefId int)
639643
}
640644

641645
func (impl *ChartServiceImpl) UpdateAppOverride(ctx context.Context, templateRequest *bean3.TemplateRequest) (*bean3.TemplateRequest, error) {
642-
643-
_, span := otel.Tracer("orchestrator").Start(ctx, "chartRepository.FindById")
646+
newCtx, span := otel.Tracer("orchestrator").Start(ctx, "ChartServiceImpl.UpdateAppOverride")
647+
defer span.End()
648+
_, span = otel.Tracer("orchestrator").Start(newCtx, "chartRepository.FindById")
644649
template, err := impl.chartRepository.FindById(templateRequest.Id)
645650
span.End()
646651
if err != nil {
647652
impl.logger.Errorw("error in fetching chart config", "id", templateRequest.Id, "err", err)
648653
return nil, err
649654
}
650655

651-
if err != nil {
652-
impl.logger.Errorw("chart version parsing", "err", err)
653-
return nil, err
654-
}
655-
656-
//STARTS
657-
_, span = otel.Tracer("orchestrator").Start(ctx, "chartRepository.FindLatestChartForAppByAppId")
656+
// STARTS
657+
_, span = otel.Tracer("orchestrator").Start(newCtx, "chartRepository.FindLatestChartForAppByAppId")
658658
currentLatestChart, err := impl.chartRepository.FindLatestChartForAppByAppId(templateRequest.AppId)
659659
span.End()
660660
if err != nil {
@@ -683,7 +683,7 @@ func (impl *ChartServiceImpl) UpdateAppOverride(ctx context.Context, templateReq
683683
}
684684
defer impl.chartRepository.RollbackTx(tx)
685685

686-
_, span = otel.Tracer("orchestrator").Start(ctx, "chartRepository.FindNoLatestChartForAppByAppId")
686+
_, span = otel.Tracer("orchestrator").Start(newCtx, "chartRepository.FindNoLatestChartForAppByAppId")
687687
noLatestCharts, dbErr := impl.chartRepository.FindNoLatestChartForAppByAppId(templateRequest.AppId)
688688
span.End()
689689
if dbErr != nil && !util.IsErrNoRows(dbErr) {
@@ -698,7 +698,7 @@ func (impl *ChartServiceImpl) UpdateAppOverride(ctx context.Context, templateReq
698698
updatedCharts = append(updatedCharts, noLatestChart)
699699
}
700700
}
701-
_, span = otel.Tracer("orchestrator").Start(ctx, "chartRepository.Update")
701+
_, span = otel.Tracer("orchestrator").Start(newCtx, "chartRepository.Update")
702702
err = impl.chartRepository.UpdateAllInTx(tx, updatedCharts)
703703
span.End()
704704
if err != nil {
@@ -715,7 +715,7 @@ func (impl *ChartServiceImpl) UpdateAppOverride(ctx context.Context, templateReq
715715
// now finally update latest entry in db to false and previous true
716716
currentLatestChart.Latest = false // these are already false by d way
717717
currentLatestChart.Previous = true
718-
_, span = otel.Tracer("orchestrator").Start(ctx, "chartRepository.Update.LatestChart")
718+
_, span = otel.Tracer("orchestrator").Start(newCtx, "chartRepository.Update.LatestChart")
719719
err = impl.chartRepository.Update(currentLatestChart)
720720
span.End()
721721
if err != nil {
@@ -731,7 +731,7 @@ func (impl *ChartServiceImpl) UpdateAppOverride(ctx context.Context, templateReq
731731
} else {
732732
return nil, nil
733733
}
734-
//ENDS
734+
// ENDS
735735

736736
impl.logger.Debug("now finally update request chart in db to latest and previous flag = false")
737737
values, err := impl.mergeUtil.JsonPatch([]byte(template.Values), templateRequest.ValuesOverride)
@@ -746,7 +746,7 @@ func (impl *ChartServiceImpl) UpdateAppOverride(ctx context.Context, templateReq
746746
template.Previous = false
747747
template.IsBasicViewLocked = templateRequest.IsBasicViewLocked
748748
template.CurrentViewEditor = templateRequest.CurrentViewEditor
749-
_, span = otel.Tracer("orchestrator").Start(ctx, "chartRepository.Update.requestTemplate")
749+
_, span = otel.Tracer("orchestrator").Start(newCtx, "chartRepository.Update.requestTemplate")
750750
err = impl.chartRepository.Update(template)
751751
span.End()
752752
if err != nil {
@@ -790,12 +790,12 @@ func (impl *ChartServiceImpl) UpdateAppOverride(ctx context.Context, templateReq
790790
ChartRefId: templateRequest.ChartRefId,
791791
UserId: templateRequest.UserId,
792792
}
793-
err = impl.deployedAppMetricsService.CreateOrUpdateAppOrEnvLevelMetrics(ctx, appLevelMetricsUpdateReq)
793+
err = impl.deployedAppMetricsService.CreateOrUpdateAppOrEnvLevelMetrics(newCtx, appLevelMetricsUpdateReq)
794794
if err != nil {
795795
impl.logger.Errorw("error, CheckAndUpdateAppOrEnvLevelMetrics", "err", err, "req", appLevelMetricsUpdateReq)
796796
return nil, err
797797
}
798-
_, span = otel.Tracer("orchestrator").Start(ctx, "CreateDeploymentTemplateHistoryFromGlobalTemplate")
798+
_, span = otel.Tracer("orchestrator").Start(newCtx, "CreateDeploymentTemplateHistoryFromGlobalTemplate")
799799
//creating history entry for deployment template
800800
err = impl.deploymentTemplateHistoryService.CreateDeploymentTemplateHistoryFromGlobalTemplate(template, nil, appLevelMetricsUpdateReq.EnableMetrics)
801801
span.End()

pkg/chart/bean/bean.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package bean
1919
import (
2020
"encoding/json"
2121
"github.com/devtron-labs/devtron/internal/sql/models"
22+
bean2 "github.com/devtron-labs/devtron/pkg/pipeline/bean"
2223
)
2324

2425
var ReservedChartRefNamesList *[]ReservedChartList
@@ -59,9 +60,13 @@ type ChartUpgradeRequest struct {
5960
}
6061

6162
type ChartRefChangeRequest struct {
62-
AppId int `json:"appId" validate:"required"`
63-
EnvId int `json:"envId" validate:"required"`
64-
TargetChartRefId int `json:"targetChartRefId" validate:"required"`
63+
AppId int `json:"appId" validate:"required"`
64+
EnvId int `json:"envId" validate:"required"`
65+
TargetChartRefId int `json:"targetChartRefId" validate:"required"`
66+
EnvConfigProperties *bean2.EnvironmentProperties `json:"-"`
67+
EnvMetrics bool `json:"-"`
68+
UserId int32 `json:"-"`
69+
Token string `json:"-"`
6570
}
6671

6772
type PipelineConfigRequest struct {

pkg/deployment/manifest/deployedAppMetrics/DeployedAppMetrics.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
)
3131

3232
type DeployedAppMetricsService interface {
33+
CheckIsAppMetricsSupported(chartRefId int) (bool, error)
3334
GetMetricsFlagByAppId(appId int) (bool, error)
3435
GetMetricsFlagByAppIdAndEnvId(appId, envId int) (bool, error)
3536
GetMetricsFlagForAPipelineByAppIdAndEnvId(appId, envId int) (bool, error)
@@ -104,7 +105,7 @@ func (impl *DeployedAppMetricsServiceImpl) GetMetricsFlagForAPipelineByAppIdAndE
104105

105106
// CheckAndUpdateAppOrEnvLevelMetrics - this method checks whether chart being used supports metrics or not, is app level or env level and updates accordingly
106107
func (impl *DeployedAppMetricsServiceImpl) CreateOrUpdateAppOrEnvLevelMetrics(ctx context.Context, req *bean.DeployedAppMetricsRequest) error {
107-
isAppMetricsSupported, err := impl.checkIsAppMetricsSupported(req.ChartRefId)
108+
isAppMetricsSupported, err := impl.CheckIsAppMetricsSupported(req.ChartRefId)
108109
if err != nil {
109110
return err
110111
}
@@ -148,7 +149,7 @@ func (impl *DeployedAppMetricsServiceImpl) DeleteEnvLevelMetricsIfPresent(appId,
148149
return nil
149150
}
150151

151-
func (impl *DeployedAppMetricsServiceImpl) checkIsAppMetricsSupported(chartRefId int) (bool, error) {
152+
func (impl *DeployedAppMetricsServiceImpl) CheckIsAppMetricsSupported(chartRefId int) (bool, error) {
152153
chartRefValue, err := impl.chartRefService.FindById(chartRefId)
153154
if err != nil {
154155
impl.logger.Errorw("error in finding reference chart by id", "err", err)

pkg/deployment/manifest/deployedAppMetrics/repository/AppLevelMetricsRepository.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type AppLevelMetrics struct {
3333

3434
type AppLevelMetricsRepository interface {
3535
Save(metrics *AppLevelMetrics) error
36-
FindByAppId(id int) (*AppLevelMetrics, error)
36+
FindByAppId(appId int) (*AppLevelMetrics, error)
3737
Update(metrics *AppLevelMetrics) error
3838
}
3939

0 commit comments

Comments
 (0)