Add KillOpts for killing all processes

Fixes #1431

This adds KillOpts so that a client can specify when they want to kill a
single process or all the processes inside a container.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
Michael Crosby
2017-08-28 11:10:15 -04:00
parent b9879d46f4
commit ed6b8fb0aa
5 changed files with 97 additions and 4 deletions

View File

@@ -163,10 +163,17 @@ func (t *task) Start(ctx context.Context) error {
return errdefs.FromGRPC(err)
}
func (t *task) Kill(ctx context.Context, s syscall.Signal) error {
func (t *task) Kill(ctx context.Context, s syscall.Signal, opts ...KillOpts) error {
var i KillInfo
for _, o := range opts {
if err := o(ctx, t, &i); err != nil {
return err
}
}
_, err := t.client.TaskService().Kill(ctx, &tasks.KillRequest{
Signal: uint32(s),
ContainerID: t.id,
All: i.All,
})
if err != nil {
return errdefs.FromGRPC(err)