Skip to content

Commit 779f2a8

Browse files
Fix empty version in health report download (#3341)
1 parent f47c444 commit 779f2a8

File tree

4 files changed

+12
-30
lines changed

4 files changed

+12
-30
lines changed

api/admin_client_mock.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ var (
4747
minioHealMock func(ctx context.Context, bucket, prefix string, healOpts madmin.HealOpts, clientToken string,
4848
forceStart, forceStop bool) (healStart madmin.HealStartSuccess, healTaskStatus madmin.HealTaskStatus, err error)
4949

50-
minioServerHealthInfoMock func(ctx context.Context, healthDataTypes []madmin.HealthDataType, deadline time.Duration) (interface{}, string, error)
50+
minioServerHealthInfoMock func(ctx context.Context, deadline time.Duration) (interface{}, string, error)
5151

5252
minioListPoliciesMock func() (map[string]*iampolicy.Policy, error)
5353
minioGetPolicyMock func(name string) (*iampolicy.Policy, error)
@@ -174,8 +174,8 @@ func (ac AdminClientMock) heal(ctx context.Context, bucket, prefix string, healO
174174
return minioHealMock(ctx, bucket, prefix, healOpts, clientToken, forceStart, forceStop)
175175
}
176176

177-
func (ac AdminClientMock) serverHealthInfo(ctx context.Context, healthDataTypes []madmin.HealthDataType, deadline time.Duration) (interface{}, string, error) {
178-
return minioServerHealthInfoMock(ctx, healthDataTypes, deadline)
177+
func (ac AdminClientMock) serverHealthInfo(ctx context.Context, deadline time.Duration) (interface{}, string, error) {
178+
return minioServerHealthInfoMock(ctx, deadline)
179179
}
180180

181181
func (ac AdminClientMock) addOrUpdateIDPConfig(_ context.Context, _, _, _ string, _ bool) (restart bool, err error) {

api/admin_health_info.go

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
"github.com/minio/console/pkg/utils"
3232

3333
subnet "github.com/minio/console/pkg/subnet"
34-
"github.com/minio/madmin-go/v3"
3534
mc "github.com/minio/mc/cmd"
3635
"github.com/minio/websocket"
3736
)
@@ -44,21 +43,7 @@ func startHealthInfo(ctx context.Context, conn WSConn, client MinioAdmin, deadli
4443
}
4544

4645
// Fetch info of all servers (cluster or single server)
47-
healthDataTypes := []madmin.HealthDataType{
48-
madmin.HealthDataTypeMinioInfo,
49-
madmin.HealthDataTypeMinioConfig,
50-
madmin.HealthDataTypeSysCPU,
51-
madmin.HealthDataTypeSysDriveHw,
52-
madmin.HealthDataTypeSysDocker,
53-
madmin.HealthDataTypeSysOsInfo,
54-
madmin.HealthDataTypeSysLoad,
55-
madmin.HealthDataTypeSysMem,
56-
madmin.HealthDataTypeSysNet,
57-
madmin.HealthDataTypeSysProcess,
58-
}
59-
var err error
60-
// Fetch info of all servers (cluster or single server)
61-
healthInfo, version, err := client.serverHealthInfo(ctx, healthDataTypes, *deadline)
46+
healthInfo, version, err := client.serverHealthInfo(ctx, *deadline)
6247
if err != nil {
6348
return err
6449
}
@@ -75,7 +60,7 @@ func startHealthInfo(ctx context.Context, conn WSConn, client MinioAdmin, deadli
7560
}
7661

7762
ctx = context.WithValue(ctx, utils.ContextClientIP, conn.remoteAddress())
78-
err = sendHealthInfoToSubnet(ctx, healthInfo, client)
63+
err = sendHealthInfoToSubnet(ctx, compressedDiag, client)
7964
report := messageReport{
8065
Encoded: encodedDiag,
8166
ServerHealthInfo: healthInfo,
@@ -116,7 +101,7 @@ func updateMcGlobals(subnetTokenConfig subnet.LicenseTokenConfig) error {
116101
return nil
117102
}
118103

119-
func sendHealthInfoToSubnet(ctx context.Context, healthInfo interface{}, client MinioAdmin) error {
104+
func sendHealthInfoToSubnet(ctx context.Context, compressedHealthInfo []byte, client MinioAdmin) error {
120105
filename := fmt.Sprintf("health_%d.json.gz", time.Now().Unix())
121106
subnetTokenConfig, e := GetSubnetKeyFromMinIOConfig(ctx, client)
122107
if e != nil {
@@ -135,10 +120,6 @@ func sendHealthInfoToSubnet(ctx context.Context, healthInfo interface{}, client
135120
return e
136121
}
137122
}
138-
compressedHealthInfo, e := mc.TarGZHealthInfo(healthInfo, madmin.HealthInfoVersion)
139-
if e != nil {
140-
return e
141-
}
142123
e = os.WriteFile(filename, compressedHealthInfo, 0o666)
143124
if e != nil {
144125
return e

api/admin_health_info_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ func Test_serverHealthInfo(t *testing.T) {
119119
// make testReceiver channel
120120
testReceiver = make(chan madmin.HealthInfo, len(tt.args.mockMessages))
121121
// mock function same for all tests, changes mockMessages
122-
minioServerHealthInfoMock = func(_ context.Context, _ []madmin.HealthDataType,
122+
minioServerHealthInfoMock = func(_ context.Context,
123123
_ time.Duration,
124124
) (interface{}, string, error) {
125125
info := tt.args.mockMessages[0]

api/client-admin.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ type MinioAdmin interface {
8585
addRemoteBucket(ctx context.Context, bucket string, target *madmin.BucketTarget) (string, error)
8686
// Account password management
8787
changePassword(ctx context.Context, accessKey, secretKey string) error
88-
serverHealthInfo(ctx context.Context, healthDataTypes []madmin.HealthDataType, deadline time.Duration) (interface{}, string, error)
88+
serverHealthInfo(ctx context.Context, deadline time.Duration) (interface{}, string, error)
8989
// List Tiers
9090
listTiers(ctx context.Context) ([]*madmin.TierConfig, error)
9191
// Tier Info
@@ -389,13 +389,15 @@ func (ac AdminClient) getBucketQuota(ctx context.Context, bucket string) (madmin
389389
}
390390

391391
// serverHealthInfo implements mc.ServerHealthInfo - Connect to a minio server and call Health Info Management API
392-
func (ac AdminClient) serverHealthInfo(ctx context.Context, healthDataTypes []madmin.HealthDataType, deadline time.Duration) (interface{}, string, error) {
392+
func (ac AdminClient) serverHealthInfo(ctx context.Context, deadline time.Duration) (interface{}, string, error) {
393393
info := madmin.HealthInfo{}
394394
var healthInfo interface{}
395395
var version string
396396
var tryCount int
397397
for info.Version == "" && tryCount < 10 {
398-
resp, version, err := ac.Client.ServerHealthInfo(ctx, healthDataTypes, deadline, "")
398+
var resp *http.Response
399+
var err error
400+
resp, version, err = ac.Client.ServerHealthInfo(ctx, madmin.HealthDataTypesList, deadline, "")
399401
if err != nil {
400402
return nil, version, err
401403
}
@@ -407,7 +409,6 @@ func (ac AdminClient) serverHealthInfo(ctx context.Context, healthDataTypes []ma
407409
}
408410
tryCount++
409411
time.Sleep(2 * time.Second)
410-
411412
}
412413
if info.Version == "" {
413414
return nil, "", ErrHealthReportFail

0 commit comments

Comments
 (0)