@@ -106,18 +106,10 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
106
106
if wfDetails .ExperimentID == request .ID {
107
107
logrus .WithFields (logFields ).Info ("request received to update k8s chaos experiment" )
108
108
if wfDetails .Name != request .Name {
109
- filterQuery := bson.D {
110
- {"project_id" , request .ID },
111
- {"name" , request .Name },
112
- {"is_removed" , false },
113
- }
114
- experimentCount , err := c .chaosExperimentOperator .CountChaosExperiments (ctx , filterQuery )
109
+ err = c .validateDuplicateExperimentName (ctx , request .ID , request .Name )
115
110
if err != nil {
116
111
return "" , err
117
112
}
118
- if experimentCount > 0 {
119
- return "" , errors .New ("experiment name should be unique, duplicate experiment found with name: " + request .Name )
120
- }
121
113
}
122
114
123
115
err = c .chaosExperimentService .ProcessExperimentUpdate (newRequest , username , wfType , revID , false , projectID , nil )
@@ -128,6 +120,11 @@ func (c *ChaosExperimentHandler) SaveChaosExperiment(ctx context.Context, reques
128
120
return "experiment updated successfully" , nil
129
121
}
130
122
123
+ err = c .validateDuplicateExperimentName (ctx , request .ID , request .Name )
124
+ if err != nil {
125
+ return "" , err
126
+ }
127
+
131
128
// Saving chaos experiment in the DB
132
129
logrus .WithFields (logFields ).Info ("request received to save k8s chaos experiment" )
133
130
@@ -144,18 +141,10 @@ func (c *ChaosExperimentHandler) CreateChaosExperiment(ctx context.Context, requ
144
141
var revID = uuid .New ().String ()
145
142
146
143
// Check if the experiment_name exists under same project
147
- filterQuery := bson.D {
148
- {"project_id" , projectID },
149
- {"name" , request .ExperimentName },
150
- {"is_removed" , false },
151
- }
152
- experimentCount , err := c .chaosExperimentOperator .CountChaosExperiments (ctx , filterQuery )
144
+ err := c .validateDuplicateExperimentName (ctx , projectID , request .ExperimentName )
153
145
if err != nil {
154
146
return nil , err
155
147
}
156
- if experimentCount > 0 {
157
- return nil , errors .New ("experiment name should be unique, duplicate experiment found with name: " + request .ExperimentName )
158
- }
159
148
160
149
newRequest , wfType , err := c .chaosExperimentService .ProcessExperiment (request , projectID , revID )
161
150
if err != nil {
@@ -240,18 +229,10 @@ func (c *ChaosExperimentHandler) UpdateChaosExperiment(ctx context.Context, requ
240
229
)
241
230
242
231
// Check if the experiment_name exists under same project
243
- filterQuery := bson.D {
244
- {"project_id" , projectID },
245
- {"name" , request .ExperimentName },
246
- {"is_removed" , false },
247
- }
248
- experimentCount , err := c .chaosExperimentOperator .CountChaosExperiments (ctx , filterQuery )
232
+ err := c .validateDuplicateExperimentName (ctx , projectID , request .ExperimentName )
249
233
if err != nil {
250
234
return nil , err
251
235
}
252
- if experimentCount > 0 {
253
- return nil , errors .New ("experiment name should be unique, duplicate experiment found with name: " + request .ExperimentName )
254
- }
255
236
256
237
newRequest , wfType , err := c .chaosExperimentService .ProcessExperiment (request , projectID , revID )
257
238
if err != nil {
@@ -1317,3 +1298,21 @@ func (c *ChaosExperimentHandler) GetProbesInExperimentRun(ctx context.Context, p
1317
1298
1318
1299
return probeDetails , nil
1319
1300
}
1301
+
1302
+ // validateDuplicateExperimentName validates if the name of experiment is duplicate
1303
+ func (c * ChaosExperimentHandler ) validateDuplicateExperimentName (ctx context.Context , projectID , name string ) error {
1304
+ filterQuery := bson.D {
1305
+ {"project_id" , projectID },
1306
+ {"name" , name },
1307
+ {"is_removed" , false },
1308
+ }
1309
+ experimentCount , err := c .chaosExperimentOperator .CountChaosExperiments (ctx , filterQuery )
1310
+ if err != nil {
1311
+ return err
1312
+ }
1313
+ if experimentCount > 0 {
1314
+ return errors .New ("experiment name should be unique, duplicate experiment found with name: " + name )
1315
+ }
1316
+
1317
+ return nil
1318
+ }
0 commit comments