2017-06-07 19:03:52 -04:00
|
|
|
package container
|
|
|
|
|
|
|
|
import (
|
2017-08-31 17:07:16 -04:00
|
|
|
"io"
|
|
|
|
|
2017-06-07 19:03:52 -04:00
|
|
|
"github.com/docker/docker/api/types"
|
2017-08-31 17:07:16 -04:00
|
|
|
"github.com/docker/docker/api/types/container"
|
|
|
|
"github.com/docker/docker/api/types/network"
|
2017-06-07 19:03:52 -04:00
|
|
|
"github.com/docker/docker/client"
|
|
|
|
"golang.org/x/net/context"
|
|
|
|
)
|
|
|
|
|
|
|
|
type fakeClient struct {
|
|
|
|
client.Client
|
2017-10-30 17:52:08 -04:00
|
|
|
inspectFunc func(string) (types.ContainerJSON, error)
|
|
|
|
execInspectFunc func(execID string) (types.ContainerExecInspect, error)
|
|
|
|
execCreateFunc func(container string, config types.ExecConfig) (types.IDResponse, error)
|
|
|
|
createContainerFunc func(config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error)
|
|
|
|
imageCreateFunc func(parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error)
|
|
|
|
infoFunc func() (types.Info, error)
|
|
|
|
containerStatPathFunc func(container, path string) (types.ContainerPathStat, error)
|
|
|
|
containerCopyFromFunc func(container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error)
|
2017-11-13 04:53:13 -05:00
|
|
|
logFunc func(string, types.ContainerLogsOptions) (io.ReadCloser, error)
|
2017-12-19 18:36:50 -05:00
|
|
|
waitFunc func(string) (<-chan container.ContainerWaitOKBody, <-chan error)
|
|
|
|
Version string
|
2017-06-07 19:03:52 -04:00
|
|
|
}
|
|
|
|
|
2017-05-09 18:35:25 -04:00
|
|
|
func (f *fakeClient) ContainerInspect(_ context.Context, containerID string) (types.ContainerJSON, error) {
|
|
|
|
if f.inspectFunc != nil {
|
|
|
|
return f.inspectFunc(containerID)
|
2017-06-07 19:03:52 -04:00
|
|
|
}
|
|
|
|
return types.ContainerJSON{}, nil
|
|
|
|
}
|
2017-05-09 18:35:25 -04:00
|
|
|
|
|
|
|
func (f *fakeClient) ContainerExecCreate(_ context.Context, container string, config types.ExecConfig) (types.IDResponse, error) {
|
|
|
|
if f.execCreateFunc != nil {
|
|
|
|
return f.execCreateFunc(container, config)
|
|
|
|
}
|
|
|
|
return types.IDResponse{}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (f *fakeClient) ContainerExecInspect(_ context.Context, execID string) (types.ContainerExecInspect, error) {
|
|
|
|
if f.execInspectFunc != nil {
|
|
|
|
return f.execInspectFunc(execID)
|
|
|
|
}
|
|
|
|
return types.ContainerExecInspect{}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (f *fakeClient) ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error {
|
|
|
|
return nil
|
|
|
|
}
|
2017-08-31 17:07:16 -04:00
|
|
|
|
|
|
|
func (f *fakeClient) ContainerCreate(
|
|
|
|
_ context.Context,
|
|
|
|
config *container.Config,
|
|
|
|
hostConfig *container.HostConfig,
|
|
|
|
networkingConfig *network.NetworkingConfig,
|
|
|
|
containerName string,
|
|
|
|
) (container.ContainerCreateCreatedBody, error) {
|
|
|
|
if f.createContainerFunc != nil {
|
|
|
|
return f.createContainerFunc(config, hostConfig, networkingConfig, containerName)
|
|
|
|
}
|
|
|
|
return container.ContainerCreateCreatedBody{}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (f *fakeClient) ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error) {
|
|
|
|
if f.imageCreateFunc != nil {
|
|
|
|
return f.imageCreateFunc(parentReference, options)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (f *fakeClient) Info(_ context.Context) (types.Info, error) {
|
|
|
|
if f.infoFunc != nil {
|
|
|
|
return f.infoFunc()
|
|
|
|
}
|
|
|
|
return types.Info{}, nil
|
|
|
|
}
|
2017-10-30 17:52:08 -04:00
|
|
|
|
|
|
|
func (f *fakeClient) ContainerStatPath(_ context.Context, container, path string) (types.ContainerPathStat, error) {
|
|
|
|
if f.containerStatPathFunc != nil {
|
|
|
|
return f.containerStatPathFunc(container, path)
|
|
|
|
}
|
|
|
|
return types.ContainerPathStat{}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (f *fakeClient) CopyFromContainer(_ context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error) {
|
|
|
|
if f.containerCopyFromFunc != nil {
|
|
|
|
return f.containerCopyFromFunc(container, srcPath)
|
|
|
|
}
|
|
|
|
return nil, types.ContainerPathStat{}, nil
|
|
|
|
}
|
2017-11-13 04:53:13 -05:00
|
|
|
|
|
|
|
func (f *fakeClient) ContainerLogs(_ context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error) {
|
|
|
|
if f.logFunc != nil {
|
|
|
|
return f.logFunc(container, options)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
2017-12-19 18:36:50 -05:00
|
|
|
|
|
|
|
func (f *fakeClient) ClientVersion() string {
|
|
|
|
return f.Version
|
|
|
|
}
|
|
|
|
|
|
|
|
func (f *fakeClient) ContainerWait(_ context.Context, container string, _ container.WaitCondition) (<-chan container.ContainerWaitOKBody, <-chan error) {
|
|
|
|
if f.waitFunc != nil {
|
|
|
|
return f.waitFunc(container)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|