Skip to content

Commit

Permalink
Fixes gitops pushes to repo
Browse files Browse the repository at this point in the history
Signed-off-by: nagesh bansal <nageshbansal59@gmail.com>
  • Loading branch information
Nageshbansal committed Mar 7, 2024
1 parent 852ae25 commit 486b2dc
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
if err != nil {
return "", err
}

// Updating the existing experiment
if wfDetails.ExperimentID == request.ID {
logrus.WithFields(logFields).Info("request received to update k8s chaos experiment")
Expand All @@ -121,14 +122,20 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
}
}

// Gitops Update
err = c.gitOpsService.UpsertExperimentToGit(ctx, projectID, newRequest)
if err != nil {
logrus.WithFields(logFields).Errorf("failed to push the experiment manifest to Git., err: %v", err)
return "", err
}

err = c.chaosExperimentService.ProcessExperimentUpdate(newRequest, username, wfType, revID, false, projectID, nil)
if err != nil {
return "", err
}

return "experiment updated successfully", nil
}

err = c.validateDuplicateExperimentName(ctx, projectID, request.Name)
if err != nil {
return "", err
Expand All @@ -137,6 +144,13 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
// Saving chaos experiment in the DB
logrus.WithFields(logFields).Info("request received to save k8s chaos experiment")

// Gitops Update
err = c.gitOpsService.UpsertExperimentToGit(ctx, projectID, newRequest)
if err != nil {
logrus.WithFields(logFields).Errorf("failed to push the experiment manifest to Git, err: %v", err)
return "", err
}

err = c.chaosExperimentService.ProcessExperimentCreation(ctx, newRequest, username, projectID, wfType, revID, nil)
if err != nil {
return "", err
Expand All @@ -160,6 +174,12 @@ func (c *ChaosExperimentHandler) CreateChaosExperiment(ctx context.Context, requ
return nil, err
}

// Gitops Update
err = c.gitOpsService.UpsertExperimentToGit(ctx, projectID, newRequest)
if err != nil {
return nil, err
}

tkn := ctx.Value(authorization.AuthKey).(string)
uid, err := authorization.GetUsername(tkn)
err = c.chaosExperimentService.ProcessExperimentCreation(context.TODO(), newRequest, uid, projectID, wfType, revID, r)
Expand Down Expand Up @@ -223,6 +243,17 @@ func (c *ChaosExperimentHandler) DeleteChaosExperiment(ctx context.Context, proj

workflowRun.IsRemoved = true

wf := model.ChaosExperimentRequest{
ExperimentID: &workflow.ExperimentID,
ExperimentName: workflow.Name,
}

err = c.gitOpsService.DeleteExperimentFromGit(ctx, projectID, &wf)
if err != nil {
logrus.Errorf("Failed to delete experiment manifest from git, err: %v", err)
return false, err
}

err = c.chaosExperimentRunService.ProcessExperimentRunDelete(ctx, query, workflowRunID, workflowRun, workflow, uid, r)
if err != nil {
return false, err
Expand All @@ -249,6 +280,13 @@ func (c *ChaosExperimentHandler) UpdateChaosExperiment(ctx context.Context, requ
}
tkn := ctx.Value(authorization.AuthKey).(string)
uid, err := authorization.GetUsername(tkn)

err = c.gitOpsService.UpsertExperimentToGit(ctx, projectID, newRequest)
if err != nil {
logrus.Errorf("failed to push experiment manifest to git, err: %v", err)
return nil, err
}

err = c.chaosExperimentService.ProcessExperimentUpdate(newRequest, uid, wfType, revID, false, projectID, r)
if err != nil {
return nil, err
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ func TestChaosExperimentHandler_SaveChaosExperiment(t *testing.T) {
mockServices.ChaosExperimentService.On("ProcessExperiment", mock.Anything, request2, mock.Anything, mock.Anything).Return(request2, &experimentType, nil).Once()

mockServices.ChaosExperimentService.On("ProcessExperimentUpdate", request2, mock.Anything, mock.Anything, mock.Anything, false, mock.Anything, mock.Anything).Return(nil).Once()
mockServices.GitOpsService.On("UpsertExperimentToGit", ctx, mock.Anything, request2).Return(nil).Once()
},
wantErr: false,
},
Expand Down Expand Up @@ -195,6 +196,8 @@ func TestChaosExperimentHandler_SaveChaosExperiment(t *testing.T) {
mockServices.ChaosExperimentService.On("ProcessExperiment", mock.Anything, request2, mock.Anything, mock.Anything).Return(request2, &experimentType, nil).Once()

mockServices.ChaosExperimentService.On("ProcessExperimentUpdate", request2, mock.Anything, mock.Anything, mock.Anything, false, mock.Anything, mock.Anything).Return(nil).Once()

mockServices.GitOpsService.On("UpsertExperimentToGit", ctx, mock.Anything, request2).Return(nil).Once()
},
},
}
Expand Down Expand Up @@ -272,6 +275,7 @@ func TestChaosExperimentHandler_DeleteChaosExperiment(t *testing.T) {
mockServices.MongodbOperator.On("Get", mock.Anything, mongodb.ChaosExperimentRunsCollection, mock.Anything).Return(singleResult, nil).Once()

mockServices.ChaosExperimentRunService.On("ProcessExperimentRunDelete", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil).Once()
mockServices.GitOpsService.On("DeleteExperimentFromGit", ctx, mock.Anything, mock.Anything).Return(nil).Once()
},
wantErr: false,
},
Expand Down Expand Up @@ -321,6 +325,7 @@ func TestChaosExperimentHandler_DeleteChaosExperiment(t *testing.T) {
mockServices.MongodbOperator.On("Get", mock.Anything, mongodb.ChaosExperimentCollection, mock.Anything).Return(singleResult, nil).Once()
mockServices.MongodbOperator.On("Get", mock.Anything, mongodb.ChaosExperimentRunsCollection, mock.Anything).Return(singleResult, nil).Once()
mockServices.ChaosExperimentRunService.On("ProcessExperimentRunDelete", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(errors.New("")).Once()
mockServices.GitOpsService.On("DeleteExperimentFromGit", ctx, mock.Anything, mock.Anything).Return(nil).Once()
},
wantErr: true,
},
Expand Down Expand Up @@ -374,6 +379,8 @@ func TestChaosExperimentHandler_UpdateChaosExperiment(t *testing.T) {
mockServices.MongodbOperator.On("CountDocuments", ctx, mongodb.ChaosExperimentCollection, mock.Anything, mock.Anything).Return(int64(0), nil).Once()
mockServices.ChaosExperimentService.On("ProcessExperiment", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(request, &experimentType, nil).Once()
mockServices.ChaosExperimentService.On("ProcessExperimentUpdate", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil).Once()
mockServices.GitOpsService.On("UpsertExperimentToGit", ctx, mock.Anything, request).Return(nil).Once()

},
wantErr: false,
},
Expand Down Expand Up @@ -412,6 +419,8 @@ func TestChaosExperimentHandler_UpdateChaosExperiment(t *testing.T) {
mockServices.ChaosExperimentService.On("ProcessExperiment", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(request, &experimentType, nil).Once()

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()

mockServices.GitOpsService.On("UpsertExperimentToGit", ctx, mock.Anything, request).Return(nil).Once()
},
wantErr: true,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func (g *GitOpsService) GetGitOpsDetails(ctx context.Context, projectID string)

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

Expand Down

0 comments on commit 486b2dc

Please sign in to comment.