mirror of
https://github.com/containers/podman.git
synced 2025-12-03 11:49:18 +08:00
Podman info add support for status of cgroup controllers
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
This commit is contained in:
@@ -23,21 +23,22 @@ type SecurityInfo struct {
|
||||
|
||||
// HostInfo describes the libpod host
|
||||
type HostInfo struct {
|
||||
Arch string `json:"arch"`
|
||||
BuildahVersion string `json:"buildahVersion"`
|
||||
CgroupManager string `json:"cgroupManager"`
|
||||
CGroupsVersion string `json:"cgroupVersion"`
|
||||
Conmon *ConmonInfo `json:"conmon"`
|
||||
CPUs int `json:"cpus"`
|
||||
Distribution DistributionInfo `json:"distribution"`
|
||||
EventLogger string `json:"eventLogger"`
|
||||
Hostname string `json:"hostname"`
|
||||
IDMappings IDMappings `json:"idMappings,omitempty"`
|
||||
Kernel string `json:"kernel"`
|
||||
MemFree int64 `json:"memFree"`
|
||||
MemTotal int64 `json:"memTotal"`
|
||||
OCIRuntime *OCIRuntimeInfo `json:"ociRuntime"`
|
||||
OS string `json:"os"`
|
||||
Arch string `json:"arch"`
|
||||
BuildahVersion string `json:"buildahVersion"`
|
||||
CgroupManager string `json:"cgroupManager"`
|
||||
CGroupsVersion string `json:"cgroupVersion"`
|
||||
CgroupControllers []string `json:"cgroupControllers"`
|
||||
Conmon *ConmonInfo `json:"conmon"`
|
||||
CPUs int `json:"cpus"`
|
||||
Distribution DistributionInfo `json:"distribution"`
|
||||
EventLogger string `json:"eventLogger"`
|
||||
Hostname string `json:"hostname"`
|
||||
IDMappings IDMappings `json:"idMappings,omitempty"`
|
||||
Kernel string `json:"kernel"`
|
||||
MemFree int64 `json:"memFree"`
|
||||
MemTotal int64 `json:"memTotal"`
|
||||
OCIRuntime *OCIRuntimeInfo `json:"ociRuntime"`
|
||||
OS string `json:"os"`
|
||||
// RemoteSocket returns the UNIX domain socket the Podman service is listening on
|
||||
RemoteSocket *RemoteSocket `json:"remoteSocket,omitempty"`
|
||||
RuntimeInfo map[string]interface{} `json:"runtimeInfo,omitempty"`
|
||||
|
||||
@@ -93,20 +93,33 @@ func (r *Runtime) hostInfo() (*define.HostInfo, error) {
|
||||
return nil, errors.Wrapf(err, "error getting Seccomp profile path")
|
||||
}
|
||||
|
||||
// CGroups version
|
||||
unified, err := cgroups.IsCgroup2UnifiedMode()
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "error reading cgroups mode")
|
||||
}
|
||||
|
||||
// Get Map of all available controllers
|
||||
availableControllers, err := cgroups.GetAvailableControllers(nil, unified)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "error getting available cgroup controllers")
|
||||
}
|
||||
|
||||
info := define.HostInfo{
|
||||
Arch: runtime.GOARCH,
|
||||
BuildahVersion: buildah.Version,
|
||||
CgroupManager: r.config.Engine.CgroupManager,
|
||||
Linkmode: linkmode.Linkmode(),
|
||||
CPUs: runtime.NumCPU(),
|
||||
Distribution: hostDistributionInfo,
|
||||
EventLogger: r.eventer.String(),
|
||||
Hostname: host,
|
||||
IDMappings: define.IDMappings{},
|
||||
Kernel: kv,
|
||||
MemFree: mi.MemFree,
|
||||
MemTotal: mi.MemTotal,
|
||||
OS: runtime.GOOS,
|
||||
Arch: runtime.GOARCH,
|
||||
BuildahVersion: buildah.Version,
|
||||
CgroupManager: r.config.Engine.CgroupManager,
|
||||
CgroupControllers: availableControllers,
|
||||
Linkmode: linkmode.Linkmode(),
|
||||
CPUs: runtime.NumCPU(),
|
||||
Distribution: hostDistributionInfo,
|
||||
EventLogger: r.eventer.String(),
|
||||
Hostname: host,
|
||||
IDMappings: define.IDMappings{},
|
||||
Kernel: kv,
|
||||
MemFree: mi.MemFree,
|
||||
MemTotal: mi.MemTotal,
|
||||
OS: runtime.GOOS,
|
||||
Security: define.SecurityInfo{
|
||||
AppArmorEnabled: apparmor.IsEnabled(),
|
||||
DefaultCapabilities: strings.Join(r.config.Containers.DefaultCapabilities, ","),
|
||||
@@ -120,11 +133,6 @@ func (r *Runtime) hostInfo() (*define.HostInfo, error) {
|
||||
SwapTotal: mi.SwapTotal,
|
||||
}
|
||||
|
||||
// CGroups version
|
||||
unified, err := cgroups.IsCgroup2UnifiedMode()
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "error reading cgroups mode")
|
||||
}
|
||||
cgroupVersion := "v1"
|
||||
if unified {
|
||||
cgroupVersion = "v2"
|
||||
|
||||
Reference in New Issue
Block a user