From 14a7ae85866c13c4b3bbb23e2b3c33611a6e0be8 Mon Sep 17 00:00:00 2001 From: Shireesh Anjal <355479+anjalshireesh@users.noreply.github.com> Date: Sat, 21 Nov 2020 23:11:33 +0530 Subject: [PATCH] Remove platform specific structure definitions (#10935) Instead of having less/more fields inside a structure depending on the platform (non-linux/linux), it would be better to have the same standard definition in all platforms, and certain fields of the structure to be populated or left unpopulated depending on the platform. --- go.mod | 2 +- go.sum | 4 ++-- pkg/madmin/health.go | 20 ++++++++++++++++ pkg/madmin/health_linux.go | 43 ----------------------------------- pkg/madmin/health_nonlinux.go | 26 --------------------- 5 files changed, 23 insertions(+), 72 deletions(-) delete mode 100644 pkg/madmin/health_linux.go delete mode 100644 pkg/madmin/health_nonlinux.go diff --git a/go.mod b/go.mod index fca374ccf..9094df999 100644 --- a/go.mod +++ b/go.mod @@ -69,7 +69,7 @@ require ( github.com/rjeczalik/notify v0.9.2 github.com/rs/cors v1.7.0 github.com/secure-io/sio-go v0.3.0 - github.com/shirou/gopsutil v2.20.3-0.20200314133625-53cec6b37e6a+incompatible + github.com/shirou/gopsutil v2.20.9+incompatible github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94 github.com/tidwall/gjson v1.3.5 diff --git a/go.sum b/go.sum index d2e4ba82e..03b0f3fd3 100644 --- a/go.sum +++ b/go.sum @@ -421,8 +421,8 @@ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkB github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/secure-io/sio-go v0.3.0 h1:QKGb6rGJeiExac9wSWxnWPYo8O8OFN7lxXQvHshX6vo= github.com/secure-io/sio-go v0.3.0/go.mod h1:D3KmXgKETffyYxBdFRN+Hpd2WzhzqS0EQwT3XWsAcBU= -github.com/shirou/gopsutil v2.20.3-0.20200314133625-53cec6b37e6a+incompatible h1:YiKUe2ZOmfpDBH4OSyxwkx/mjNqHHnNhOtZ2mPyRme8= -github.com/shirou/gopsutil v2.20.3-0.20200314133625-53cec6b37e6a+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v2.20.9+incompatible h1:msXs2frUV+O/JLva9EDLpuJ84PrFsdCTCQex8PUdtkQ= +github.com/shirou/gopsutil v2.20.9+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= diff --git a/pkg/madmin/health.go b/pkg/madmin/health.go index b9f7e8f1b..17ffed231 100644 --- a/pkg/madmin/health.go +++ b/pkg/madmin/health.go @@ -28,7 +28,9 @@ import ( "github.com/minio/minio/pkg/disk" "github.com/minio/minio/pkg/net" + smart "github.com/minio/minio/pkg/smart" "github.com/shirou/gopsutil/cpu" + diskhw "github.com/shirou/gopsutil/disk" "github.com/shirou/gopsutil/host" "github.com/shirou/gopsutil/mem" nethw "github.com/shirou/gopsutil/net" @@ -127,6 +129,24 @@ type MinioHealthInfo struct { Error string `json:"error,omitempty"` } +// ServerDiskHwInfo - Includes usage counters, disk counters and partitions +type ServerDiskHwInfo struct { + Addr string `json:"addr"` + Usage []*diskhw.UsageStat `json:"usages,omitempty"` + Partitions []PartitionStat `json:"partitions,omitempty"` + Counters map[string]diskhw.IOCountersStat `json:"counters,omitempty"` + Error string `json:"error,omitempty"` +} + +// PartitionStat - includes data from both shirou/psutil.diskHw.PartitionStat as well as SMART data +type PartitionStat struct { + Device string `json:"device"` + Mountpoint string `json:"mountpoint,omitempty"` + Fstype string `json:"fstype,omitempty"` + Opts string `json:"opts,omitempty"` + SmartInfo smart.Info `json:"smartInfo,omitempty"` +} + // PerfInfo - Includes Drive and Net perf info for the entire MinIO cluster type PerfInfo struct { DriveInfo []ServerDrivesInfo `json:"drives,omitempty"` diff --git a/pkg/madmin/health_linux.go b/pkg/madmin/health_linux.go deleted file mode 100644 index 05d0598d4..000000000 --- a/pkg/madmin/health_linux.go +++ /dev/null @@ -1,43 +0,0 @@ -// +build linux - -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package madmin - -import ( - smart "github.com/minio/minio/pkg/smart" - diskhw "github.com/shirou/gopsutil/disk" -) - -// ServerDiskHwInfo - Includes usage counters, disk counters and partitions -type ServerDiskHwInfo struct { - Addr string `json:"addr"` - Usage []*diskhw.UsageStat `json:"usages,omitempty"` - Partitions []PartitionStat `json:"partitions,omitempty"` - Counters map[string]diskhw.IOCountersStat `json:"counters,omitempty"` - Error string `json:"error,omitempty"` -} - -// PartitionStat - includes data from both shirou/psutil.diskHw.PartitionStat as well as SMART data -type PartitionStat struct { - Device string `json:"device"` - Mountpoint string `json:"mountpoint,omitempty"` - Fstype string `json:"fstype,omitempty"` - Opts string `json:"opts,omitempty"` - SmartInfo smart.Info `json:"smartInfo,omitempty"` -} diff --git a/pkg/madmin/health_nonlinux.go b/pkg/madmin/health_nonlinux.go deleted file mode 100644 index cfbbaf27f..000000000 --- a/pkg/madmin/health_nonlinux.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build !linux - -/* - * MinIO Cloud Storage, (C) 2020 MinIO, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package madmin - -// ServerDiskHwInfo - Includes usage counters, disk counters and partitions -type ServerDiskHwInfo struct { - Addr string `json:"addr"` - Error string `json:"error,omitempty"` -}