diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-07-28 14:48:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-28 14:48:28 +0200 |
commit | 6c5966cf3cbfa15602ba2d9ef57284f2669a321d (patch) | |
tree | 452db7496ba00a2e0da6ff4fce77b27a93fa7c12 /libpod/container_api.go | |
parent | a5de8314188d7376f645d8ac6c6f7a6f685b6a45 (diff) | |
parent | 60b9e8c0da683d253f3828f00442fc5a75540368 (diff) | |
download | podman-6c5966cf3cbfa15602ba2d9ef57284f2669a321d.tar.gz podman-6c5966cf3cbfa15602ba2d9ef57284f2669a321d.tar.bz2 podman-6c5966cf3cbfa15602ba2d9ef57284f2669a321d.zip |
Merge pull request #10910 from adrianreber/2021-07-12-checkpoint-restore-into-pod
Add support for checkpoint/restore into and out of pods
Diffstat (limited to 'libpod/container_api.go')
-rw-r--r-- | libpod/container_api.go | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libpod/container_api.go b/libpod/container_api.go index d221baa77..637f5b686 100644 --- a/libpod/container_api.go +++ b/libpod/container_api.go @@ -780,6 +780,16 @@ type ContainerCheckpointOptions struct { // Compression tells the API which compression to use for // the exported checkpoint archive. Compression archive.Compression + // If Pod is set the container should be restored into the + // given Pod. If Pod is empty it is a restore without a Pod. + // Restoring a non Pod container into a Pod or a Pod container + // without a Pod is theoretically possible, but will + // probably not work if a PID namespace is shared. + // A shared PID namespace means that a Pod container has PID 1 + // in the infrastructure container, but without the infrastructure + // container no PID 1 will be in the namespace and that is not + // possible. + Pod string } // Checkpoint checkpoints a container @@ -811,7 +821,11 @@ func (c *Container) Checkpoint(ctx context.Context, options ContainerCheckpointO // Restore restores a container func (c *Container) Restore(ctx context.Context, options ContainerCheckpointOptions) error { - logrus.Debugf("Trying to restore container %s", c.ID()) + if options.Pod == "" { + logrus.Debugf("Trying to restore container %s", c.ID()) + } else { + logrus.Debugf("Trying to restore container %s into pod %s", c.ID(), options.Pod) + } if !c.batched { c.lock.Lock() defer c.lock.Unlock() |