@@ -161,57 +161,28 @@ func addBucketLifecycle(ctx context.Context, client MinioClient, params user_api
161
161
162
162
opts := ilm.LifecycleOptions {}
163
163
164
- // Verify if transition items are set
165
- if params .Body .ExpiryDate == "" && params .Body .ExpiryDays == 0 {
166
- if params .Body .TransitionDate != "" && params .Body .TransitionDays != 0 {
167
- return errors .New ("only one transition configuration can be set (days or date)" )
168
- }
169
-
170
- if params .Body .ExpiryDate != "" || params .Body .ExpiryDays != 0 {
171
- return errors .New ("expiry cannot be set when transition is being configured" )
172
- }
173
-
174
- if params .Body .NoncurrentversionExpirationDays != 0 {
175
- return errors .New ("non current version Expiration Days cannot be set when transition is being configured" )
176
- }
177
-
178
- if params .Body .TransitionDate != "" {
179
- opts = ilm.LifecycleOptions {
180
- ID : id ,
181
- Prefix : params .Body .Prefix ,
182
- Status : ! params .Body .Disable ,
183
- IsTagsSet : params .Body .Tags != "" ,
184
- Tags : params .Body .Tags ,
185
- TransitionDate : params .Body .TransitionDate ,
186
- StorageClass : strings .ToUpper (params .Body .StorageClass ),
187
- ExpiredObjectDeleteMarker : params .Body .ExpiredObjectDeleteMarker ,
188
- NoncurrentVersionTransitionDays : int (params .Body .NoncurrentversionTransitionDays ),
189
- NoncurrentVersionTransitionStorageClass : strings .ToUpper (params .Body .NoncurrentversionTransitionStorageClass ),
190
- }
191
- } else if params .Body .TransitionDays != 0 {
192
- opts = ilm.LifecycleOptions {
193
- ID : id ,
194
- Prefix : params .Body .Prefix ,
195
- Status : ! params .Body .Disable ,
196
- IsTagsSet : params .Body .Tags != "" ,
197
- Tags : params .Body .Tags ,
198
- TransitionDays : strconv .Itoa (int (params .Body .TransitionDays )),
199
- StorageClass : strings .ToUpper (params .Body .StorageClass ),
200
- ExpiredObjectDeleteMarker : params .Body .ExpiredObjectDeleteMarker ,
201
- NoncurrentVersionTransitionDays : int (params .Body .NoncurrentversionTransitionDays ),
202
- NoncurrentVersionTransitionStorageClass : strings .ToUpper (params .Body .NoncurrentversionTransitionStorageClass ),
203
- }
204
- }
205
- } else if params .Body .TransitionDate == "" && params .Body .TransitionDays == 0 {
206
- // Verify if expiry items are set
207
- if params .Body .ExpiryDate != "" && params .Body .ExpiryDays != 0 {
164
+ // Verify if transition rule is requested
165
+ if params .Body .Type == models .AddBucketLifecycleTypeTransition {
166
+ if params .Body .TransitionDays == 0 && params .Body .NoncurrentversionTransitionDays == 0 {
208
167
return errors .New ("only one expiry configuration can be set (days or date)" )
209
168
}
210
169
211
- if params .Body .TransitionDate != "" || params .Body .TransitionDays != 0 {
212
- return errors .New ("transition cannot be set when expiry is being configured" )
170
+ opts = ilm.LifecycleOptions {
171
+ ID : id ,
172
+ Prefix : params .Body .Prefix ,
173
+ Status : ! params .Body .Disable ,
174
+ IsTagsSet : params .Body .Tags != "" ,
175
+ Tags : params .Body .Tags ,
176
+ TransitionDays : strconv .Itoa (int (params .Body .TransitionDays )),
177
+ StorageClass : strings .ToUpper (params .Body .StorageClass ),
178
+ ExpiredObjectDeleteMarker : params .Body .ExpiredObjectDeleteMarker ,
179
+ NoncurrentVersionTransitionDays : int (params .Body .NoncurrentversionTransitionDays ),
180
+ NoncurrentVersionTransitionStorageClass : strings .ToUpper (params .Body .NoncurrentversionTransitionStorageClass ),
181
+ IsTransitionDaysSet : params .Body .TransitionDays != 0 ,
182
+ IsNoncurrentVersionTransitionDaysSet : params .Body .NoncurrentversionTransitionDays != 0 ,
213
183
}
214
-
184
+ } else if params .Body .Type == models .AddBucketLifecycleTypeExpiry {
185
+ // Verify if expiry items are set
215
186
if params .Body .NoncurrentversionTransitionDays != 0 {
216
187
return errors .New ("non current version Transition Days cannot be set when expiry is being configured" )
217
188
}
@@ -220,33 +191,20 @@ func addBucketLifecycle(ctx context.Context, client MinioClient, params user_api
220
191
return errors .New ("non current version Transition Storage Class cannot be set when expiry is being configured" )
221
192
}
222
193
223
- if params .Body .ExpiryDate != "" {
224
- opts = ilm.LifecycleOptions {
225
- ID : id ,
226
- Prefix : params .Body .Prefix ,
227
- Status : ! params .Body .Disable ,
228
- IsTagsSet : params .Body .Tags != "" ,
229
- Tags : params .Body .Tags ,
230
- ExpiryDate : params .Body .ExpiryDate ,
231
- ExpiredObjectDeleteMarker : params .Body .ExpiredObjectDeleteMarker ,
232
- NoncurrentVersionExpirationDays : int (params .Body .NoncurrentversionExpirationDays ),
233
- }
234
- } else if params .Body .ExpiryDays != 0 {
235
- opts = ilm.LifecycleOptions {
236
- ID : id ,
237
- Prefix : params .Body .Prefix ,
238
- Status : ! params .Body .Disable ,
239
- IsTagsSet : params .Body .Tags != "" ,
240
- Tags : params .Body .Tags ,
241
- ExpiryDays : strconv .Itoa (int (params .Body .ExpiryDays )),
242
- ExpiredObjectDeleteMarker : params .Body .ExpiredObjectDeleteMarker ,
243
- NoncurrentVersionExpirationDays : int (params .Body .NoncurrentversionExpirationDays ),
244
- }
194
+ opts = ilm.LifecycleOptions {
195
+ ID : id ,
196
+ Prefix : params .Body .Prefix ,
197
+ Status : ! params .Body .Disable ,
198
+ IsTagsSet : params .Body .Tags != "" ,
199
+ Tags : params .Body .Tags ,
200
+ ExpiryDays : strconv .Itoa (int (params .Body .ExpiryDays )),
201
+ ExpiredObjectDeleteMarker : params .Body .ExpiredObjectDeleteMarker ,
202
+ NoncurrentVersionExpirationDays : int (params .Body .NoncurrentversionExpirationDays ),
245
203
}
246
204
247
205
} else {
248
206
// Non set, we return error
249
- return errors .New ("no valid configuration is set " )
207
+ return errors .New ("no valid configuration requested " )
250
208
}
251
209
252
210
var err2 * probe.Error
@@ -335,7 +293,7 @@ func editBucketLifecycle(ctx context.Context, client MinioClient, params user_ap
335
293
336
294
} else {
337
295
// Non set, we return error
338
- return errors .New ("transition and expiry cannot be set for the same rule " )
296
+ return errors .New ("no valid configuration requested " )
339
297
}
340
298
341
299
var err2 * probe.Error
0 commit comments