Files
runc/cgroups.go
T
Michael Crosby 47b41a6f5d Add logger to container and factory
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-05 15:24:42 -08:00

51 lines
1.1 KiB
Go

package libcontainer
import (
"github.com/docker/libcontainer/cgroups"
"github.com/docker/libcontainer/cgroups/fs"
"github.com/docker/libcontainer/cgroups/systemd"
)
type CgroupManager interface {
String() string
GetPids(*cgroups.Cgroup) ([]int, error)
GetStats(*cgroups.Cgroup) (*cgroups.Stats, error)
}
func newCgroupsManager() CgroupManager {
if systemd.UseSystemd() {
return &systemdCgroupManager{}
}
return &fsCgroupsManager{}
}
type systemdCgroupManager struct {
}
func (m *systemdCgroupManager) GetPids(config *cgroups.Cgroup) ([]int, error) {
return systemd.GetPids(config)
}
func (m *systemdCgroupManager) GetStats(config *cgroups.Cgroup) (*cgroups.Stats, error) {
return systemd.GetStats(config)
}
func (m *systemdCgroupManager) String() string {
return "systemd"
}
type fsCgroupsManager struct {
}
func (m *fsCgroupsManager) GetPids(config *cgroups.Cgroup) ([]int, error) {
return fs.GetPids(config)
}
func (m *fsCgroupsManager) GetStats(config *cgroups.Cgroup) (*cgroups.Stats, error) {
return fs.GetStats(config)
}
func (m *fsCgroupsManager) String() string {
return "fs"
}