@@ -83,10 +83,10 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
8383		"experimentId" : request .ID ,
8484	}
8585
86- 	// Check if the workflow_name  exists under same project 
86+ 	// Check if the experiment  exists under same project 
8787	wfDetails , err  :=  c .chaosExperimentOperator .GetExperiment (ctx , bson.D {
8888		{"experiment_id" , request .ID },
89- 		{"tags " , request . Tags },
89+ 		{"project_id " , projectID },
9090		{"is_removed" , false },
9191	})
9292	if  err  !=  nil  &&  err  !=  mongo .ErrNoDocuments  {
@@ -160,12 +160,25 @@ func (c *ChaosExperimentHandler) CreateChaosExperiment(ctx context.Context, requ
160160
161161	var  revID  =  uuid .New ().String ()
162162
163- 	// Check if the experiment_name exists under same project 
164- 	err  :=  c .validateDuplicateExperimentName (ctx , projectID , request .ExperimentName )
163+ 	// Fetch the existing experiment to check if name has changed 
164+ 	existingExperiment , err  :=  c .chaosExperimentOperator .GetExperiment (ctx , bson.D {
165+ 		{"experiment_id" , * request .ExperimentID },
166+ 		{"project_id" , projectID },
167+ 		{"is_removed" , false },
168+ 	})
169+ 
165170	if  err  !=  nil  {
166171		return  nil , err 
167172	}
168173
174+ 	// Check if the experiment_name exists under same project only if name has changed 
175+ 	if  existingExperiment .Name  !=  request .ExperimentName  {
176+ 		err  =  c .validateDuplicateExperimentName (ctx , projectID , request .ExperimentName )
177+ 		if  err  !=  nil  {
178+ 			return  nil , err 
179+ 		}
180+ 	}
181+ 
169182	newRequest , wfType , err  :=  c .chaosExperimentService .ProcessExperiment (ctx , request , projectID , revID )
170183	if  err  !=  nil  {
171184		return  nil , err 
0 commit comments