io

package
v0.0.0-...-9c355be Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2014 License: MIT Imports: 16 Imported by: 0

Documentation

Overview

This package is here to allow mocks to be generated of all the calls that touch the filesystem or docker. With these, it is easy to write unit tests of the pickett logic. The interfaces in this package are designed to be independent and thus do not call each other.

Index

Constants

View Source
const (
	A_LONG_TIME = 90 * 24 * 60 * 60
)
View Source
const (
	PICKETT_KEYSPACE = "/pickett/"
)

Variables

View Source
var (
	NO_DOCKER_HOST         = errors.New("no DOCKER_HOST found in environment, please set it")
	BAD_DOCKER_HOST_FORMAT = errors.New("DOCKER_HOST found, but should be protocol://host:port")
	BAD_INSPECT_RESULT     = errors.New("unable to understand result of docker inspect")
)
View Source
var DIE = []string{
	"dead",
	"deceased",
	"passed",
	"strangled",
	"poisoned",
	"murdered",
	"overdosed",
	"killed",
	"bumpedoff",
	"fell",
	"drowned",
	"shot",
	"stabbed",
	"crushed",
	"burned",
	"immolated",
	"fried",
	"electrocuted",
	"hung",
	"slipped",
	"crashed",
}
View Source
var STAR = []string{
	"elvis",
	"lennon",
	"hendrix",
	"joplin",
	"holly",
	"cobain",
	"vicious",
	"curtis",
	"garcia",
	"moon",
	"cash",
	"morrisson",
	"ramone",
	"entwhistle",
	"valens",
	"bono",
	"cook",
	"epstein",
	"jones",
	"croce",
	"moon",
	"bonham",
	"haley",
	"wilson",
	"marley",
	"hutchence",
	"perkins",
	"falco",
	"strummer",
	"gibb",
	"zevon",
	"brown",
	"mca",
	"winehouse",
	"manzarek",
}

Functions

This section is empty.

Types

type BuildConfig

type BuildConfig struct {
	NoCache                  bool
	RemoveTemporaryContainer bool
}

type CopyArtifact

type CopyArtifact struct {
	SourcePath, DestinationDir string
}

type DockerCli

type DockerCli interface {
	CmdRun(*RunConfig, ...string) (*bytes.Buffer, string, error)
	CmdTag(string, bool, *TagInfo) error
	CmdCommit(string, *TagInfo) (string, error)
	CmdBuild(*BuildConfig, string, string) error
	//Copy actually does two different things: copies artifacts from the source tree into a tarball
	//or copies artifacts from a container (given here as an image) into a tarball.  In both cases
	//the resulting tarball is sent to the docker server for a build.
	CmdCopy(map[string]string, string, string, []*CopyArtifact, string) error
	CmdLastModTime(map[string]string, string, []*CopyArtifact) (time.Time, error)
	CmdStop(string) error
	CmdRmContainer(string) error
	CmdRmImage(string) error
	InspectImage(string) (InspectedImage, error)
	InspectContainer(string) (InspectedContainer, error)
	ListContainers() (apiContainers, error)
	ListImages() (apiImages, error)
}

func NewDockerCli

func NewDockerCli() (DockerCli, error)

NewDocker returns a connection to the docker server. Pickett assumes that the DockerCli is "passed in from the outside".

type EtcdClient

type EtcdClient interface {
	Get(string) (string, bool, error)
	Put(string, string) (string, error)
	Del(string) (string, error)
	Children(string) ([]string, bool, error)
	RecursiveDel(string) (string, error)
}

func NewEtcdClient

func NewEtcdClient() (EtcdClient, error)

type Helper

type Helper interface {
	OpenDockerfileRelative(dir string) (io.Reader, error)
	OpenFileRelative(path string) (*os.File, error)
	DirectoryRelative(dir string) string
	ConfigReader() io.Reader
	ConfigFile() string
	LastTimeInDirRelative(string) (time.Time, error)
	LastTimeInDir(string) (time.Time, error)
}

Helper abstracts IO to make things easier to test. It is responsible for things that touch the filesystem, fatally exit, or stdout/stderr.

func NewHelper

func NewHelper(fullPath string) (Helper, error)

NewHelper creates an implementation of the Helper that runs against a real filesystem. This is used when running normally. The parameter filepath should be a path to a Pickett.json file. This should be a fully qualified path (starting with /).

type InspectedContainer

type InspectedContainer interface {
	Running() bool
	CreatedTime() time.Time
	ContainerName() string
	ContainerID() string
	ExitStatus() int
	Ip() string
	Ports() []string
}

type InspectedImage

type InspectedImage interface {
	CreatedTime() time.Time
	ID() string
	ContainerID() string
}

type MockDockerCli

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

Mock of DockerCli interface

func NewMockDockerCli

func NewMockDockerCli(ctrl *gomock.Controller) *MockDockerCli

func (*MockDockerCli) CmdBuild

func (_m *MockDockerCli) CmdBuild(_param0 *BuildConfig, _param1 string, _param2 string) error

func (*MockDockerCli) CmdCommit

func (_m *MockDockerCli) CmdCommit(_param0 string, _param1 *TagInfo) (string, error)

func (*MockDockerCli) CmdCopy

func (_m *MockDockerCli) CmdCopy(_param0 map[string]string, _param1 string, _param2 string, _param3 []*CopyArtifact, _param4 string) error

func (*MockDockerCli) CmdLastModTime

func (_m *MockDockerCli) CmdLastModTime(_param0 map[string]string, _param1 string, _param2 []*CopyArtifact) (time.Time, error)

func (*MockDockerCli) CmdRmContainer

func (_m *MockDockerCli) CmdRmContainer(_param0 string) error

func (*MockDockerCli) CmdRmImage

func (_m *MockDockerCli) CmdRmImage(_param0 string) error

func (*MockDockerCli) CmdRun

func (_m *MockDockerCli) CmdRun(_param0 *RunConfig, _param1 ...string) (*bytes.Buffer, string, error)

func (*MockDockerCli) CmdStop

func (_m *MockDockerCli) CmdStop(_param0 string) error

func (*MockDockerCli) CmdTag

func (_m *MockDockerCli) CmdTag(_param0 string, _param1 bool, _param2 *TagInfo) error

func (*MockDockerCli) EXPECT

func (_m *MockDockerCli) EXPECT() *_MockDockerCliRecorder

func (*MockDockerCli) InspectContainer

func (_m *MockDockerCli) InspectContainer(_param0 string) (InspectedContainer, error)

func (*MockDockerCli) InspectImage

func (_m *MockDockerCli) InspectImage(_param0 string) (InspectedImage, error)

func (*MockDockerCli) ListContainers

func (_m *MockDockerCli) ListContainers() (apiContainers, error)

func (*MockDockerCli) ListImages

func (_m *MockDockerCli) ListImages() (apiImages, error)

type MockEtcdClient

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

Mock of EtcdClient interface

func NewMockEtcdClient

func NewMockEtcdClient(ctrl *gomock.Controller) *MockEtcdClient

func (*MockEtcdClient) Children

func (_m *MockEtcdClient) Children(_param0 string) ([]string, bool, error)

func (*MockEtcdClient) Del

func (_m *MockEtcdClient) Del(_param0 string) (string, error)

func (*MockEtcdClient) EXPECT

func (_m *MockEtcdClient) EXPECT() *_MockEtcdClientRecorder

func (*MockEtcdClient) Get

func (_m *MockEtcdClient) Get(_param0 string) (string, bool, error)

func (*MockEtcdClient) Put

func (_m *MockEtcdClient) Put(_param0 string, _param1 string) (string, error)

func (*MockEtcdClient) RecursiveDel

func (_m *MockEtcdClient) RecursiveDel(_param0 string) (string, error)

type MockHelper

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

Mock of Helper interface

func NewMockHelper

func NewMockHelper(ctrl *gomock.Controller) *MockHelper

func (*MockHelper) ConfigFile

func (_m *MockHelper) ConfigFile() string

func (*MockHelper) ConfigReader

func (_m *MockHelper) ConfigReader() io.Reader

func (*MockHelper) DirectoryRelative

func (_m *MockHelper) DirectoryRelative(dir string) string

func (*MockHelper) EXPECT

func (_m *MockHelper) EXPECT() *_MockHelperRecorder

func (*MockHelper) LastTimeInDir

func (_m *MockHelper) LastTimeInDir(_param0 string) (time.Time, error)

func (*MockHelper) LastTimeInDirRelative

func (_m *MockHelper) LastTimeInDirRelative(_param0 string) (time.Time, error)

func (*MockHelper) OpenDockerfileRelative

func (_m *MockHelper) OpenDockerfileRelative(dir string) (io.Reader, error)

func (*MockHelper) OpenFileRelative

func (_m *MockHelper) OpenFileRelative(path string) (*os.File, error)

type MockInspectedContainer

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

Mock of InspectedContainer interface

func NewMockInspectedContainer

func NewMockInspectedContainer(ctrl *gomock.Controller) *MockInspectedContainer

func (*MockInspectedContainer) ContainerID

func (_m *MockInspectedContainer) ContainerID() string

func (*MockInspectedContainer) ContainerName

func (_m *MockInspectedContainer) ContainerName() string

func (*MockInspectedContainer) CreatedTime

func (_m *MockInspectedContainer) CreatedTime() time.Time

func (*MockInspectedContainer) EXPECT

func (_m *MockInspectedContainer) EXPECT() *_MockInspectedContainerRecorder

func (*MockInspectedContainer) ExitStatus

func (_m *MockInspectedContainer) ExitStatus() int

func (*MockInspectedContainer) Ip

func (_m *MockInspectedContainer) Ip() string

func (*MockInspectedContainer) Ports

func (_m *MockInspectedContainer) Ports() []string

func (*MockInspectedContainer) Running

func (_m *MockInspectedContainer) Running() bool

type MockInspectedImage

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

Mock of InspectedImage interface

func NewMockInspectedImage

func NewMockInspectedImage(ctrl *gomock.Controller) *MockInspectedImage

func (*MockInspectedImage) ContainerID

func (_m *MockInspectedImage) ContainerID() string

func (*MockInspectedImage) CreatedTime

func (_m *MockInspectedImage) CreatedTime() time.Time

func (*MockInspectedImage) EXPECT

func (_m *MockInspectedImage) EXPECT() *_MockInspectedImageRecorder

func (*MockInspectedImage) ID

func (_m *MockInspectedImage) ID() string

type Port

type Port string

type PortBinding

type PortBinding struct {
	HostIp   string
	HostPort string
}

type RunConfig

type RunConfig struct {
	Image      string
	Attach     bool
	Volumes    map[string]string
	Ports      map[Port][]PortBinding
	Devices    map[string]string
	Links      map[string]string
	Privileged bool
	WaitOutput bool
}

type TagInfo

type TagInfo struct {
	Repository string
	Tag        string
}

Jump to

Keyboard shortcuts

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