Skip to content

Commit 31df8cc

Browse files
harshavardhanaminio-trusted
authored andcommitted
fix: properly support FS/Gateway mode
1 parent 63582de commit 31df8cc

File tree

5 files changed

+51
-23
lines changed

5 files changed

+51
-23
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ require (
1818
github.com/minio/cli v1.22.0
1919
github.com/minio/direct-csi v1.3.5-0.20210601185811-f7776f7961bf
2020
github.com/minio/kes v0.11.0
21-
github.com/minio/madmin-go v1.0.12
21+
github.com/minio/madmin-go v1.0.17
2222
github.com/minio/mc v0.0.0-20210626002108-cebf3318546f
2323
github.com/minio/minio-go/v7 v7.0.13-0.20210715203016-9e713532886e
2424
github.com/minio/operator v0.0.0-20210616045941-65f31f5f78ae

go.sum

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -877,8 +877,9 @@ github.com/minio/filepath v1.0.0/go.mod h1:/nRZA2ldl5z6jT9/KQuvZcQlxZIMQoFFQPvEX
877877
github.com/minio/kes v0.11.0 h1:8ma6OCVSxKT50b1uYXLJro3m7PmZtCLxBaTddQexI5k=
878878
github.com/minio/kes v0.11.0/go.mod h1:mTF1Bv8YVEtQqF/B7Felp4tLee44Pp+dgI0rhCvgNg8=
879879
github.com/minio/madmin-go v1.0.6/go.mod h1:BK+z4XRx7Y1v8SFWXsuLNqQqnq5BO/axJ8IDJfgyvfs=
880-
github.com/minio/madmin-go v1.0.12 h1:5FjqXgPR6rK6QX+HS88u+FCAiFLKleAiMuRvdDhWNPc=
881880
github.com/minio/madmin-go v1.0.12/go.mod h1:BK+z4XRx7Y1v8SFWXsuLNqQqnq5BO/axJ8IDJfgyvfs=
881+
github.com/minio/madmin-go v1.0.17 h1:VMEn4nMKf0X3uNH0u+fZcn17KSwVkQGwyER/igG556E=
882+
github.com/minio/madmin-go v1.0.17/go.mod h1:4nl9hvLWFnwCjkLfZSsZXEHgDODa2XSG6xGlIZyQ2oA=
882883
github.com/minio/mc v0.0.0-20210626002108-cebf3318546f h1:hyFvo5hSFw2K417YvDr/vAKlgCG69uTuhZW/5LNdL0U=
883884
github.com/minio/mc v0.0.0-20210626002108-cebf3318546f/go.mod h1:tuaonkPjVApCXkbtKENHBtsqUf7YTV33qmFrC+Pgp5g=
884885
github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
@@ -1103,8 +1104,9 @@ github.com/securego/gosec/v2 v2.3.0/go.mod h1:UzeVyUXbxukhLeHKV3VVqo7HdoQR9MrRfF
11031104
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
11041105
github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada h1:WokF3GuxBeL+n4Lk4Fa8v9mbdjlrl7bHuneF4N1bk2I=
11051106
github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc=
1106-
github.com/shirou/gopsutil/v3 v3.21.4 h1:XB/+p+kVnyYLuPHCfa99lxz2aJyvVhnyd+FxZqH/k7M=
11071107
github.com/shirou/gopsutil/v3 v3.21.4/go.mod h1:ghfMypLDrFSWN2c9cDYFLHyynQ+QUht0cv/18ZqVczw=
1108+
github.com/shirou/gopsutil/v3 v3.21.6 h1:vU7jrp1Ic/2sHB7w6UNs7MIkn7ebVtTb5D9j45o9VYE=
1109+
github.com/shirou/gopsutil/v3 v3.21.6/go.mod h1:JfVbDpIBLVzT8oKbvMg9P3wEIMDDpVn+LwHTKj0ST88=
11081110
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
11091111
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
11101112
github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
@@ -1190,8 +1192,9 @@ github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eN
11901192
github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=
11911193
github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=
11921194
github.com/tklauser/go-sysconf v0.3.4/go.mod h1:Cl2c8ZRWfHD5IrfHo9VN+FX9kCFjIOyVklgXycLB6ek=
1193-
github.com/tklauser/go-sysconf v0.3.5 h1:uu3Xl4nkLzQfXNsWn15rPc/HQCJKObbt1dKJeWp3vU4=
11941195
github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI=
1196+
github.com/tklauser/go-sysconf v0.3.6 h1:oc1sJWvKkmvIxhDHeKWvZS4f6AW+YcoguSfRF2/Hmo4=
1197+
github.com/tklauser/go-sysconf v0.3.6/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI=
11951198
github.com/tklauser/numcpus v0.2.1/go.mod h1:9aU+wOc6WjUIZEwWMP62PL/41d65P+iks1gBkr4QyP8=
11961199
github.com/tklauser/numcpus v0.2.2 h1:oyhllyrScuYI6g+h/zUvNXNp1wy7x8qQy3t/piefldA=
11971200
github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM=

restapi/admin_health_info_test.go

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,12 @@ func Test_serverHealthInfo(t *testing.T) {
6060
mockMessages: []madmin.HealthInfo{
6161
{
6262
Perf: madmin.PerfInfo{
63-
NetParallel: madmin.NetPerfInfo{
64-
Addr: "someaddress",
65-
},
63+
NetParallel: madmin.NetPerfInfo{},
6664
},
6765
},
6866
{
6967
Perf: madmin.PerfInfo{
70-
NetParallel: madmin.NetPerfInfo{
71-
Addr: "otheraddress",
72-
},
68+
NetParallel: madmin.NetPerfInfo{},
7369
},
7470
},
7571
},
@@ -92,9 +88,7 @@ func Test_serverHealthInfo(t *testing.T) {
9288
mockMessages: []madmin.HealthInfo{
9389
{
9490
Perf: madmin.PerfInfo{
95-
NetParallel: madmin.NetPerfInfo{
96-
Addr: "address",
97-
},
91+
NetParallel: madmin.NetPerfInfo{},
9892
},
9993
},
10094
},
@@ -117,9 +111,7 @@ func Test_serverHealthInfo(t *testing.T) {
117111
mockMessages: []madmin.HealthInfo{
118112
{
119113
Perf: madmin.PerfInfo{
120-
NetParallel: madmin.NetPerfInfo{
121-
Addr: "address",
122-
},
114+
NetParallel: madmin.NetPerfInfo{},
123115
},
124116
},
125117
},

restapi/user_bucket_quota.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,15 @@ func setBucketQuota(ctx context.Context, ac *adminClient, bucket *string, bucket
9696
}
9797

9898
func getBucketQuotaResponse(session *models.Principal, params user_api.GetBucketQuotaParams) (*models.BucketQuota, *models.Error) {
99+
if !isErasureBackend() {
100+
return &models.BucketQuota{}, nil
101+
}
102+
99103
mAdmin, err := newAdminClient(session)
100104
if err != nil {
101105
return nil, prepareError(err)
102106
}
107+
103108
// create a minioClient interface implementation
104109
// defining the client to be used
105110
adminClient := adminClient{client: mAdmin}

restapi/user_buckets.go

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ import (
2121
"encoding/json"
2222
"fmt"
2323
"strings"
24+
"sync"
2425
"time"
2526

27+
"github.com/minio/madmin-go"
2628
"github.com/minio/mc/cmd"
2729
"github.com/minio/mc/pkg/probe"
2830
"github.com/minio/minio-go/v7"
@@ -98,7 +100,7 @@ func registerBucketsHandlers(api *operations.ConsoleAPI) {
98100
})
99101
// get bucket replication
100102
api.UserAPIGetBucketReplicationHandler = user_api.GetBucketReplicationHandlerFunc(func(params user_api.GetBucketReplicationParams, session *models.Principal) middleware.Responder {
101-
getBucketReplication, err := getBucketReplicationdResponse(session, params.BucketName)
103+
getBucketReplication, err := getBucketReplicationResponse(session, params.BucketName)
102104
if err != nil {
103105
return user_api.NewGetBucketReplicationDefault(500).WithPayload(&models.Error{Code: 500, Message: swag.String(err.Error())})
104106
}
@@ -198,7 +200,11 @@ func setBucketVersioningResponse(session *models.Principal, bucketName string, p
198200
return nil
199201
}
200202

201-
func getBucketReplicationdResponse(session *models.Principal, bucketName string) (*models.BucketReplicationResponse, error) {
203+
func getBucketReplicationResponse(session *models.Principal, bucketName string) (*models.BucketReplicationResponse, error) {
204+
if !isErasureBackend() {
205+
return &models.BucketReplicationResponse{}, nil
206+
}
207+
202208
ctx, cancel := context.WithTimeout(context.Background(), time.Second*20)
203209
defer cancel()
204210

@@ -242,13 +248,19 @@ func getBucketReplicationdResponse(session *models.Principal, bucketName string)
242248
}
243249

244250
// serialize output
245-
listBucketsResponse := &models.BucketReplicationResponse{
251+
bucketRResponse := &models.BucketReplicationResponse{
246252
Rules: rules,
247253
}
248-
return listBucketsResponse, nil
254+
return bucketRResponse, nil
249255
}
250256

251257
func getBucketVersionedResponse(session *models.Principal, bucketName string) (*models.BucketVersioningResponse, error) {
258+
if !isErasureBackend() {
259+
return &models.BucketVersioningResponse{
260+
IsVersioned: false,
261+
}, nil
262+
}
263+
252264
ctx, cancel := context.WithTimeout(context.Background(), time.Second*20)
253265
defer cancel()
254266

@@ -257,6 +269,7 @@ func getBucketVersionedResponse(session *models.Principal, bucketName string) (*
257269
LogError("error creating MinIO Client: %v", err)
258270
return nil, err
259271
}
272+
260273
// create a minioClient interface implementation
261274
// defining the client to be used
262275
minioClient := minioClient{client: mClient}
@@ -268,10 +281,17 @@ func getBucketVersionedResponse(session *models.Principal, bucketName string) (*
268281
}
269282

270283
// serialize output
271-
listBucketsResponse := &models.BucketVersioningResponse{
284+
bucketVResponse := &models.BucketVersioningResponse{
272285
IsVersioned: res.Status == "Enabled",
273286
}
274-
return listBucketsResponse, nil
287+
return bucketVResponse, nil
288+
}
289+
290+
var serverBackend madmin.BackendInfo
291+
var serverBackendOnce sync.Once
292+
293+
func isErasureBackend() bool {
294+
return serverBackend.Type == madmin.Erasure
275295
}
276296

277297
// getAccountInfo fetches a list of all buckets allowed to that particular client from MinIO Servers
@@ -281,9 +301,17 @@ func getAccountInfo(ctx context.Context, client MinioAdmin) ([]*models.Bucket, e
281301
return []*models.Bucket{}, err
282302
}
283303

304+
serverBackendOnce.Do(func() {
305+
serverBackend = info.Server
306+
})
307+
284308
var bucketInfos []*models.Bucket
285309
for _, bucket := range info.Buckets {
286-
bucketElem := &models.Bucket{Name: swag.String(bucket.Name), CreationDate: bucket.Created.Format(time.RFC3339), Size: int64(bucket.Size)}
310+
bucketElem := &models.Bucket{
311+
Name: swag.String(bucket.Name),
312+
Size: int64(bucket.Size),
313+
CreationDate: bucket.Created.Format(time.RFC3339),
314+
}
287315
bucketInfos = append(bucketInfos, bucketElem)
288316
}
289317
return bucketInfos, nil

0 commit comments

Comments
 (0)