diff --git a/cmd/admin-server-info.go b/cmd/admin-server-info.go index caa7847f9..4c2e526b7 100644 --- a/cmd/admin-server-info.go +++ b/cmd/admin-server-info.go @@ -87,7 +87,6 @@ func getLocalServerProperty(endpointServerPools EndpointServerPools, r *http.Req } props := madmin.ServerProperties{ - State: string(madmin.ItemInitializing), Endpoint: addr, Uptime: UTCNow().Unix() - globalBootTime.Unix(), Version: Version, @@ -146,7 +145,8 @@ func getLocalServerProperty(endpointServerPools EndpointServerPools, r *http.Req props.State = string(madmin.ItemOnline) props.Disks = storageInfo.Disks } else { - props.State = string(madmin.ItemOffline) + props.State = string(madmin.ItemInitializing) + props.Disks = getOfflineDisks("", globalEndpoints) } return props diff --git a/cmd/notification.go b/cmd/notification.go index 251ee0612..8b0ed46cf 100644 --- a/cmd/notification.go +++ b/cmd/notification.go @@ -883,11 +883,13 @@ func (sys *NotificationSys) GetProcInfo(ctx context.Context) []madmin.ProcInfo { return reply } +// Construct a list of offline disks information for a given node. +// If offlineHost is empty, do it for the local disks. func getOfflineDisks(offlineHost string, endpoints EndpointServerPools) []madmin.Disk { var offlineDisks []madmin.Disk for _, pool := range endpoints { for _, ep := range pool.Endpoints { - if offlineHost == ep.Host { + if offlineHost == "" && ep.IsLocal || offlineHost == ep.Host { offlineDisks = append(offlineDisks, madmin.Disk{ Endpoint: ep.String(), State: string(madmin.ItemOffline), @@ -947,8 +949,6 @@ func (sys *NotificationSys) ServerInfo() []madmin.ServerProperties { info.Endpoint = client.host.String() info.State = string(madmin.ItemOffline) info.Disks = getOfflineDisks(info.Endpoint, globalEndpoints) - } else { - info.State = string(madmin.ItemOnline) } reply[idx] = info }(client, i)