Skip to content

Commit 04e5177

Browse files
committed
oss ent change
1 parent eb92019 commit 04e5177

File tree

2 files changed

+55
-41
lines changed

2 files changed

+55
-41
lines changed

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

Lines changed: 14 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -717,48 +717,22 @@ func (handler *PipelineConfigRestHandlerImpl) EnvConfigOverrideCreate(w http.Res
717717
return
718718
}
719719

720-
createResp, err := handler.propertiesConfigService.CreateEnvironmentProperties(appId, &envConfigProperties)
721-
if err != nil {
722-
if err.Error() == bean4.NOCHARTEXIST {
723-
ctx, cancel := context.WithCancel(r.Context())
724-
if cn, ok := w.(http.CloseNotifier); ok {
725-
go func(done <-chan struct{}, closed <-chan bool) {
726-
select {
727-
case <-done:
728-
case <-closed:
729-
cancel()
730-
}
731-
}(ctx.Done(), cn.CloseNotify())
732-
}
733-
appMetrics := false
734-
if envConfigProperties.AppMetrics != nil {
735-
appMetrics = *envConfigProperties.AppMetrics
736-
}
737-
templateRequest := bean3.TemplateRequest{
738-
AppId: appId,
739-
ChartRefId: envConfigProperties.ChartRefId,
740-
ValuesOverride: []byte("{}"),
741-
UserId: userId,
742-
IsAppMetricsEnabled: appMetrics,
720+
ctx, cancel := context.WithCancel(r.Context())
721+
if cn, ok := w.(http.CloseNotifier); ok {
722+
go func(done <-chan struct{}, closed <-chan bool) {
723+
select {
724+
case <-done:
725+
case <-closed:
726+
cancel()
743727
}
728+
}(ctx.Done(), cn.CloseNotify())
729+
}
744730

745-
_, err = handler.chartService.CreateChartFromEnvOverride(templateRequest, ctx)
746-
if err != nil {
747-
handler.Logger.Errorw("service err, EnvConfigOverrideCreate", "err", err, "payload", envConfigProperties)
748-
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
749-
return
750-
}
751-
createResp, err = handler.propertiesConfigService.CreateEnvironmentProperties(appId, &envConfigProperties)
752-
if err != nil {
753-
handler.Logger.Errorw("service err, EnvConfigOverrideCreate", "err", err, "payload", envConfigProperties)
754-
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
755-
return
756-
}
757-
} else {
758-
handler.Logger.Errorw("service err, EnvConfigOverrideCreate", "err", err, "payload", envConfigProperties)
759-
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
760-
return
761-
}
731+
createResp, err := handler.propertiesConfigService.CreateEnvironmentPropertiesAndBaseIfNeeded(ctx, appId, &envConfigProperties)
732+
if err != nil {
733+
handler.Logger.Errorw("service err, CreateEnvironmentPropertiesAndBaseIfNeeded", "payload", envConfigProperties, "err", err)
734+
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
735+
return
762736
}
763737
common.WriteJsonResp(w, err, createResp, http.StatusOK)
764738
}

pkg/pipeline/PropertiesConfig.go

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ import (
2222
errors2 "errors"
2323
"fmt"
2424
"github.com/devtron-labs/devtron/internal/util"
25+
bean5 "github.com/devtron-labs/devtron/pkg/auth/user/bean"
26+
chartService "github.com/devtron-labs/devtron/pkg/chart"
27+
bean3 "github.com/devtron-labs/devtron/pkg/chart/bean"
2528
"github.com/devtron-labs/devtron/pkg/cluster/environment/repository"
2629
"github.com/devtron-labs/devtron/pkg/deployment/common"
2730
"github.com/devtron-labs/devtron/pkg/deployment/manifest/deployedAppMetrics"
@@ -47,6 +50,7 @@ import (
4750
)
4851

4952
type PropertiesConfigService interface {
53+
CreateEnvironmentPropertiesAndBaseIfNeeded(ctx context.Context, appId int, environmentProperties *bean.EnvironmentProperties) (*bean.EnvironmentProperties, error)
5054
CreateEnvironmentProperties(appId int, propertiesRequest *bean.EnvironmentProperties) (*bean.EnvironmentProperties, error)
5155
UpdateEnvironmentProperties(appId int, propertiesRequest *bean.EnvironmentProperties, userId int32) (*bean.EnvironmentProperties, error)
5256
//create environment entry for each new environment
@@ -71,6 +75,7 @@ type PropertiesConfigServiceImpl struct {
7175
deployedAppMetricsService deployedAppMetrics.DeployedAppMetricsService
7276
envConfigOverrideReadService read.EnvConfigOverrideService
7377
deploymentConfigService common.DeploymentConfigService
78+
chartService chartService.ChartService
7479
}
7580

7681
func NewPropertiesConfigServiceImpl(logger *zap.SugaredLogger,
@@ -81,7 +86,8 @@ func NewPropertiesConfigServiceImpl(logger *zap.SugaredLogger,
8186
scopedVariableManager variables.ScopedVariableManager,
8287
deployedAppMetricsService deployedAppMetrics.DeployedAppMetricsService,
8388
envConfigOverrideReadService read.EnvConfigOverrideService,
84-
deploymentConfigService common.DeploymentConfigService) *PropertiesConfigServiceImpl {
89+
deploymentConfigService common.DeploymentConfigService,
90+
chartService chartService.ChartService) *PropertiesConfigServiceImpl {
8591
return &PropertiesConfigServiceImpl{
8692
logger: logger,
8793
envConfigRepo: envConfigRepo,
@@ -92,6 +98,7 @@ func NewPropertiesConfigServiceImpl(logger *zap.SugaredLogger,
9298
deployedAppMetricsService: deployedAppMetricsService,
9399
envConfigOverrideReadService: envConfigOverrideReadService,
94100
deploymentConfigService: deploymentConfigService,
101+
chartService: chartService,
95102
}
96103

97104
}
@@ -214,6 +221,39 @@ func (impl PropertiesConfigServiceImpl) FetchEnvProperties(appId, envId, chartRe
214221
return impl.envConfigOverrideReadService.GetByAppIdEnvIdAndChartRefId(appId, envId, chartRefId)
215222
}
216223

224+
func (impl PropertiesConfigServiceImpl) CreateEnvironmentPropertiesAndBaseIfNeeded(ctx context.Context, appId int, environmentProperties *bean.EnvironmentProperties) (*bean.EnvironmentProperties, error) {
225+
createResp, err := impl.CreateEnvironmentProperties(appId, environmentProperties)
226+
if err != nil {
227+
if err.Error() == bean5.NOCHARTEXIST {
228+
appMetrics := false
229+
if environmentProperties.AppMetrics != nil {
230+
appMetrics = *environmentProperties.AppMetrics
231+
}
232+
templateRequest := bean3.TemplateRequest{
233+
AppId: appId,
234+
ChartRefId: environmentProperties.ChartRefId,
235+
ValuesOverride: []byte("{}"),
236+
UserId: environmentProperties.UserId,
237+
IsAppMetricsEnabled: appMetrics,
238+
}
239+
_, err = impl.chartService.CreateChartFromEnvOverride(templateRequest, ctx)
240+
if err != nil {
241+
impl.logger.Errorw("service err, EnvConfigOverrideCreate", "err", err, "payload", environmentProperties)
242+
return nil, err
243+
}
244+
createResp, err = impl.CreateEnvironmentProperties(appId, environmentProperties)
245+
if err != nil {
246+
impl.logger.Errorw("service err, EnvConfigOverrideCreate", "err", err, "payload", environmentProperties)
247+
return nil, err
248+
}
249+
} else {
250+
impl.logger.Errorw("service err, EnvConfigOverrideCreate", "err", err, "payload", environmentProperties)
251+
return nil, err
252+
}
253+
}
254+
return createResp, nil
255+
}
256+
217257
func (impl PropertiesConfigServiceImpl) CreateEnvironmentProperties(appId int, environmentProperties *bean.EnvironmentProperties) (*bean.EnvironmentProperties, error) {
218258
chart, err := impl.chartRepo.FindChartByAppIdAndRefId(appId, environmentProperties.ChartRefId)
219259
if err != nil && !errors2.Is(err, pg.ErrNoRows) {

0 commit comments

Comments
 (0)