mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-10 21:53:57 +08:00
Remove main package dependency on criurpc
Commit 7f64fb47 made the main package, and runc/libcontainer's CriuOpts
depend on criu/rpc. This is not good; among the other things, it makes
it complicated to make c/r optional.
Let's switch CriuOpts.ManageCgroupsMode to a string (yes, it's an APIt
breaking change) and move the cgroup mode string parsing to
libcontainer.
While at it, let's better document ManageCgroupsMode.
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
+1
-16
@@ -8,7 +8,6 @@ import (
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
|
||||
criu "github.com/checkpoint-restore/go-criu/v6/rpc"
|
||||
"github.com/moby/sys/userns"
|
||||
"github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/sirupsen/logrus"
|
||||
@@ -132,6 +131,7 @@ func criuOptions(context *cli.Context) (*libcontainer.CriuOpts, error) {
|
||||
StatusFd: context.Int("status-fd"),
|
||||
LsmProfile: context.String("lsm-profile"),
|
||||
LsmMountContext: context.String("lsm-mount-context"),
|
||||
ManageCgroupsMode: context.String("manage-cgroups-mode"),
|
||||
}
|
||||
|
||||
// CRIU options below may or may not be set.
|
||||
@@ -152,21 +152,6 @@ func criuOptions(context *cli.Context) (*libcontainer.CriuOpts, error) {
|
||||
}
|
||||
}
|
||||
|
||||
switch context.String("manage-cgroups-mode") {
|
||||
case "":
|
||||
// do nothing
|
||||
case "soft":
|
||||
opts.ManageCgroupsMode = criu.CriuCgMode_SOFT
|
||||
case "full":
|
||||
opts.ManageCgroupsMode = criu.CriuCgMode_FULL
|
||||
case "strict":
|
||||
opts.ManageCgroupsMode = criu.CriuCgMode_STRICT
|
||||
case "ignore":
|
||||
opts.ManageCgroupsMode = criu.CriuCgMode_IGNORE
|
||||
default:
|
||||
return nil, errors.New("Invalid manage-cgroups-mode value")
|
||||
}
|
||||
|
||||
// runc doesn't manage network devices and their configuration.
|
||||
nsmask := unix.CLONE_NEWNET
|
||||
|
||||
|
||||
Reference in New Issue
Block a user