From 5cc20ad9e5a6898be54ce3f44ca096138c7bbcce Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 14 Jul 2021 15:05:12 +0200 Subject: [PATCH] pkg/sysinfo: adjust Opt to set new field This removes the need to have the opts type. Signed-off-by: Sebastiaan van Stijn --- pkg/sysinfo/cgroup2_linux.go | 11 +++-------- pkg/sysinfo/sysinfo.go | 3 +++ pkg/sysinfo/sysinfo_linux.go | 13 ++++--------- pkg/sysinfo/{sysinfo_unix.go => sysinfo_other.go} | 10 ++-------- pkg/sysinfo/sysinfo_windows.go | 12 ------------ 5 files changed, 12 insertions(+), 37 deletions(-) rename pkg/sysinfo/{sysinfo_unix.go => sysinfo_other.go} (57%) delete mode 100644 pkg/sysinfo/sysinfo_windows.go diff --git a/pkg/sysinfo/cgroup2_linux.go b/pkg/sysinfo/cgroup2_linux.go index aa35a4b040..894febe7a3 100644 --- a/pkg/sysinfo/cgroup2_linux.go +++ b/pkg/sysinfo/cgroup2_linux.go @@ -18,17 +18,12 @@ func newV2(quiet bool, options ...Opt) *SysInfo { var warnings []string sysInfo := &SysInfo{ CgroupUnified: true, + cg2GroupPath: "/", } - var opts opts for _, o := range options { - o(&opts) + o(sysInfo) } - g := opts.cg2GroupPath - if g == "" { - g = "/" - } - sysInfo.cg2GroupPath = g - m, err := cgroupsV2.LoadManager("/sys/fs/cgroup", g) + m, err := cgroupsV2.LoadManager("/sys/fs/cgroup", sysInfo.cg2GroupPath) if err != nil { logrus.Warn(err) } else { diff --git a/pkg/sysinfo/sysinfo.go b/pkg/sysinfo/sysinfo.go index 1f160cabbe..271ebb58a3 100644 --- a/pkg/sysinfo/sysinfo.go +++ b/pkg/sysinfo/sysinfo.go @@ -2,6 +2,9 @@ package sysinfo // import "github.com/docker/docker/pkg/sysinfo" import "github.com/docker/docker/pkg/parsers" +// Opt for New(). +type Opt func(info *SysInfo) + // SysInfo stores information about which features a kernel supports. // TODO Windows: Factor out platform specific capabilities. type SysInfo struct { diff --git a/pkg/sysinfo/sysinfo_linux.go b/pkg/sysinfo/sysinfo_linux.go index 7b7e5f896d..b9dc4b7600 100644 --- a/pkg/sysinfo/sysinfo_linux.go +++ b/pkg/sysinfo/sysinfo_linux.go @@ -30,13 +30,6 @@ func findCgroupMountpoints() (map[string]string, error) { type infoCollector func(info *SysInfo) (warnings []string) -type opts struct { - cg2GroupPath string -} - -// Opt for New(). -type Opt func(*opts) - // WithCgroup2GroupPath specifies the cgroup v2 group path to inspect availability // of the controllers. // @@ -44,8 +37,10 @@ type Opt func(*opts) // // e.g. g = "/user.slice/user-1000.slice/user@1000.service" func WithCgroup2GroupPath(g string) Opt { - return func(o *opts) { - o.cg2GroupPath = path.Clean(g) + return func(o *SysInfo) { + if p := path.Clean(g); p != "" { + o.cg2GroupPath = p + } } } diff --git a/pkg/sysinfo/sysinfo_unix.go b/pkg/sysinfo/sysinfo_other.go similarity index 57% rename from pkg/sysinfo/sysinfo_unix.go rename to pkg/sysinfo/sysinfo_other.go index 47a131bc87..7ac7cd1850 100644 --- a/pkg/sysinfo/sysinfo_unix.go +++ b/pkg/sysinfo/sysinfo_other.go @@ -1,14 +1,8 @@ -// +build !linux,!windows +// +build !linux package sysinfo // import "github.com/docker/docker/pkg/sysinfo" -type opts struct{} - -// Opt for New(). -type Opt func(*opts) - // New returns an empty SysInfo for non linux for now. func New(quiet bool, options ...Opt) *SysInfo { - sysInfo := &SysInfo{} - return sysInfo + return &SysInfo{} } diff --git a/pkg/sysinfo/sysinfo_windows.go b/pkg/sysinfo/sysinfo_windows.go deleted file mode 100644 index 372e84af54..0000000000 --- a/pkg/sysinfo/sysinfo_windows.go +++ /dev/null @@ -1,12 +0,0 @@ -package sysinfo // import "github.com/docker/docker/pkg/sysinfo" - -type opts struct{} - -// Opt for New(). -type Opt func(*opts) - -// New returns an empty SysInfo for windows for now. -func New(quiet bool, options ...Opt) *SysInfo { - sysInfo := &SysInfo{} - return sysInfo -}