io

package
v1.23.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2022 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCRILogger

func NewCRILogger(path string, w io.Writer, stream StreamType, maxLen int) (pipeWriter io.WriteCloser, stopChan <-chan struct{})

NewCRILogger returns a write closer which redirect container log into log file, and decorate the log line into CRI defined format. It also returns a channel which indicates whether the logger is stopped. maxLen is the max length limit of a line. A line longer than the limit will be cut into multiple lines.

func NewDiscardLogger

func NewDiscardLogger() io.WriteCloser

NewDiscardLogger creates logger which discards all the input.

Types

type AttachOptions

type AttachOptions struct {
	Stdin     io.Reader
	Stdout    io.WriteCloser
	Stderr    io.WriteCloser
	Tty       bool
	StdinOnce bool
	// CloseStdin is the function to close container stdin.
	CloseStdin func() error
}

AttachOptions specifies how to attach to a container.

type ContainerIO

type ContainerIO struct {
	// contains filtered or unexported fields
}

ContainerIO holds the container io.

func NewContainerIO

func NewContainerIO(id string, opts ...ContainerIOOpts) (*ContainerIO, error)

NewContainerIO creates container io.

func (*ContainerIO) AddOutput

func (c *ContainerIO) AddOutput(name string, stdout, stderr io.WriteCloser) (oldStdout, oldStderr io.WriteCloser)

AddOutput adds new write closers to the container stream, and returns existing write closers if there are any.

func (*ContainerIO) Attach

func (c *ContainerIO) Attach(opts AttachOptions) error

Attach attaches container stdio. TODO(random-liu): Use pools.Copy in docker to reduce memory usage?

func (*ContainerIO) Cancel

func (c *ContainerIO) Cancel()

Cancel cancels container io.

func (*ContainerIO) Close

func (c *ContainerIO) Close() error

Close closes all FIFOs.

func (*ContainerIO) Config

func (c *ContainerIO) Config() cio.Config

Config returns io config.

func (*ContainerIO) Pipe

func (c *ContainerIO) Pipe()

Pipe creates container fifos and pipe container output to output stream.

func (*ContainerIO) Wait

func (c *ContainerIO) Wait()

Wait waits container io to finish.

type ContainerIOOpts

type ContainerIOOpts func(*ContainerIO) error

ContainerIOOpts sets specific information to newly created ContainerIO.

func WithFIFOs

func WithFIFOs(fifos *cio.FIFOSet) ContainerIOOpts

WithFIFOs specifies existing fifos for the container io.

func WithNewFIFOs

func WithNewFIFOs(root string, tty, stdin bool) ContainerIOOpts

WithNewFIFOs creates new fifos for the container io.

type ExecIO

type ExecIO struct {
	// contains filtered or unexported fields
}

ExecIO holds the exec io.

func NewExecIO

func NewExecIO(id, root string, tty, stdin bool) (*ExecIO, error)

NewExecIO creates exec io.

func (*ExecIO) Attach

func (e *ExecIO) Attach(opts AttachOptions) <-chan struct{}

Attach attaches exec stdio. The logic is similar with container io attach.

func (*ExecIO) Cancel

func (e *ExecIO) Cancel()

Cancel cancels exec io.

func (*ExecIO) Close

func (e *ExecIO) Close() error

Close closes all FIFOs.

func (*ExecIO) Config

func (e *ExecIO) Config() cio.Config

Config returns io config.

func (*ExecIO) Wait

func (e *ExecIO) Wait()

Wait waits exec io to finish.

type StreamType

type StreamType string

StreamType is the type of the stream, stdout/stderr.

const (
	// Stdin stream type.
	Stdin StreamType = "stdin"
	// Stdout stream type.
	Stdout StreamType = StreamType(runtime.Stdout)
	// Stderr stream type.
	Stderr StreamType = StreamType(runtime.Stderr)
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL