(containerID, sandboxID string, config *runtime.ContainerConfig)
| 476 | } |
| 477 | |
| 478 | func (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 | } |
no test coverage detected