Add pause resume to task

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
Michael Crosby 2017-05-25 10:15:35 -07:00
parent e2db2892ec
commit 1de25c09e3
2 changed files with 28 additions and 2 deletions

View File

@ -85,10 +85,12 @@ func (c *Container) NewTask(ctx context.Context, ioCreate IOCreation) (*Task, er
if err != nil {
return nil, err
}
return &Task{
t := &Task{
client: c.client,
io: i,
containerID: response.ContainerID,
pid: response.Pid,
}, nil
}
c.task = t
return t, nil
}

24
task.go
View File

@ -189,6 +189,30 @@ func (t *Task) Kill(ctx context.Context, s syscall.Signal) error {
return err
}
func (t *Task) Pause(ctx context.Context) error {
_, err := t.client.tasks().Pause(ctx, &execution.PauseRequest{
ContainerID: t.containerID,
})
return err
}
func (t *Task) Resume(ctx context.Context) error {
_, err := t.client.tasks().Resume(ctx, &execution.ResumeRequest{
ContainerID: t.containerID,
})
return err
}
func (t *Task) Status(ctx context.Context) (string, error) {
r, err := t.client.tasks().Info(ctx, &execution.InfoRequest{
ContainerID: t.containerID,
})
if err != nil {
return "", err
}
return r.Task.Status.String(), nil
}
// Wait is a blocking call that will wait for the task to exit and return the exit status
func (t *Task) Wait(ctx context.Context) (uint32, error) {
events, err := t.client.tasks().Events(ctx, &execution.EventsRequest{})