diff options
author | Matthew Heon <mheon@redhat.com> | 2019-05-10 09:56:34 -0400 |
---|---|---|
committer | Matthew Heon <matthew.heon@pm.me> | 2019-05-13 09:39:58 -0400 |
commit | 60d43effb017e0e0f6475b48ea8efe3e8ad0448a (patch) | |
tree | 5ca9cf799c6c841980cca8fd77a42427590d15d0 /vendor/github.com/containerd/cgroups/opts.go | |
parent | d2571c7fd49d22e822a6f3b3796488218c9f9e46 (diff) | |
download | podman-60d43effb017e0e0f6475b48ea8efe3e8ad0448a.tar.gz podman-60d43effb017e0e0f6475b48ea8efe3e8ad0448a.tar.bz2 podman-60d43effb017e0e0f6475b48ea8efe3e8ad0448a.zip |
Update containerd/cgroups to 4994991857f9b0ae
Signed-off-by: Matthew Heon <mheon@redhat.com>
Diffstat (limited to 'vendor/github.com/containerd/cgroups/opts.go')
-rw-r--r-- | vendor/github.com/containerd/cgroups/opts.go | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/vendor/github.com/containerd/cgroups/opts.go b/vendor/github.com/containerd/cgroups/opts.go new file mode 100644 index 000000000..7c5d9fb9c --- /dev/null +++ b/vendor/github.com/containerd/cgroups/opts.go @@ -0,0 +1,61 @@ +/* + Copyright The containerd Authors. + + 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 cgroups + +import ( + "github.com/pkg/errors" +) + +var ( + // ErrIgnoreSubsystem allows the specific subsystem to be skipped + ErrIgnoreSubsystem = errors.New("skip subsystem") + // ErrDevicesRequired is returned when the devices subsystem is required but + // does not exist or is not active + ErrDevicesRequired = errors.New("devices subsystem is required") +) + +// InitOpts allows configuration for the creation or loading of a cgroup +type InitOpts func(*InitConfig) error + +// InitConfig provides configuration options for the creation +// or loading of a cgroup and its subsystems +type InitConfig struct { + // InitCheck can be used to check initialization errors from the subsystem + InitCheck InitCheck +} + +func newInitConfig() *InitConfig { + return &InitConfig{ + InitCheck: RequireDevices, + } +} + +// InitCheck allows subsystems errors to be checked when initialized or loaded +type InitCheck func(Subsystem, Path, error) error + +// AllowAny allows any subsystem errors to be skipped +func AllowAny(s Subsystem, p Path, err error) error { + return ErrIgnoreSubsystem +} + +// RequireDevices requires the device subsystem but no others +func RequireDevices(s Subsystem, p Path, err error) error { + if s.Name() == Devices { + return ErrDevicesRequired + } + return ErrIgnoreSubsystem +} |