Skip to content

Commit 6eb7c3f

Browse files
author
Benjamin Perez
committed
Added Exclude Folders & Exclude Prefixes support
Signed-off-by: Benjamin Perez <[email protected]>
1 parent 0d628f5 commit 6eb7c3f

File tree

17 files changed

+433
-194
lines changed

17 files changed

+433
-194
lines changed

integration/access_rules_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import (
3131
func Test_AddAccessRuleAPI(t *testing.T) {
3232
assert := assert.New(t)
3333

34-
AddBucket("testaccessruleadd", false, false, nil, nil)
34+
AddBucket("testaccessruleadd", false, nil, nil, nil)
3535

3636
type args struct {
3737
bucket string
@@ -111,7 +111,7 @@ func Test_AddAccessRuleAPI(t *testing.T) {
111111
func Test_GetAccessRulesAPI(t *testing.T) {
112112
assert := assert.New(t)
113113

114-
AddBucket("testaccessruleget", false, false, nil, nil)
114+
AddBucket("testaccessruleget", false, nil, nil, nil)
115115

116116
type args struct {
117117
bucket string
@@ -161,7 +161,7 @@ func Test_GetAccessRulesAPI(t *testing.T) {
161161
func Test_DeleteAccessRuleAPI(t *testing.T) {
162162
assert := assert.New(t)
163163

164-
AddBucket("testaccessruledelete", false, false, nil, nil)
164+
AddBucket("testaccessruledelete", false, nil, nil, nil)
165165

166166
type args struct {
167167
prefix string

integration/user_api_bucket_test.go

Lines changed: 41 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ import (
4242
type AddBucketOps struct {
4343
Name string
4444
Locking bool
45-
Versioning bool
45+
Versioning map[string]interface{}
4646
Quota map[string]interface{}
4747
Retention map[string]interface{}
4848
Endpoint *string
4949
UseToken *string
5050
}
5151

52-
func AddBucket(name string, locking, versioning bool, quota, retention map[string]interface{}) (*http.Response, error) {
52+
func AddBucket(name string, locking bool, versioning, quota, retention map[string]interface{}) (*http.Response, error) {
5353
return AddBucketWithOpts(&AddBucketOps{
5454
Name: name,
5555
Locking: locking,
@@ -142,11 +142,11 @@ func getTokenForEndpoint(endpoint string) string {
142142
return loginToken
143143
}
144144

145-
func setupBucket(name string, locking, versioning bool, quota, retention map[string]interface{}, assert *assert.Assertions, expected int) bool {
145+
func setupBucket(name string, locking bool, versioning, quota, retention map[string]interface{}, assert *assert.Assertions, expected int) bool {
146146
return setupBucketForEndpoint(name, locking, versioning, quota, retention, assert, expected, nil, nil)
147147
}
148148

149-
func setupBucketForEndpoint(name string, locking, versioning bool, quota, retention map[string]interface{}, assert *assert.Assertions, expected int, endpoint, endpointToken *string) bool {
149+
func setupBucketForEndpoint(name string, locking bool, versioning, quota, retention map[string]interface{}, assert *assert.Assertions, expected int, endpoint, endpointToken *string) bool {
150150
/*
151151
The intention of this function is to return either true or false to
152152
reduce the code by performing the verification in one place only.
@@ -751,7 +751,7 @@ func TestPutObjectsLegalholdStatus(t *testing.T) {
751751
status := "enabled"
752752

753753
// 1. Create bucket
754-
if !setupBucket(bucketName, true, true, nil, nil, assert, 200) {
754+
if !setupBucket(bucketName, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
755755
return
756756
}
757757

@@ -838,7 +838,7 @@ func TestGetBucketQuota(t *testing.T) {
838838
validBucket := "testgetbucketquota"
839839

840840
// 1. Create bucket
841-
if !setupBucket(validBucket, true, true, nil, nil, assert, 200) {
841+
if !setupBucket(validBucket, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
842842
return
843843
}
844844

@@ -915,7 +915,7 @@ func TestPutBucketQuota(t *testing.T) {
915915
validBucket := "testputbucketquota"
916916

917917
// 1. Create bucket
918-
if !setupBucket(validBucket, true, true, nil, nil, assert, 200) {
918+
if !setupBucket(validBucket, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
919919
return
920920
}
921921

@@ -974,7 +974,7 @@ func TestListBucketEvents(t *testing.T) {
974974
validBucket := "testlistbucketevents"
975975

976976
// 1. Create bucket
977-
if !setupBucket(validBucket, true, true, nil, nil, assert, 200) {
977+
if !setupBucket(validBucket, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
978978
return
979979
}
980980

@@ -1032,7 +1032,7 @@ func TestDeleteObjectsRetentionStatus(t *testing.T) {
10321032
validPrefix := encodeBase64(fileName)
10331033

10341034
// 1. Create bucket
1035-
if !setupBucket(bucketName, true, true, nil, nil, assert, 200) {
1035+
if !setupBucket(bucketName, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
10361036
return
10371037
}
10381038

@@ -1139,7 +1139,7 @@ func TestBucketSetPolicy(t *testing.T) {
11391139
validBucketName := "testbucketsetpolicy"
11401140

11411141
// 1. Create bucket
1142-
if !setupBucket(validBucketName, true, true, nil, nil, assert, 200) {
1142+
if !setupBucket(validBucketName, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
11431143
return
11441144
}
11451145

@@ -1200,7 +1200,7 @@ func TestRestoreObjectToASelectedVersion(t *testing.T) {
12001200
validPrefix := encodeBase64(fileName)
12011201

12021202
// 1. Create bucket
1203-
if !setupBucket(bucketName, true, true, nil, nil, assert, 200) {
1203+
if !setupBucket(bucketName, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
12041204
return
12051205
}
12061206

@@ -1288,7 +1288,7 @@ func TestPutBucketsTags(t *testing.T) {
12881288
// 1. Create the bucket
12891289
assert := assert.New(t)
12901290
validBucketName := "testputbuckettags1"
1291-
if !setupBucket(validBucketName, false, false, nil, nil, assert, 200) {
1291+
if !setupBucket(validBucketName, false, nil, nil, nil, assert, 200) {
12921292
return
12931293
}
12941294

@@ -1346,7 +1346,7 @@ func TestGetsTheMetadataOfAnObject(t *testing.T) {
13461346
tags["tag"] = "testputobjecttagbucketonetagone"
13471347

13481348
// 1. Create the bucket
1349-
if !setupBucket(bucketName, false, false, nil, nil, assert, 200) {
1349+
if !setupBucket(bucketName, false, nil, nil, nil, assert, 200) {
13501350
return
13511351
}
13521352

@@ -1417,7 +1417,7 @@ func TestPutObjectsRetentionStatus(t *testing.T) {
14171417
prefix := encodeBase64(fileName)
14181418

14191419
// 1. Create bucket
1420-
if !setupBucket(bucketName, true, true, nil, nil, assert, 200) {
1420+
if !setupBucket(bucketName, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
14211421
return
14221422
}
14231423

@@ -1515,7 +1515,7 @@ func TestShareObjectOnURL(t *testing.T) {
15151515
versionID := "null"
15161516

15171517
// 1. Create the bucket
1518-
if !setupBucket(bucketName, false, false, nil, nil, assert, 200) {
1518+
if !setupBucket(bucketName, false, nil, nil, nil, assert, 200) {
15191519
return
15201520
}
15211521

@@ -1589,7 +1589,7 @@ func TestListObjects(t *testing.T) {
15891589
fileName := "testlistobjecttobucket1.txt"
15901590

15911591
// 1. Create the bucket
1592-
if !setupBucket(bucketName, false, false, nil, nil, assert, 200) {
1592+
if !setupBucket(bucketName, false, nil, nil, nil, assert, 200) {
15931593
return
15941594
}
15951595

@@ -1637,7 +1637,7 @@ func TestDeleteObject(t *testing.T) {
16371637
numberOfFiles := 2
16381638

16391639
// 1. Create bucket
1640-
if !setupBucket(bucketName, true, true, nil, nil, assert, 200) {
1640+
if !setupBucket(bucketName, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
16411641
return
16421642
}
16431643

@@ -1703,7 +1703,7 @@ func TestUploadObjectToBucket(t *testing.T) {
17031703
fileName := "sample.txt"
17041704

17051705
// 1. Create the bucket
1706-
if !setupBucket(bucketName, false, false, nil, nil, assert, 200) {
1706+
if !setupBucket(bucketName, false, nil, nil, nil, assert, 200) {
17071707
return
17081708
}
17091709

@@ -1738,7 +1738,7 @@ func TestDownloadObject(t *testing.T) {
17381738
}
17391739

17401740
// 1. Create the bucket
1741-
if !setupBucket(bucketName, true, true, nil, nil, assert, 200) {
1741+
if !setupBucket(bucketName, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
17421742
return
17431743
}
17441744

@@ -1800,7 +1800,7 @@ func TestDeleteMultipleObjects(t *testing.T) {
18001800
fileName := "testdeletemultipleobjs"
18011801

18021802
// 1. Create a bucket for this particular test
1803-
if !setupBucket(bucketName, false, false, nil, nil, assert, 200) {
1803+
if !setupBucket(bucketName, false, nil, nil, nil, assert, 200) {
18041804
return
18051805
}
18061806

@@ -1877,7 +1877,7 @@ func TestPutObjectTag(t *testing.T) {
18771877
versionID := "null"
18781878

18791879
// 1. Create the bucket
1880-
if !setupBucket(bucketName, false, false, nil, nil, assert, 200) {
1880+
if !setupBucket(bucketName, false, nil, nil, nil, assert, 200) {
18811881
return
18821882
}
18831883

@@ -1951,7 +1951,7 @@ func TestBucketRetention(t *testing.T) {
19511951
retention["mode"] = "compliance"
19521952
retention["unit"] = "years"
19531953
retention["validity"] = 2
1954-
if !setupBucket("setbucketretention1", true, true, nil, retention, assert, 200) {
1954+
if !setupBucket("setbucketretention1", true, map[string]interface{}{"enabled": true}, nil, retention, assert, 200) {
19551955
return
19561956
}
19571957

@@ -2002,7 +2002,7 @@ func TestBucketInformationGenericErrorResponse(t *testing.T) {
20022002

20032003
// 1. Create the bucket
20042004
assert := assert.New(t)
2005-
if !setupBucket("bucketinformation2", false, false, nil, nil, assert, 200) {
2005+
if !setupBucket("bucketinformation2", false, nil, nil, nil, assert, 200) {
20062006
return
20072007
}
20082008

@@ -2047,7 +2047,7 @@ func TestBucketInformationSuccessfulResponse(t *testing.T) {
20472047

20482048
// 1. Create the bucket
20492049
assert := assert.New(t)
2050-
if !setupBucket("bucketinformation1", false, false, nil, nil, assert, 200) {
2050+
if !setupBucket("bucketinformation1", false, nil, nil, nil, assert, 200) {
20512051
return
20522052
}
20532053

@@ -2160,7 +2160,7 @@ func TestListBuckets(t *testing.T) {
21602160
// 1. Create buckets
21612161
numberOfBuckets := 3
21622162
for i := 1; i <= numberOfBuckets; i++ {
2163-
if !setupBucket("testlistbuckets"+strconv.Itoa(i), false, false, nil, nil, assert, 200) {
2163+
if !setupBucket("testlistbuckets"+strconv.Itoa(i), false, nil, nil, nil, assert, 200) {
21642164
return
21652165
}
21662166
}
@@ -2267,7 +2267,7 @@ func TestBucketVersioning(t *testing.T) {
22672267

22682268
requestDataBody := bytes.NewReader(requestDataJSON)
22692269

2270-
if !setupBucket("test2", true, false, nil, nil, assert, 200) {
2270+
if !setupBucket("test2", true, nil, nil, nil, assert, 200) {
22712271
return
22722272
}
22732273

@@ -2335,7 +2335,7 @@ func TestSetBucketTags(t *testing.T) {
23352335
}
23362336

23372337
// put bucket
2338-
if !setupBucket("test4", false, false, nil, nil, assert, 200) {
2338+
if !setupBucket("test4", false, nil, nil, nil, assert, 200) {
23392339
return
23402340
}
23412341

@@ -2402,7 +2402,7 @@ func TestGetBucket(t *testing.T) {
24022402
Timeout: 2 * time.Second,
24032403
}
24042404

2405-
if !setupBucket("test3", false, false, nil, nil, assert, 200) {
2405+
if !setupBucket("test3", false, nil, nil, nil, assert, 200) {
24062406
return
24072407
}
24082408

@@ -2455,7 +2455,7 @@ func TestAddBucket(t *testing.T) {
24552455
}
24562456
for _, tt := range tests {
24572457
t.Run(tt.name, func(t *testing.T) {
2458-
if !setupBucket(tt.args.bucketName, false, false, nil, nil, assert, tt.expectedStatus) {
2458+
if !setupBucket(tt.args.bucketName, false, nil, nil, nil, assert, tt.expectedStatus) {
24592459
return
24602460
}
24612461
})
@@ -3000,7 +3000,7 @@ func TestReturnsTheStatusOfObjectLockingSupportOnTheBucket(t *testing.T) {
30003000
)
30013001
}
30023002

3003-
func SetBucketVersioning(bucketName string, versioning bool, endpoint, useToken *string) (*http.Response, error) {
3003+
func SetBucketVersioning(bucketName string, versioning map[string]interface{}, endpoint, useToken *string) (*http.Response, error) {
30043004
/*
30053005
Helper function to set Bucket Versioning
30063006
*/
@@ -3037,15 +3037,15 @@ func TestSetBucketVersioning(t *testing.T) {
30373037
assert := assert.New(t)
30383038
bucket := "test-set-bucket-versioning"
30393039
locking := false
3040-
versioning := true
3040+
versioning := map[string]interface{}{"enabled": true}
30413041

30423042
// 1. Create bucket with versioning as true and locking as false
30433043
if !setupBucket(bucket, locking, versioning, nil, nil, assert, 200) {
30443044
return
30453045
}
30463046

30473047
// 2. Set versioning as False i.e Suspend versioning
3048-
response, err := SetBucketVersioning(bucket, false, nil, nil)
3048+
response, err := SetBucketVersioning(bucket, map[string]interface{}{"enabled": false}, nil, nil)
30493049
assert.Nil(err)
30503050
if err != nil {
30513051
log.Println(err)
@@ -3118,12 +3118,11 @@ func TestEnableBucketEncryption(t *testing.T) {
31183118
assert := assert.New(t)
31193119
bucketName := "test-enable-bucket-encryption"
31203120
locking := false
3121-
versioning := false
31223121
encType := "sse-s3"
31233122
kmsKeyID := ""
31243123

31253124
// 1. Add bucket
3126-
if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 200) {
3125+
if !setupBucket(bucketName, locking, nil, nil, nil, assert, 200) {
31273126
return
31283127
}
31293128

@@ -3381,7 +3380,6 @@ func TestBucketLifeCycle(t *testing.T) {
33813380
assert := assert.New(t)
33823381
bucketName := "test-bucket-life-cycle"
33833382
locking := false
3384-
versioning := false
33853383
ltype := "expiry"
33863384
prefix := ""
33873385
tags := ""
@@ -3392,7 +3390,7 @@ func TestBucketLifeCycle(t *testing.T) {
33923390
var noncurrentversionExpirationDays int64
33933391

33943392
// 1. Add bucket
3395-
if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 200) {
3393+
if !setupBucket(bucketName, locking, nil, nil, nil, assert, 200) {
33963394
return
33973395
}
33983396

@@ -3597,12 +3595,11 @@ func TestAccessRule(t *testing.T) {
35973595
assert := assert.New(t)
35983596
bucketName := "test-access-rule-bucket"
35993597
locking := false
3600-
versioning := false
36013598
prefix := "prefix"
36023599
access := "readonly"
36033600

36043601
// 1. Add bucket
3605-
if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 200) {
3602+
if !setupBucket(bucketName, locking, nil, nil, nil, assert, 200) {
36063603
return
36073604
}
36083605

@@ -3846,16 +3843,16 @@ func TestAddRemoteBucket(t *testing.T) {
38463843
fmt.Println("targetBucket: ", targetBucket)
38473844

38483845
// 1. Create bucket
3849-
if !setupBucket("source", true, true, nil, nil, assert, 200) {
3846+
if !setupBucket("source", true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
38503847
return
38513848
}
38523849
// 1.1. Create target bucket
38533850
targetEndpoint := "http://localhost:9092"
38543851
targetToken := getTokenForEndpoint(targetEndpoint)
3855-
if !setupBucketForEndpoint(targetBucket, true, true, nil, nil, assert, 200, &targetEndpoint, &targetToken) {
3852+
if !setupBucketForEndpoint(targetBucket, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200, &targetEndpoint, &targetToken) {
38563853
log.Println("bucket already exists")
38573854
}
3858-
_, err := SetBucketVersioning(targetBucket, false, &targetURL, &targetToken)
3855+
_, err := SetBucketVersioning(targetBucket, map[string]interface{}{"enabled": false}, &targetURL, &targetToken)
38593856
if err != nil {
38603857
log.Println("bucket already has versioning")
38613858
}
@@ -3905,16 +3902,16 @@ func TestDeleteRemoteBucket(t *testing.T) {
39053902
fmt.Println("targetBucket: ", targetBucket)
39063903

39073904
// 1. Create bucket
3908-
if !setupBucket("deletesource", true, true, nil, nil, assert, 200) {
3905+
if !setupBucket("deletesource", true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200) {
39093906
return
39103907
}
39113908
// 1.1. Create target bucket
39123909
targetEndpoint := "http://localhost:9092"
39133910
targetToken := getTokenForEndpoint(targetEndpoint)
3914-
if !setupBucketForEndpoint(targetBucket, true, true, nil, nil, assert, 200, &targetEndpoint, &targetToken) {
3911+
if !setupBucketForEndpoint(targetBucket, true, map[string]interface{}{"enabled": true}, nil, nil, assert, 200, &targetEndpoint, &targetToken) {
39153912
log.Println("bucket already exists")
39163913
}
3917-
_, err := SetBucketVersioning(targetBucket, false, &targetURL, &targetToken)
3914+
_, err := SetBucketVersioning(targetBucket, map[string]interface{}{"enabled": false}, &targetURL, &targetToken)
39183915
if err != nil {
39193916
log.Println("bucket already has versioning")
39203917
}

0 commit comments

Comments
 (0)