diff --git a/libpod/pod_internal.go b/libpod/pod_internal.go index d63bff2c99..743280f49f 100644 --- a/libpod/pod_internal.go +++ b/libpod/pod_internal.go @@ -2,14 +2,10 @@ package libpod import ( "fmt" - "path/filepath" "time" - "github.com/containers/common/pkg/config" "github.com/containers/podman/v4/libpod/define" - "github.com/containers/podman/v4/pkg/rootless" "github.com/containers/storage/pkg/stringid" - "github.com/sirupsen/logrus" ) // Creates a new, empty pod @@ -64,24 +60,8 @@ func (p *Pod) refresh() error { } p.lock = lock - // We need to recreate the pod's cgroup - if p.config.UsePodCgroup { - switch p.runtime.config.Engine.CgroupManager { - case config.SystemdCgroupsManager: - cgroupPath, err := systemdSliceFromPath(p.config.CgroupParent, fmt.Sprintf("libpod_pod_%s", p.ID()), p.ResourceLim()) - if err != nil { - logrus.Errorf("Creating Cgroup for pod %s: %v", p.ID(), err) - } - p.state.CgroupPath = cgroupPath - case config.CgroupfsCgroupsManager: - if rootless.IsRootless() && isRootlessCgroupSet(p.config.CgroupParent) { - p.state.CgroupPath = filepath.Join(p.config.CgroupParent, p.ID()) - - logrus.Debugf("setting pod cgroup to %s", p.state.CgroupPath) - } - default: - return fmt.Errorf("unknown cgroups manager %s specified: %w", p.runtime.config.Engine.CgroupManager, define.ErrInvalidArg) - } + if err := p.platformRefresh(); err != nil { + return err } // Save changes diff --git a/libpod/pod_internal_freebsd.go b/libpod/pod_internal_freebsd.go new file mode 100644 index 0000000000..48f6e2bcf8 --- /dev/null +++ b/libpod/pod_internal_freebsd.go @@ -0,0 +1,5 @@ +package libpod + +func (p *Pod) platformRefresh() error { + return nil +} diff --git a/libpod/pod_internal_linux.go b/libpod/pod_internal_linux.go new file mode 100644 index 0000000000..fa85666ca1 --- /dev/null +++ b/libpod/pod_internal_linux.go @@ -0,0 +1,34 @@ +package libpod + +import ( + "fmt" + "path/filepath" + + "github.com/containers/common/pkg/config" + "github.com/containers/podman/v4/libpod/define" + "github.com/containers/podman/v4/pkg/rootless" + "github.com/sirupsen/logrus" +) + +func (p *Pod) platformRefresh() error { + // We need to recreate the pod's cgroup + if p.config.UsePodCgroup { + switch p.runtime.config.Engine.CgroupManager { + case config.SystemdCgroupsManager: + cgroupPath, err := systemdSliceFromPath(p.config.CgroupParent, fmt.Sprintf("libpod_pod_%s", p.ID()), p.ResourceLim()) + if err != nil { + logrus.Errorf("Creating Cgroup for pod %s: %v", p.ID(), err) + } + p.state.CgroupPath = cgroupPath + case config.CgroupfsCgroupsManager: + if rootless.IsRootless() && isRootlessCgroupSet(p.config.CgroupParent) { + p.state.CgroupPath = filepath.Join(p.config.CgroupParent, p.ID()) + + logrus.Debugf("setting pod cgroup to %s", p.state.CgroupPath) + } + default: + return fmt.Errorf("unknown cgroups manager %s specified: %w", p.runtime.config.Engine.CgroupManager, define.ErrInvalidArg) + } + } + return nil +}