mirror of
https://github.com/containers/podman.git
synced 2025-10-17 19:24:04 +08:00
libpod: Execute poststop hooks locally
Instead of delegating to the runtime, since some runtimes do not seem to handle these reliably [1]. [1]: https://github.com/projectatomic/libpod/issues/730#issuecomment-392959938 Signed-off-by: W. Trevor King <wking@tremily.us> Closes: #864 Approved by: rhatdan
This commit is contained in:

committed by
Atomic Bot

parent
28d1cec9f6
commit
c9f763456c
@ -154,16 +154,16 @@ func (r *Runtime) NewContainer(ctx context.Context, rSpec *spec.Spec, options ..
|
||||
// RemoveContainer removes the given container
|
||||
// If force is specified, the container will be stopped first
|
||||
// Otherwise, RemoveContainer will return an error if the container is running
|
||||
func (r *Runtime) RemoveContainer(c *Container, force bool) error {
|
||||
func (r *Runtime) RemoveContainer(ctx context.Context, c *Container, force bool) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
return r.removeContainer(c, force)
|
||||
return r.removeContainer(ctx, c, force)
|
||||
}
|
||||
|
||||
// Internal function to remove a container
|
||||
// Locks the container, but does not lock the runtime
|
||||
func (r *Runtime) removeContainer(c *Container, force bool) error {
|
||||
func (r *Runtime) removeContainer(ctx context.Context, c *Container, force bool) error {
|
||||
if !c.valid {
|
||||
// Container probably already removed
|
||||
// Or was never in the runtime to begin with
|
||||
@ -263,8 +263,9 @@ func (r *Runtime) removeContainer(c *Container, force bool) error {
|
||||
// Only do this if we're not ContainerStateConfigured - if we are,
|
||||
// we haven't been created in the runtime yet
|
||||
if c.state.State != ContainerStateConfigured {
|
||||
if err := r.ociRuntime.deleteContainer(c); err != nil {
|
||||
return errors.Wrapf(err, "error removing container %s from OCI runtime", c.ID())
|
||||
err = c.delete(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user