Skip to content

Commit 251cce8

Browse files
Merge branch 'develop' into panic-fixes-1
2 parents 8e1dc54 + 7141702 commit 251cce8

23 files changed

+313
-160
lines changed

Wire.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ import (
125125
"github.com/devtron-labs/devtron/pkg/build"
126126
"github.com/devtron-labs/devtron/pkg/build/artifacts/imageTagging"
127127
pipeline6 "github.com/devtron-labs/devtron/pkg/build/pipeline"
128-
"github.com/devtron-labs/devtron/pkg/bulkAction"
128+
"github.com/devtron-labs/devtron/pkg/bulkAction/service"
129129
"github.com/devtron-labs/devtron/pkg/chart"
130130
"github.com/devtron-labs/devtron/pkg/chart/gitOpsConfig"
131131
chartRepoRepository "github.com/devtron-labs/devtron/pkg/chartRepo/repository"
@@ -357,8 +357,8 @@ func InitializeApp() (*App, error) {
357357
wire.Bind(new(gitOpsConfig.DevtronAppGitOpConfigService), new(*gitOpsConfig.DevtronAppGitOpConfigServiceImpl)),
358358
chart.NewChartServiceImpl,
359359
wire.Bind(new(chart.ChartService), new(*chart.ChartServiceImpl)),
360-
bulkAction.NewBulkUpdateServiceImpl,
361-
wire.Bind(new(bulkAction.BulkUpdateService), new(*bulkAction.BulkUpdateServiceImpl)),
360+
service.NewBulkUpdateServiceImpl,
361+
wire.Bind(new(service.BulkUpdateService), new(*service.BulkUpdateServiceImpl)),
362362

363363
repository.NewImageTagRepository,
364364
wire.Bind(new(repository.ImageTagRepository), new(*repository.ImageTagRepositoryImpl)),

api/deployment/DeploymentConfigRestHandler.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func (handler *DeploymentConfigRestHandlerImpl) CreateChartFromFile(w http.Respo
8282
}
8383

8484
token := r.Header.Get("token")
85-
if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionUpdate, "*"); !ok {
85+
if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionCreate, "*"); !ok {
8686
common.WriteJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
8787
return
8888
}
@@ -177,7 +177,7 @@ func (handler *DeploymentConfigRestHandlerImpl) SaveChart(w http.ResponseWriter,
177177
}
178178

179179
token := r.Header.Get("token")
180-
if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionDelete, "*"); !ok {
180+
if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionCreate, "*"); !ok {
181181
common.WriteJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
182182
return
183183
}
@@ -234,7 +234,7 @@ func (handler *DeploymentConfigRestHandlerImpl) DownloadChart(w http.ResponseWri
234234
}
235235

236236
token := r.Header.Get("token")
237-
if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionUpdate, "*"); !ok {
237+
if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionGet, "*"); !ok {
238238
common.WriteJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
239239
return
240240
}

api/restHandler/BulkUpdateRestHandler.go

Lines changed: 31 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"fmt"
2222
"github.com/devtron-labs/devtron/pkg/build/git/gitMaterial/repository"
2323
"github.com/devtron-labs/devtron/pkg/build/git/gitProvider"
24+
"github.com/devtron-labs/devtron/pkg/bulkAction/bean"
25+
"github.com/devtron-labs/devtron/pkg/bulkAction/service"
2426
"github.com/devtron-labs/devtron/pkg/cluster/environment"
2527
"net/http"
2628
"strconv"
@@ -34,7 +36,6 @@ import (
3436
"github.com/devtron-labs/devtron/pkg/appWorkflow"
3537
"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
3638
"github.com/devtron-labs/devtron/pkg/auth/user"
37-
"github.com/devtron-labs/devtron/pkg/bulkAction"
3839
"github.com/devtron-labs/devtron/pkg/chart"
3940
"github.com/devtron-labs/devtron/pkg/pipeline"
4041
"github.com/devtron-labs/devtron/pkg/team"
@@ -61,7 +62,7 @@ type BulkUpdateRestHandlerImpl struct {
6162
ciPipelineRepository pipelineConfig.CiPipelineRepository
6263
ciHandler pipeline.CiHandler
6364
logger *zap.SugaredLogger
64-
bulkUpdateService bulkAction.BulkUpdateService
65+
bulkUpdateService service.BulkUpdateService
6566
chartService chart.ChartService
6667
propertiesConfigService pipeline.PropertiesConfigService
6768
userAuthService user.UserService
@@ -81,7 +82,7 @@ type BulkUpdateRestHandlerImpl struct {
8182
}
8283

8384
func NewBulkUpdateRestHandlerImpl(pipelineBuilder pipeline.PipelineBuilder, logger *zap.SugaredLogger,
84-
bulkUpdateService bulkAction.BulkUpdateService,
85+
bulkUpdateService service.BulkUpdateService,
8586
chartService chart.ChartService,
8687
propertiesConfigService pipeline.PropertiesConfigService,
8788
userAuthService user.UserService,
@@ -135,7 +136,7 @@ func (handler BulkUpdateRestHandlerImpl) FindBulkUpdateReadme(w http.ResponseWri
135136
return
136137
}
137138
//auth free, only login required
138-
var responseArr []*bulkAction.BulkUpdateSeeExampleResponse
139+
var responseArr []*bean.BulkUpdateSeeExampleResponse
139140
responseArr = append(responseArr, response)
140141
common.WriteJsonResp(w, nil, responseArr, http.StatusOK)
141142
}
@@ -157,7 +158,7 @@ func (handler BulkUpdateRestHandlerImpl) CheckAuthForImpactedObjects(AppId int,
157158
}
158159
func (handler BulkUpdateRestHandlerImpl) GetImpactedAppsName(w http.ResponseWriter, r *http.Request) {
159160
decoder := json.NewDecoder(r.Body)
160-
var script bulkAction.BulkUpdateScript
161+
var script bean.BulkUpdateScript
161162
err := decoder.Decode(&script)
162163
if err != nil {
163164
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
@@ -212,7 +213,7 @@ func (handler BulkUpdateRestHandlerImpl) CheckAuthForBulkUpdate(AppId int, EnvId
212213
}
213214
func (handler BulkUpdateRestHandlerImpl) BulkUpdate(w http.ResponseWriter, r *http.Request) {
214215
decoder := json.NewDecoder(r.Body)
215-
var script bulkAction.BulkUpdateScript
216+
var script bean.BulkUpdateScript
216217
err := decoder.Decode(&script)
217218
if err != nil {
218219
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
@@ -255,65 +256,55 @@ func (handler BulkUpdateRestHandlerImpl) BulkUpdate(w http.ResponseWriter, r *ht
255256
}
256257

257258
func (handler BulkUpdateRestHandlerImpl) BulkHibernate(w http.ResponseWriter, r *http.Request) {
258-
userId, err := handler.userAuthService.GetLoggedInUser(r)
259-
if userId == 0 || err != nil {
260-
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
261-
return
262-
}
263-
decoder := json.NewDecoder(r.Body)
264-
var request bulkAction.BulkApplicationForEnvironmentPayload
265-
err = decoder.Decode(&request)
266-
if err != nil {
267-
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
268-
return
269-
}
270-
request.UserId = userId
271-
err = handler.validator.Struct(request)
259+
request, err := handler.decodeAndValidateBulkRequest(w, r)
272260
if err != nil {
273-
handler.logger.Errorw("validation err", "err", err, "request", request)
274-
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
275-
return
261+
return // response already written by the helper on error.
276262
}
277-
278263
token := r.Header.Get("token")
279-
response, err := handler.bulkUpdateService.BulkHibernate(&request, r.Context(), w, token, handler.checkAuthForBulkHibernateAndUnhibernate)
264+
response, err := handler.bulkUpdateService.BulkHibernate(request, r.Context(), w, token, handler.checkAuthForBulkHibernateAndUnhibernate)
280265
if err != nil {
281266
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
282267
return
283268
}
284269
common.WriteJsonResp(w, nil, response, http.StatusOK)
285270
}
286271

287-
func (handler BulkUpdateRestHandlerImpl) BulkUnHibernate(w http.ResponseWriter, r *http.Request) {
272+
// decodeAndValidateBulkRequest is a helper to decode and validate the request.
273+
func (handler BulkUpdateRestHandlerImpl) decodeAndValidateBulkRequest(w http.ResponseWriter, r *http.Request) (*bean.BulkApplicationForEnvironmentPayload, error) {
288274
userId, err := handler.userAuthService.GetLoggedInUser(r)
289275
if userId == 0 || err != nil {
290276
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
291-
return
277+
return nil, err
292278
}
279+
293280
decoder := json.NewDecoder(r.Body)
294-
var request bulkAction.BulkApplicationForEnvironmentPayload
295-
err = decoder.Decode(&request)
296-
if err != nil {
281+
var request bean.BulkApplicationForEnvironmentPayload
282+
if err = decoder.Decode(&request); err != nil {
297283
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
298-
return
284+
return nil, err
299285
}
300286
request.UserId = userId
301-
err = handler.validator.Struct(request)
302-
if err != nil {
303-
handler.logger.Errorw("validation err", "err", err, "request", request)
287+
if err = handler.validator.Struct(request); err != nil {
288+
handler.logger.Errorw("validation error", "request", request, "err", err)
304289
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
305-
return
290+
return nil, err
306291
}
292+
return &request, nil
293+
}
307294

295+
func (handler BulkUpdateRestHandlerImpl) BulkUnHibernate(w http.ResponseWriter, r *http.Request) {
296+
request, err := handler.decodeAndValidateBulkRequest(w, r)
297+
if err != nil {
298+
return // response already written by the helper on error.
299+
}
308300
token := r.Header.Get("token")
309-
response, err := handler.bulkUpdateService.BulkUnHibernate(&request, r.Context(), w, token, handler.checkAuthForBulkHibernateAndUnhibernate)
301+
response, err := handler.bulkUpdateService.BulkUnHibernate(request, r.Context(), w, token, handler.checkAuthForBulkHibernateAndUnhibernate)
310302
if err != nil {
311303
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
312304
return
313305
}
314306
common.WriteJsonResp(w, nil, response, http.StatusOK)
315307
}
316-
317308
func (handler BulkUpdateRestHandlerImpl) BulkDeploy(w http.ResponseWriter, r *http.Request) {
318309
token := r.Header.Get("token")
319310
userId, err := handler.userAuthService.GetLoggedInUser(r)
@@ -322,7 +313,7 @@ func (handler BulkUpdateRestHandlerImpl) BulkDeploy(w http.ResponseWriter, r *ht
322313
return
323314
}
324315
decoder := json.NewDecoder(r.Body)
325-
var request bulkAction.BulkApplicationForEnvironmentPayload
316+
var request bean.BulkApplicationForEnvironmentPayload
326317
err = decoder.Decode(&request)
327318
if err != nil {
328319
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
@@ -350,7 +341,7 @@ func (handler BulkUpdateRestHandlerImpl) BulkBuildTrigger(w http.ResponseWriter,
350341
return
351342
}
352343
decoder := json.NewDecoder(r.Body)
353-
var request bulkAction.BulkApplicationForEnvironmentPayload
344+
var request bean.BulkApplicationForEnvironmentPayload
354345
err = decoder.Decode(&request)
355346
if err != nil {
356347
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
@@ -399,7 +390,7 @@ func (handler BulkUpdateRestHandlerImpl) HandleCdPipelineBulkAction(w http.Respo
399390
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
400391
return
401392
}
402-
var cdPipelineBulkActionReq bulkAction.CdBulkActionRequestDto
393+
var cdPipelineBulkActionReq bean.CdBulkActionRequestDto
403394
err = decoder.Decode(&cdPipelineBulkActionReq)
404395
cdPipelineBulkActionReq.UserId = userId
405396
if err != nil {

api/restHandler/ReleaseMetricsRestHandler.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,10 @@ func (impl *ReleaseMetricsRestHandlerImpl) ResetDataForAllAppEnvironment(w http.
148148
}
149149
}
150150

151-
// err := decoder.Decode(&employeeStruct, r.URL.Query())
152-
var decoder = schema.NewDecoder()
153-
154151
func (impl *ReleaseMetricsRestHandlerImpl) GetDeploymentMetrics(w http.ResponseWriter, r *http.Request) {
155152
//decoder := json.NewDecoder(r.Body)
156153
metricRequest := &lens.MetricRequest{}
154+
decoder := schema.NewDecoder()
157155
err := decoder.Decode(metricRequest, r.URL.Query())
158156
if err != nil {
159157
impl.logger.Errorw("request err, GetDeploymentMetrics", "err", err, "payload", metricRequest)

api/router/BulkUpdateRouter.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ func (router BulkUpdateRouterImpl) initBulkUpdateRouter(bulkRouter *mux.Router)
4242

4343
bulkRouter.Path("/v1beta1/hibernate").HandlerFunc(router.restHandler.BulkHibernate).Methods("POST")
4444
bulkRouter.Path("/v1beta1/unhibernate").HandlerFunc(router.restHandler.BulkUnHibernate).Methods("POST")
45+
bulkRouter.Path("/v1beta2/hibernate").HandlerFunc(router.restHandler.BulkHibernate).Methods("POST")
46+
bulkRouter.Path("/v1beta2/unhibernate").HandlerFunc(router.restHandler.BulkUnHibernate).Methods("POST")
4547
bulkRouter.Path("/v1beta1/deploy").HandlerFunc(router.restHandler.BulkDeploy).Methods("POST")
4648
bulkRouter.Path("/v1beta1/build").HandlerFunc(router.restHandler.BulkBuildTrigger).Methods("POST")
4749
bulkRouter.Path("/v1beta1/cd-pipeline").HandlerFunc(router.restHandler.HandleCdPipelineBulkAction).Methods("POST")

api/router/app/pipeline/trigger/PipelineTriggerRouter.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ func (router PipelineTriggerRouterImpl) InitPipelineTriggerRouter(pipelineTrigge
6060
pipelineTriggerRouter.Path("/update-release-status").HandlerFunc(router.restHandler.ReleaseStatusUpdate).Methods("POST")
6161
pipelineTriggerRouter.Path("/rotate-pods").HandlerFunc(router.restHandler.RotatePods).Methods("POST")
6262
pipelineTriggerRouter.Path("/stop-start-app").HandlerFunc(router.restHandler.StartStopApp).Methods("POST")
63+
pipelineTriggerRouter.Path("/alpha1/stop-start-app").HandlerFunc(router.restHandler.StartStopApp).Methods("POST")
6364
pipelineTriggerRouter.Path("/stop-start-dg").HandlerFunc(router.restHandler.StartStopDeploymentGroup).Methods("POST")
6465
pipelineTriggerRouter.Path("/release/").
6566
Handler(sse2.SubscribeHandler(sse.Broker, PollTopic, fetchReleaseData)).

pkg/bulkAction/bean.go renamed to pkg/bulkAction/bean/bean.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package bulkAction
17+
package bean
1818

1919
type NameIncludesExcludes struct {
2020
Names []string `json:"names"`

0 commit comments

Comments
 (0)