From b29b6a70139e32dce74018a5b30ed92617d5328a Mon Sep 17 00:00:00 2001 From: khushi1310 <89256629+khushi1310@users.noreply.github.com> Date: Thu, 23 Oct 2025 19:32:48 +0530 Subject: [PATCH] fixed_issue Signed-off-by: khushi1310 <89256629+khushi1310@users.noreply.github.com> --- .../pkg/chaos_experiment/handler/handler.go | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/chaoscenter/graphql/server/pkg/chaos_experiment/handler/handler.go b/chaoscenter/graphql/server/pkg/chaos_experiment/handler/handler.go index 658d40622ef..42bdc4a93f5 100644 --- a/chaoscenter/graphql/server/pkg/chaos_experiment/handler/handler.go +++ b/chaoscenter/graphql/server/pkg/chaos_experiment/handler/handler.go @@ -83,10 +83,10 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques "experimentId": request.ID, } - // Check if the workflow_name exists under same project + // Check if the experiment exists under same project wfDetails, err := c.chaosExperimentOperator.GetExperiment(ctx, bson.D{ {"experiment_id", request.ID}, - {"tags", request.Tags}, + {"project_id", projectID}, {"is_removed", false}, }) if err != nil && err != mongo.ErrNoDocuments { @@ -160,12 +160,25 @@ func (c *ChaosExperimentHandler) CreateChaosExperiment(ctx context.Context, requ var revID = uuid.New().String() - // Check if the experiment_name exists under same project - err := c.validateDuplicateExperimentName(ctx, projectID, request.ExperimentName) + // Fetch the existing experiment to check if name has changed + existingExperiment, err := c.chaosExperimentOperator.GetExperiment(ctx, bson.D{ + {"experiment_id", *request.ExperimentID}, + {"project_id", projectID}, + {"is_removed", false}, + }) + if err != nil { return nil, err } + // Check if the experiment_name exists under same project only if name has changed + if existingExperiment.Name != request.ExperimentName { + err = c.validateDuplicateExperimentName(ctx, projectID, request.ExperimentName) + if err != nil { + return nil, err + } + } + newRequest, wfType, err := c.chaosExperimentService.ProcessExperiment(ctx, request, projectID, revID) if err != nil { return nil, err