Merge pull request #6052 from egernst/add-darwin-skeletons

Add darwin skeletons
This commit is contained in:
Eric Ernst
2023-01-13 13:14:16 -08:00
committed by GitHub
5 changed files with 192 additions and 4 deletions

View File

@@ -0,0 +1,86 @@
// Copyright (c) 2023 Apple Inc.
//
// SPDX-License-Identifier: Apache-2.0
//
package resourcecontrol
import (
"errors"
"github.com/opencontainers/runtime-spec/specs-go"
)
type DarwinResourceController struct{}
func RenameCgroupPath(path string) (string, error) {
return "", errors.New("RenameCgroupPath not supported on Darwin")
}
func NewResourceController(path string, resources *specs.LinuxResources) (ResourceController, error) {
return &DarwinResourceController{}, nil
}
func NewSandboxResourceController(path string, resources *specs.LinuxResources, sandboxCgroupOnly bool) (ResourceController, error) {
return &DarwinResourceController{}, nil
}
func LoadResourceController(path string) (ResourceController, error) {
return &DarwinResourceController{}, nil
}
func (c *DarwinResourceController) Delete() error {
return nil
}
func (c *DarwinResourceController) Stat() (interface{}, error) {
return nil, nil
}
func (c *DarwinResourceController) AddProcess(pid int, subsystems ...string) error {
return nil
}
func (c *DarwinResourceController) AddThread(pid int, subsystems ...string) error {
return nil
}
func (c *DarwinResourceController) AddTask(pid int, subsystems ...string) error {
return nil
}
func (c *DarwinResourceController) Update(resources *specs.LinuxResources) error {
return nil
}
func (c *DarwinResourceController) MoveTo(path string) error {
return nil
}
func (c *DarwinResourceController) ID() string {
return ""
}
func (c *DarwinResourceController) Parent() string {
return ""
}
func (c *DarwinResourceController) Type() ResourceControllerType {
return DarwinResourceControllerType
}
func (c *DarwinResourceController) AddDevice(deviceHostPath string) error {
return nil
}
func (c *DarwinResourceController) RemoveDevice(deviceHostPath string) error {
return nil
}
func (c *DarwinResourceController) UpdateCpuSet(cpuset, memset string) error {
return nil
}
func (c *DarwinResourceController) Path() string {
return ""
}

View File

@@ -25,7 +25,8 @@ func SetLogger(logger *logrus.Entry) {
type ResourceControllerType string
const (
LinuxCgroups ResourceControllerType = "cgroups"
LinuxCgroups ResourceControllerType = "cgroups"
DarwinResourceControllerType ResourceControllerType = "darwin"
)
// String converts a resource type to a string.

View File

@@ -19,6 +19,9 @@ var (
ErrCgroupMode = errors.New("cgroup controller type error")
)
// DefaultResourceControllerID runtime-determined location in the cgroups hierarchy.
const DefaultResourceControllerID = "/vc"
func DeviceToCgroupDeviceRule(device string) (*devices.Rule, error) {
var st unix.Stat_t
deviceRule := devices.Rule{

View File

@@ -18,9 +18,6 @@ import (
"golang.org/x/sys/unix"
)
// DefaultResourceControllerID runtime-determined location in the cgroups hierarchy.
const DefaultResourceControllerID = "/vc"
// ValidCgroupPathV1 returns a valid cgroup path for cgroup v1.
// see https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#cgroups-path
func ValidCgroupPathV1(path string, systemdCgroup bool) (string, error) {