Skip to content

Commit 486b2dc

Browse files
committed
Fixes gitops pushes to repo
Signed-off-by: nagesh bansal <[email protected]>
1 parent 852ae25 commit 486b2dc

File tree

3 files changed

+49
-2
lines changed

3 files changed

+49
-2
lines changed

chaoscenter/graphql/server/pkg/chaos_experiment/handler/handler.go

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
111111
if err != nil {
112112
return "", err
113113
}
114+
114115
// Updating the existing experiment
115116
if wfDetails.ExperimentID == request.ID {
116117
logrus.WithFields(logFields).Info("request received to update k8s chaos experiment")
@@ -121,14 +122,20 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
121122
}
122123
}
123124

125+
// Gitops Update
126+
err = c.gitOpsService.UpsertExperimentToGit(ctx, projectID, newRequest)
127+
if err != nil {
128+
logrus.WithFields(logFields).Errorf("failed to push the experiment manifest to Git., err: %v", err)
129+
return "", err
130+
}
131+
124132
err = c.chaosExperimentService.ProcessExperimentUpdate(newRequest, username, wfType, revID, false, projectID, nil)
125133
if err != nil {
126134
return "", err
127135
}
128136

129137
return "experiment updated successfully", nil
130138
}
131-
132139
err = c.validateDuplicateExperimentName(ctx, projectID, request.Name)
133140
if err != nil {
134141
return "", err
@@ -137,6 +144,13 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
137144
// Saving chaos experiment in the DB
138145
logrus.WithFields(logFields).Info("request received to save k8s chaos experiment")
139146

147+
// Gitops Update
148+
err = c.gitOpsService.UpsertExperimentToGit(ctx, projectID, newRequest)
149+
if err != nil {
150+
logrus.WithFields(logFields).Errorf("failed to push the experiment manifest to Git, err: %v", err)
151+
return "", err
152+
}
153+
140154
err = c.chaosExperimentService.ProcessExperimentCreation(ctx, newRequest, username, projectID, wfType, revID, nil)
141155
if err != nil {
142156
return "", err
@@ -160,6 +174,12 @@ func (c *ChaosExperimentHandler) CreateChaosExperiment(ctx context.Context, requ
160174
return nil, err
161175
}
162176

177+
// Gitops Update
178+
err = c.gitOpsService.UpsertExperimentToGit(ctx, projectID, newRequest)
179+
if err != nil {
180+
return nil, err
181+
}
182+
163183
tkn := ctx.Value(authorization.AuthKey).(string)
164184
uid, err := authorization.GetUsername(tkn)
165185
err = c.chaosExperimentService.ProcessExperimentCreation(context.TODO(), newRequest, uid, projectID, wfType, revID, r)
@@ -223,6 +243,17 @@ func (c *ChaosExperimentHandler) DeleteChaosExperiment(ctx context.Context, proj
223243

224244
workflowRun.IsRemoved = true
225245

246+
wf := model.ChaosExperimentRequest{
247+
ExperimentID: &workflow.ExperimentID,
248+
ExperimentName: workflow.Name,
249+
}
250+
251+
err = c.gitOpsService.DeleteExperimentFromGit(ctx, projectID, &wf)
252+
if err != nil {
253+
logrus.Errorf("Failed to delete experiment manifest from git, err: %v", err)
254+
return false, err
255+
}
256+
226257
err = c.chaosExperimentRunService.ProcessExperimentRunDelete(ctx, query, workflowRunID, workflowRun, workflow, uid, r)
227258
if err != nil {
228259
return false, err
@@ -249,6 +280,13 @@ func (c *ChaosExperimentHandler) UpdateChaosExperiment(ctx context.Context, requ
249280
}
250281
tkn := ctx.Value(authorization.AuthKey).(string)
251282
uid, err := authorization.GetUsername(tkn)
283+
284+
err = c.gitOpsService.UpsertExperimentToGit(ctx, projectID, newRequest)
285+
if err != nil {
286+
logrus.Errorf("failed to push experiment manifest to git, err: %v", err)
287+
return nil, err
288+
}
289+
252290
err = c.chaosExperimentService.ProcessExperimentUpdate(newRequest, uid, wfType, revID, false, projectID, r)
253291
if err != nil {
254292
return nil, err

chaoscenter/graphql/server/pkg/chaos_experiment/handler/handler_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ func TestChaosExperimentHandler_SaveChaosExperiment(t *testing.T) {
117117
mockServices.ChaosExperimentService.On("ProcessExperiment", mock.Anything, request2, mock.Anything, mock.Anything).Return(request2, &experimentType, nil).Once()
118118

119119
mockServices.ChaosExperimentService.On("ProcessExperimentUpdate", request2, mock.Anything, mock.Anything, mock.Anything, false, mock.Anything, mock.Anything).Return(nil).Once()
120+
mockServices.GitOpsService.On("UpsertExperimentToGit", ctx, mock.Anything, request2).Return(nil).Once()
120121
},
121122
wantErr: false,
122123
},
@@ -195,6 +196,8 @@ func TestChaosExperimentHandler_SaveChaosExperiment(t *testing.T) {
195196
mockServices.ChaosExperimentService.On("ProcessExperiment", mock.Anything, request2, mock.Anything, mock.Anything).Return(request2, &experimentType, nil).Once()
196197

197198
mockServices.ChaosExperimentService.On("ProcessExperimentUpdate", request2, mock.Anything, mock.Anything, mock.Anything, false, mock.Anything, mock.Anything).Return(nil).Once()
199+
200+
mockServices.GitOpsService.On("UpsertExperimentToGit", ctx, mock.Anything, request2).Return(nil).Once()
198201
},
199202
},
200203
}
@@ -272,6 +275,7 @@ func TestChaosExperimentHandler_DeleteChaosExperiment(t *testing.T) {
272275
mockServices.MongodbOperator.On("Get", mock.Anything, mongodb.ChaosExperimentRunsCollection, mock.Anything).Return(singleResult, nil).Once()
273276

274277
mockServices.ChaosExperimentRunService.On("ProcessExperimentRunDelete", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil).Once()
278+
mockServices.GitOpsService.On("DeleteExperimentFromGit", ctx, mock.Anything, mock.Anything).Return(nil).Once()
275279
},
276280
wantErr: false,
277281
},
@@ -321,6 +325,7 @@ func TestChaosExperimentHandler_DeleteChaosExperiment(t *testing.T) {
321325
mockServices.MongodbOperator.On("Get", mock.Anything, mongodb.ChaosExperimentCollection, mock.Anything).Return(singleResult, nil).Once()
322326
mockServices.MongodbOperator.On("Get", mock.Anything, mongodb.ChaosExperimentRunsCollection, mock.Anything).Return(singleResult, nil).Once()
323327
mockServices.ChaosExperimentRunService.On("ProcessExperimentRunDelete", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(errors.New("")).Once()
328+
mockServices.GitOpsService.On("DeleteExperimentFromGit", ctx, mock.Anything, mock.Anything).Return(nil).Once()
324329
},
325330
wantErr: true,
326331
},
@@ -374,6 +379,8 @@ func TestChaosExperimentHandler_UpdateChaosExperiment(t *testing.T) {
374379
mockServices.MongodbOperator.On("CountDocuments", ctx, mongodb.ChaosExperimentCollection, mock.Anything, mock.Anything).Return(int64(0), nil).Once()
375380
mockServices.ChaosExperimentService.On("ProcessExperiment", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(request, &experimentType, nil).Once()
376381
mockServices.ChaosExperimentService.On("ProcessExperimentUpdate", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil).Once()
382+
mockServices.GitOpsService.On("UpsertExperimentToGit", ctx, mock.Anything, request).Return(nil).Once()
383+
377384
},
378385
wantErr: false,
379386
},
@@ -412,6 +419,8 @@ func TestChaosExperimentHandler_UpdateChaosExperiment(t *testing.T) {
412419
mockServices.ChaosExperimentService.On("ProcessExperiment", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(request, &experimentType, nil).Once()
413420

414421
mockServices.ChaosExperimentService.On("ProcessExperimentUpdate", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(errors.New("experiment update failed")).Once()
422+
423+
mockServices.GitOpsService.On("UpsertExperimentToGit", ctx, mock.Anything, request).Return(nil).Once()
415424
},
416425
wantErr: true,
417426
},

chaoscenter/graphql/server/pkg/gitops/model/mocks/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func (g *GitOpsService) GetGitOpsDetails(ctx context.Context, projectID string)
4646

4747
// UpsertWorkflowToGit provides a mock function with given fields: ctx, experiment
4848
func (g *GitOpsService) UpsertExperimentToGit(ctx context.Context, projectID string, experiment *model.ChaosExperimentRequest) error {
49-
args := g.Called(ctx, experiment)
49+
args := g.Called(ctx, projectID, experiment)
5050
return args.Error(0)
5151
}
5252

0 commit comments

Comments
 (0)