From 5902905970b56ad843311cba32f803404819f592 Mon Sep 17 00:00:00 2001 From: Doug Rabson Date: Sun, 8 May 2022 12:51:50 +0100 Subject: Add missing criu symbols to criu_unsupported.go [NO NEW TESTS NEEDED] Signed-off-by: Doug Rabson --- pkg/criu/criu.go | 43 ------------------------------------------- pkg/criu/criu_linux.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ pkg/criu/criu_unsupported.go | 8 ++++++++ 3 files changed, 52 insertions(+), 43 deletions(-) create mode 100644 pkg/criu/criu_linux.go diff --git a/pkg/criu/criu.go b/pkg/criu/criu.go index 6570159d7..0b0bbff5d 100644 --- a/pkg/criu/criu.go +++ b/pkg/criu/criu.go @@ -1,51 +1,8 @@ -//go:build linux -// +build linux - package criu -import ( - "github.com/checkpoint-restore/go-criu/v5" - "github.com/checkpoint-restore/go-criu/v5/rpc" - - "google.golang.org/protobuf/proto" -) - // MinCriuVersion for Podman at least CRIU 3.11 is required const MinCriuVersion = 31100 // PodCriuVersion is the version of CRIU needed for // checkpointing and restoring containers out of and into Pods. const PodCriuVersion = 31600 - -// CheckForCriu uses CRIU's go bindings to check if the CRIU -// binary exists and if it at least the version Podman needs. -func CheckForCriu(version int) bool { - c := criu.MakeCriu() - result, err := c.IsCriuAtLeast(version) - if err != nil { - return false - } - return result -} - -func GetCriuVestion() (int, error) { - c := criu.MakeCriu() - return c.GetCriuVersion() -} - -func MemTrack() bool { - features, err := criu.MakeCriu().FeatureCheck( - &rpc.CriuFeatures{ - MemTrack: proto.Bool(true), - }, - ) - if err != nil { - return false - } - - if features == nil || features.MemTrack == nil { - return false - } - - return *features.MemTrack -} diff --git a/pkg/criu/criu_linux.go b/pkg/criu/criu_linux.go new file mode 100644 index 000000000..1d4c0a782 --- /dev/null +++ b/pkg/criu/criu_linux.go @@ -0,0 +1,44 @@ +//go:build linux +// +build linux + +package criu + +import ( + "github.com/checkpoint-restore/go-criu/v5" + "github.com/checkpoint-restore/go-criu/v5/rpc" + + "google.golang.org/protobuf/proto" +) + +// CheckForCriu uses CRIU's go bindings to check if the CRIU +// binary exists and if it at least the version Podman needs. +func CheckForCriu(version int) bool { + c := criu.MakeCriu() + result, err := c.IsCriuAtLeast(version) + if err != nil { + return false + } + return result +} + +func MemTrack() bool { + features, err := criu.MakeCriu().FeatureCheck( + &rpc.CriuFeatures{ + MemTrack: proto.Bool(true), + }, + ) + if err != nil { + return false + } + + if features == nil || features.MemTrack == nil { + return false + } + + return *features.MemTrack +} + +func GetCriuVestion() (int, error) { + c := criu.MakeCriu() + return c.GetCriuVersion() +} diff --git a/pkg/criu/criu_unsupported.go b/pkg/criu/criu_unsupported.go index 3e3ed9c6c..464c09908 100644 --- a/pkg/criu/criu_unsupported.go +++ b/pkg/criu/criu_unsupported.go @@ -3,6 +3,14 @@ package criu +func CheckForCriu(version int) bool { + return false +} + func MemTrack() bool { return false } + +func GetCriuVestion() (int, error) { + return MinCriuVersion, nil +} -- cgit v1.2.3-54-g00ecf From 4c5788bac6d57ced3498ea54100c924592596dab Mon Sep 17 00:00:00 2001 From: Doug Rabson Date: Mon, 27 Jun 2022 08:11:19 +0100 Subject: Fix spelling of GetCriuVersion Signed-off-by: Doug Rabson --- libpod/container_internal_linux.go | 2 +- pkg/criu/criu_linux.go | 2 +- pkg/criu/criu_unsupported.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libpod/container_internal_linux.go b/libpod/container_internal_linux.go index 77b598b16..2dbf1b5c6 100644 --- a/libpod/container_internal_linux.go +++ b/libpod/container_internal_linux.go @@ -1141,7 +1141,7 @@ func (c *Container) addCheckpointImageMetadata(importBuilder *buildah.Builder) e return fmt.Errorf("getting host info: %v", err) } - criuVersion, err := criu.GetCriuVestion() + criuVersion, err := criu.GetCriuVersion() if err != nil { return fmt.Errorf("getting criu version: %v", err) } diff --git a/pkg/criu/criu_linux.go b/pkg/criu/criu_linux.go index 1d4c0a782..c28e23fd7 100644 --- a/pkg/criu/criu_linux.go +++ b/pkg/criu/criu_linux.go @@ -38,7 +38,7 @@ func MemTrack() bool { return *features.MemTrack } -func GetCriuVestion() (int, error) { +func GetCriuVersion() (int, error) { c := criu.MakeCriu() return c.GetCriuVersion() } diff --git a/pkg/criu/criu_unsupported.go b/pkg/criu/criu_unsupported.go index 464c09908..437482a0e 100644 --- a/pkg/criu/criu_unsupported.go +++ b/pkg/criu/criu_unsupported.go @@ -11,6 +11,6 @@ func MemTrack() bool { return false } -func GetCriuVestion() (int, error) { +func GetCriuVersion() (int, error) { return MinCriuVersion, nil } -- cgit v1.2.3-54-g00ecf