| // Package backend includes types to send information to server backends. |
| // TODO(calavera): This package is pending of extraction to engine-api |
| // when the server package is clean of daemon dependencies. |
| package backend |
| |
| import ( |
| "io" |
| |
| "github.com/docker/docker/pkg/streamformatter" |
| "github.com/docker/engine-api/types" |
| ) |
| |
| // ContainerAttachConfig holds the streams to use when connecting to a container to view logs. |
| type ContainerAttachConfig struct { |
| GetStreams func() (io.ReadCloser, io.Writer, io.Writer, error) |
| UseStdin bool |
| UseStdout bool |
| UseStderr bool |
| Logs bool |
| Stream bool |
| DetachKeys string |
| |
| // Used to signify that streams are multiplexed and therefore need a StdWriter to encode stdout/sderr messages accordingly. |
| // TODO @cpuguy83: This shouldn't be needed. It was only added so that http and websocket endpoints can use the same function, and the websocket function was not using a stdwriter prior to this change... |
| // HOWEVER, the websocket endpoint is using a single stream and SHOULD be encoded with stdout/stderr as is done for HTTP since it is still just a single stream. |
| // Since such a change is an API change unrelated to the current changeset we'll keep it as is here and change separately. |
| MuxStreams bool |
| } |
| |
| // ContainerLogsConfig holds configs for logging operations. Exists |
| // for users of the backend to to pass it a logging configuration. |
| type ContainerLogsConfig struct { |
| types.ContainerLogsOptions |
| OutStream io.Writer |
| } |
| |
| // ContainerStatsConfig holds information for configuring the runtime |
| // behavior of a backend.ContainerStats() call. |
| type ContainerStatsConfig struct { |
| Stream bool |
| OutStream io.Writer |
| Version string |
| } |
| |
| // ExecInspect holds information about a running process started |
| // with docker exec. |
| type ExecInspect struct { |
| ID string |
| Running bool |
| ExitCode *int |
| ProcessConfig *ExecProcessConfig |
| OpenStdin bool |
| OpenStderr bool |
| OpenStdout bool |
| CanRemove bool |
| ContainerID string |
| DetachKeys []byte |
| } |
| |
| // ExecProcessConfig holds information about the exec process |
| // running on the host. |
| type ExecProcessConfig struct { |
| Tty bool `json:"tty"` |
| Entrypoint string `json:"entrypoint"` |
| Arguments []string `json:"arguments"` |
| Privileged *bool `json:"privileged,omitempty"` |
| User string `json:"user,omitempty"` |
| } |
| |
| // ContainerCommitConfig is a wrapper around |
| // types.ContainerCommitConfig that also |
| // transports configuration changes for a container. |
| type ContainerCommitConfig struct { |
| types.ContainerCommitConfig |
| Changes []string |
| } |
| |
| // ProgressWriter is an interface |
| // to transport progress streams. |
| type ProgressWriter struct { |
| Output io.Writer |
| StdoutFormatter *streamformatter.StdoutFormatter |
| StderrFormatter *streamformatter.StderrFormatter |
| ProgressReaderFunc func(io.ReadCloser) io.ReadCloser |
| } |