MCPcopy Create free account
hub / github.com/containerd/containerd / createContainerIO

Method createContainerIO

internal/cri/server/restart.go:478–504  ·  view source on GitHub ↗
(containerID, sandboxID string, config *runtime.ContainerConfig)

Source from the content-addressed store, hash-verified

476}
477
478func (c *criService) createContainerIO(containerID, sandboxID string, config *runtime.ContainerConfig) (*cio.ContainerIO, error) {
479 if config == nil {
480 return nil, fmt.Errorf("ContainerConfig should not be nil when create container io")
481 }
482 sb, err := c.sandboxStore.Get(sandboxID)
483 if err != nil {
484 return nil, fmt.Errorf("an error occurred when try to find sandbox %q: %w", sandboxID, err)
485 }
486 ociRuntime, err := c.config.GetSandboxRuntime(sb.Config, sb.Metadata.RuntimeHandler)
487 if err != nil {
488 return nil, fmt.Errorf("failed to get sandbox runtime: %w", err)
489 }
490 var containerIO *cio.ContainerIO
491 switch ociRuntime.IOType {
492 case criconfig.IOTypeStreaming:
493 containerIO, err = cio.NewContainerIO(containerID,
494 cio.WithStreams(sb.Endpoint.Address, config.GetTty(), config.GetStdin()))
495 default:
496 volatileContainerRootDir := c.getVolatileContainerRootDir(containerID)
497 containerIO, err = cio.NewContainerIO(containerID,
498 cio.WithNewFIFOs(volatileContainerRootDir, config.GetTty(), config.GetStdin()))
499 }
500 if err != nil {
501 return nil, fmt.Errorf("failed to create container io: %w", err)
502 }
503 return containerIO, nil
504}

Callers 1

loadContainerMethod · 0.95

Implementers 1

criServiceinternal/cri/server/service.go

Calls 5

WithStreamsFunction · 0.92
GetSandboxRuntimeMethod · 0.80
GetMethod · 0.65
GetStdinMethod · 0.45

Tested by

no test coverage detected