138 lines
3.4 KiB
Go
138 lines
3.4 KiB
Go
package pwd
|
|
|
|
import (
|
|
"io"
|
|
"net"
|
|
"time"
|
|
|
|
"github.com/docker/docker/api/types"
|
|
"github.com/play-with-docker/play-with-docker/docker"
|
|
)
|
|
|
|
type mockDocker struct {
|
|
createNetwork func(string) error
|
|
connectNetwork func(container, network, ip string) (string, error)
|
|
containerResize func(string, uint, uint) error
|
|
createContainer func(opts docker.CreateContainerOpts) (string, error)
|
|
execAttach func(instanceName string, command []string, out io.Writer) (int, error)
|
|
new func(ip string, cert, key []byte) (docker.DockerApi, error)
|
|
swarmInit func() (*docker.SwarmTokens, error)
|
|
swarmJoin func(addr, token string) error
|
|
}
|
|
|
|
func (m *mockDocker) CreateNetwork(id string) error {
|
|
if m.createNetwork == nil {
|
|
return nil
|
|
}
|
|
return m.createNetwork(id)
|
|
}
|
|
func (m *mockDocker) ConnectNetwork(container, network, ip string) (string, error) {
|
|
if m.connectNetwork == nil {
|
|
return "10.0.0.1", nil
|
|
}
|
|
return m.connectNetwork(container, network, ip)
|
|
}
|
|
|
|
func (m *mockDocker) GetDaemonInfo() (types.Info, error) {
|
|
return types.Info{}, nil
|
|
}
|
|
|
|
func (m *mockDocker) GetSwarmPorts() ([]string, []uint16, error) {
|
|
return []string{}, []uint16{}, nil
|
|
}
|
|
func (m *mockDocker) GetPorts() ([]uint16, error) {
|
|
return []uint16{}, nil
|
|
}
|
|
func (m *mockDocker) GetContainerStats(name string) (io.ReadCloser, error) {
|
|
return nil, nil
|
|
}
|
|
func (m *mockDocker) ContainerResize(name string, rows, cols uint) error {
|
|
if m.containerResize != nil {
|
|
return m.containerResize(name, rows, cols)
|
|
}
|
|
return nil
|
|
}
|
|
func (m *mockDocker) CreateAttachConnection(name string) (net.Conn, error) {
|
|
return &mockConn{}, nil
|
|
}
|
|
func (m *mockDocker) CopyToContainer(containerName, destination, fileName string, content io.Reader) error {
|
|
return nil
|
|
}
|
|
func (m *mockDocker) DeleteContainer(id string) error {
|
|
return nil
|
|
}
|
|
func (m *mockDocker) CreateContainer(opts docker.CreateContainerOpts) (string, error) {
|
|
if m.createContainer != nil {
|
|
return m.createContainer(opts)
|
|
}
|
|
return "10.0.0.1", nil
|
|
}
|
|
func (m *mockDocker) ExecAttach(instanceName string, command []string, out io.Writer) (int, error) {
|
|
if m.execAttach != nil {
|
|
return m.execAttach(instanceName, command, out)
|
|
}
|
|
return 0, nil
|
|
}
|
|
func (m *mockDocker) DisconnectNetwork(containerId, networkId string) error {
|
|
return nil
|
|
}
|
|
func (m *mockDocker) DeleteNetwork(id string) error {
|
|
return nil
|
|
}
|
|
func (m *mockDocker) Exec(instanceName string, command []string) (int, error) {
|
|
return 0, nil
|
|
}
|
|
func (m *mockDocker) New(ip string, cert, key []byte) (docker.DockerApi, error) {
|
|
if m.new != nil {
|
|
return m.new(ip, cert, key)
|
|
}
|
|
return nil, nil
|
|
}
|
|
func (m *mockDocker) SwarmInit() (*docker.SwarmTokens, error) {
|
|
if m.swarmInit != nil {
|
|
return m.swarmInit()
|
|
}
|
|
return nil, nil
|
|
}
|
|
func (m *mockDocker) SwarmJoin(addr, token string) error {
|
|
if m.swarmJoin != nil {
|
|
return m.swarmJoin(addr, token)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type mockConn struct {
|
|
}
|
|
|
|
func (m *mockConn) Read(b []byte) (n int, err error) {
|
|
return len(b), nil
|
|
}
|
|
|
|
func (m *mockConn) Write(b []byte) (n int, err error) {
|
|
return len(b), nil
|
|
}
|
|
|
|
func (m *mockConn) Close() error {
|
|
return nil
|
|
}
|
|
|
|
func (m *mockConn) LocalAddr() net.Addr {
|
|
return &net.IPAddr{}
|
|
}
|
|
|
|
func (m *mockConn) RemoteAddr() net.Addr {
|
|
return &net.IPAddr{}
|
|
}
|
|
|
|
func (m *mockConn) SetDeadline(t time.Time) error {
|
|
return nil
|
|
}
|
|
|
|
func (m *mockConn) SetReadDeadline(t time.Time) error {
|
|
return nil
|
|
}
|
|
|
|
func (m *mockConn) SetWriteDeadline(t time.Time) error {
|
|
return nil
|
|
}
|