diff --git a/api/admin_client_mock.go b/api/admin_client_mock.go index 531dcfc45..e3514c6da 100644 --- a/api/admin_client_mock.go +++ b/api/admin_client_mock.go @@ -47,7 +47,7 @@ var ( minioHealMock func(ctx context.Context, bucket, prefix string, healOpts madmin.HealOpts, clientToken string, forceStart, forceStop bool) (healStart madmin.HealStartSuccess, healTaskStatus madmin.HealTaskStatus, err error) - minioServerHealthInfoMock func(ctx context.Context, healthDataTypes []madmin.HealthDataType, deadline time.Duration) (interface{}, string, error) + minioServerHealthInfoMock func(ctx context.Context, deadline time.Duration) (interface{}, string, error) minioListPoliciesMock func() (map[string]*iampolicy.Policy, error) minioGetPolicyMock func(name string) (*iampolicy.Policy, error) @@ -174,8 +174,8 @@ func (ac AdminClientMock) heal(ctx context.Context, bucket, prefix string, healO return minioHealMock(ctx, bucket, prefix, healOpts, clientToken, forceStart, forceStop) } -func (ac AdminClientMock) serverHealthInfo(ctx context.Context, healthDataTypes []madmin.HealthDataType, deadline time.Duration) (interface{}, string, error) { - return minioServerHealthInfoMock(ctx, healthDataTypes, deadline) +func (ac AdminClientMock) serverHealthInfo(ctx context.Context, deadline time.Duration) (interface{}, string, error) { + return minioServerHealthInfoMock(ctx, deadline) } func (ac AdminClientMock) addOrUpdateIDPConfig(_ context.Context, _, _, _ string, _ bool) (restart bool, err error) { diff --git a/api/admin_health_info.go b/api/admin_health_info.go index d467f65ee..38b133388 100644 --- a/api/admin_health_info.go +++ b/api/admin_health_info.go @@ -31,7 +31,6 @@ import ( "github.com/minio/console/pkg/utils" subnet "github.com/minio/console/pkg/subnet" - "github.com/minio/madmin-go/v3" mc "github.com/minio/mc/cmd" "github.com/minio/websocket" ) @@ -44,21 +43,7 @@ func startHealthInfo(ctx context.Context, conn WSConn, client MinioAdmin, deadli } // Fetch info of all servers (cluster or single server) - healthDataTypes := []madmin.HealthDataType{ - madmin.HealthDataTypeMinioInfo, - madmin.HealthDataTypeMinioConfig, - madmin.HealthDataTypeSysCPU, - madmin.HealthDataTypeSysDriveHw, - madmin.HealthDataTypeSysDocker, - madmin.HealthDataTypeSysOsInfo, - madmin.HealthDataTypeSysLoad, - madmin.HealthDataTypeSysMem, - madmin.HealthDataTypeSysNet, - madmin.HealthDataTypeSysProcess, - } - var err error - // Fetch info of all servers (cluster or single server) - healthInfo, version, err := client.serverHealthInfo(ctx, healthDataTypes, *deadline) + healthInfo, version, err := client.serverHealthInfo(ctx, *deadline) if err != nil { return err } @@ -75,7 +60,7 @@ func startHealthInfo(ctx context.Context, conn WSConn, client MinioAdmin, deadli } ctx = context.WithValue(ctx, utils.ContextClientIP, conn.remoteAddress()) - err = sendHealthInfoToSubnet(ctx, healthInfo, client) + err = sendHealthInfoToSubnet(ctx, compressedDiag, client) report := messageReport{ Encoded: encodedDiag, ServerHealthInfo: healthInfo, @@ -116,7 +101,7 @@ func updateMcGlobals(subnetTokenConfig subnet.LicenseTokenConfig) error { return nil } -func sendHealthInfoToSubnet(ctx context.Context, healthInfo interface{}, client MinioAdmin) error { +func sendHealthInfoToSubnet(ctx context.Context, compressedHealthInfo []byte, client MinioAdmin) error { filename := fmt.Sprintf("health_%d.json.gz", time.Now().Unix()) subnetTokenConfig, e := GetSubnetKeyFromMinIOConfig(ctx, client) if e != nil { @@ -135,10 +120,6 @@ func sendHealthInfoToSubnet(ctx context.Context, healthInfo interface{}, client return e } } - compressedHealthInfo, e := mc.TarGZHealthInfo(healthInfo, madmin.HealthInfoVersion) - if e != nil { - return e - } e = os.WriteFile(filename, compressedHealthInfo, 0o666) if e != nil { return e diff --git a/api/admin_health_info_test.go b/api/admin_health_info_test.go index e7bea2dcb..d56573137 100644 --- a/api/admin_health_info_test.go +++ b/api/admin_health_info_test.go @@ -119,7 +119,7 @@ func Test_serverHealthInfo(t *testing.T) { // make testReceiver channel testReceiver = make(chan madmin.HealthInfo, len(tt.args.mockMessages)) // mock function same for all tests, changes mockMessages - minioServerHealthInfoMock = func(_ context.Context, _ []madmin.HealthDataType, + minioServerHealthInfoMock = func(_ context.Context, _ time.Duration, ) (interface{}, string, error) { info := tt.args.mockMessages[0] diff --git a/api/client-admin.go b/api/client-admin.go index 0cb487e1f..80814be67 100644 --- a/api/client-admin.go +++ b/api/client-admin.go @@ -85,7 +85,7 @@ type MinioAdmin interface { addRemoteBucket(ctx context.Context, bucket string, target *madmin.BucketTarget) (string, error) // Account password management changePassword(ctx context.Context, accessKey, secretKey string) error - serverHealthInfo(ctx context.Context, healthDataTypes []madmin.HealthDataType, deadline time.Duration) (interface{}, string, error) + serverHealthInfo(ctx context.Context, deadline time.Duration) (interface{}, string, error) // List Tiers listTiers(ctx context.Context) ([]*madmin.TierConfig, error) // Tier Info @@ -389,13 +389,15 @@ func (ac AdminClient) getBucketQuota(ctx context.Context, bucket string) (madmin } // serverHealthInfo implements mc.ServerHealthInfo - Connect to a minio server and call Health Info Management API -func (ac AdminClient) serverHealthInfo(ctx context.Context, healthDataTypes []madmin.HealthDataType, deadline time.Duration) (interface{}, string, error) { +func (ac AdminClient) serverHealthInfo(ctx context.Context, deadline time.Duration) (interface{}, string, error) { info := madmin.HealthInfo{} var healthInfo interface{} var version string var tryCount int for info.Version == "" && tryCount < 10 { - resp, version, err := ac.Client.ServerHealthInfo(ctx, healthDataTypes, deadline, "") + var resp *http.Response + var err error + resp, version, err = ac.Client.ServerHealthInfo(ctx, madmin.HealthDataTypesList, deadline, "") if err != nil { return nil, version, err } @@ -407,7 +409,6 @@ func (ac AdminClient) serverHealthInfo(ctx context.Context, healthDataTypes []ma } tryCount++ time.Sleep(2 * time.Second) - } if info.Version == "" { return nil, "", ErrHealthReportFail