podman
1//go:build !remote
2
3package libpod
4
5import (
6"fmt"
7"path/filepath"
8
9"github.com/containers/common/pkg/config"
10"github.com/containers/podman/v5/libpod/define"
11"github.com/containers/podman/v5/pkg/rootless"
12"github.com/sirupsen/logrus"
13)
14
15func (p *Pod) platformRefresh() error {
16// We need to recreate the pod's cgroup
17if p.config.UsePodCgroup {
18switch p.runtime.config.Engine.CgroupManager {
19case config.SystemdCgroupsManager:
20cgroupPath, err := systemdSliceFromPath(p.config.CgroupParent, fmt.Sprintf("libpod_pod_%s", p.ID()), p.ResourceLim())
21if err != nil {
22logrus.Errorf("Creating Cgroup for pod %s: %v", p.ID(), err)
23}
24p.state.CgroupPath = cgroupPath
25case config.CgroupfsCgroupsManager:
26if !rootless.IsRootless() || isRootlessCgroupSet(p.config.CgroupParent) {
27p.state.CgroupPath = filepath.Join(p.config.CgroupParent, p.ID())
28
29logrus.Debugf("setting pod cgroup to %s", p.state.CgroupPath)
30}
31default:
32return fmt.Errorf("unknown cgroups manager %s specified: %w", p.runtime.config.Engine.CgroupManager, define.ErrInvalidArg)
33}
34}
35return nil
36}
37