diff --git a/virtcontainers/api.go b/virtcontainers/api.go index a43c13c113..47e7648136 100644 --- a/virtcontainers/api.go +++ b/virtcontainers/api.go @@ -655,19 +655,7 @@ func KillContainer(ctx context.Context, sandboxID, containerID string, signal sy } defer s.releaseStatelessSandbox() - // Fetch the container. - c, err := s.findContainer(containerID) - if err != nil { - return err - } - - // Send a signal to the process. - err = c.kill(signal, all) - if err != nil { - return err - } - - return nil + return s.KillContainer(containerID, signal, all) } // PauseSandbox is the virtcontainers pausing entry point which pauses an diff --git a/virtcontainers/interfaces.go b/virtcontainers/interfaces.go index 73d2d8a5bf..2ef0cb8f83 100644 --- a/virtcontainers/interfaces.go +++ b/virtcontainers/interfaces.go @@ -78,6 +78,7 @@ type VCSandbox interface { DeleteContainer(contID string) (VCContainer, error) StartContainer(containerID string) (VCContainer, error) StopContainer(containerID string) (VCContainer, error) + KillContainer(containerID string, signal syscall.Signal, all bool) error StatusContainer(containerID string) (ContainerStatus, error) StatsContainer(containerID string) (ContainerStats, error) EnterContainer(containerID string, cmd Cmd) (VCContainer, *Process, error) diff --git a/virtcontainers/pkg/vcmock/sandbox.go b/virtcontainers/pkg/vcmock/sandbox.go index a6799c1129..9614e8fa43 100644 --- a/virtcontainers/pkg/vcmock/sandbox.go +++ b/virtcontainers/pkg/vcmock/sandbox.go @@ -112,6 +112,11 @@ func (s *Sandbox) StopContainer(contID string) (vc.VCContainer, error) { return &Container{}, nil } +// KillContainer implements the VCSandbox function of the same name. +func (s *Sandbox) KillContainer(contID string, signal syscall.Signal, all bool) error { + return nil +} + // StatusContainer implements the VCSandbox function of the same name. func (s *Sandbox) StatusContainer(contID string) (vc.ContainerStatus, error) { return vc.ContainerStatus{}, nil diff --git a/virtcontainers/sandbox.go b/virtcontainers/sandbox.go index 20f43820e7..093305fce6 100644 --- a/virtcontainers/sandbox.go +++ b/virtcontainers/sandbox.go @@ -1336,6 +1336,18 @@ func (s *Sandbox) StopContainer(containerID string) (VCContainer, error) { return c, nil } +// KillContainer signals a container in the sandbox +func (s *Sandbox) KillContainer(containerID string, signal syscall.Signal, all bool) error { + // Fetch the container. + c, err := s.findContainer(containerID) + if err != nil { + return err + } + + // Send a signal to the process. + return c.kill(signal, all) +} + // DeleteContainer deletes a container from the sandbox func (s *Sandbox) DeleteContainer(containerID string) (VCContainer, error) { if containerID == "" {