MCPcopy
hub / github.com/containerd/containerd / loadTask

Method loadTask

client/container.go:479–506  ·  view source on GitHub ↗
(ctx context.Context, ioAttach cio.Attach)

Source from the content-addressed store, hash-verified

477}
478
479func (c *container) loadTask(ctx context.Context, ioAttach cio.Attach) (Task, error) {
480 response, err := c.client.TaskService().Get(ctx, &tasks.GetRequest{
481 ContainerID: c.id,
482 })
483 if err != nil {
484 err = errgrpc.ToNative(err)
485 if errdefs.IsNotFound(err) {
486 return nil, fmt.Errorf("no running task found: %w", err)
487 }
488 return nil, err
489 }
490 var i cio.IO
491 if ioAttach != nil && response.Process.Status != tasktypes.Status_UNKNOWN {
492 // Do not attach IO for task in unknown state, because there
493 // are no fifo paths anyway.
494 if i, err = attachExistingIO(response, ioAttach); err != nil {
495 return nil, err
496 }
497 }
498 t := &task{
499 client: c.client,
500 io: i,
501 id: response.Process.ID,
502 pid: response.Process.Pid,
503 c: c,
504 }
505 return t, nil
506}
507
508func (c *container) get(ctx context.Context) (containers.Container, error) {
509 return c.client.ContainerService().Get(ctx, c.id)

Callers 2

DeleteMethod · 0.95
TaskMethod · 0.95

Calls 3

attachExistingIOFunction · 0.85
TaskServiceMethod · 0.80
GetMethod · 0.65

Tested by

no test coverage detected