1
0
mirror of https://github.com/openshift/source-to-image.git synced 2026-02-05 12:44:54 +01:00
Files
source-to-image/pkg/docker/fake_docker.go

153 lines
4.4 KiB
Go
Raw Normal View History

package docker
2014-10-10 11:00:59 -04:00
import (
"sync"
2014-12-04 16:19:46 +01:00
dockerclient "github.com/fsouza/go-dockerclient"
2014-10-10 11:00:59 -04:00
)
// FakeDocker provides a fake docker interface
2014-10-10 11:00:59 -04:00
type FakeDocker struct {
LocalRegistryImage string
LocalRegistryResult bool
LocalRegistryError error
RemoveContainerID string
RemoveContainerError error
DefaultURLImage string
DefaultURLResult string
DefaultURLError error
RunContainerOpts RunContainerOptions
2014-10-10 11:00:59 -04:00
RunContainerError error
RunContainerErrorBeforeStart bool
RunContainerContainerID string
RunContainerCmd []string
GetImageIDImage string
GetImageIDResult string
GetImageIDError error
2015-02-04 11:12:01 -05:00
GetImageUserImage string
GetImageUserResult string
GetImageUserError error
CommitContainerOpts CommitContainerOptions
2014-10-10 11:00:59 -04:00
CommitContainerResult string
CommitContainerError error
RemoveImageName string
RemoveImageError error
BuildImageOpts BuildImageOptions
BuildImageError error
PullResult bool
PullError error
OnBuildImage string
OnBuildResult []string
OnBuildError error
IsOnBuildResult bool
IsOnBuildImage string
Labels map[string]string
LabelsError error
mutex sync.Mutex
2014-10-10 11:00:59 -04:00
}
// IsImageInLocalRegistry checks if the image exists in the fake local registry
2014-10-10 11:00:59 -04:00
func (f *FakeDocker) IsImageInLocalRegistry(imageName string) (bool, error) {
f.LocalRegistryImage = imageName
return f.LocalRegistryResult, f.LocalRegistryError
}
// IsImageOnBuild returns true if the builder has onbuild instructions
func (f *FakeDocker) IsImageOnBuild(imageName string) bool {
f.IsOnBuildImage = imageName
return f.IsOnBuildResult
}
// Ping tells id the Docker deamon is reachable
func (f *FakeDocker) Ping() error {
return nil
}
// GetOnBuild returns the list of onbuild instructions for the given image
func (f *FakeDocker) GetOnBuild(imageName string) ([]string, error) {
f.OnBuildImage = imageName
return f.OnBuildResult, f.OnBuildError
}
// RemoveContainer removes a fake Docker container
2014-10-10 11:00:59 -04:00
func (f *FakeDocker) RemoveContainer(id string) error {
f.RemoveContainerID = id
return f.RemoveContainerError
}
// GetScriptsURL returns a default STI scripts URL
func (f *FakeDocker) GetScriptsURL(image string) (string, error) {
f.DefaultURLImage = image
return f.DefaultURLResult, f.DefaultURLError
2014-10-10 11:00:59 -04:00
}
// RunContainer runs a fake Docker container
func (f *FakeDocker) RunContainer(opts RunContainerOptions) error {
2014-10-10 11:00:59 -04:00
f.RunContainerOpts = opts
if f.RunContainerErrorBeforeStart {
return f.RunContainerError
}
if opts.OnStart != nil {
if err := opts.OnStart(); err != nil {
return err
}
2014-10-10 11:00:59 -04:00
}
if opts.PostExec != nil {
opts.PostExec.PostExecute(f.RunContainerContainerID, string(opts.Command))
2014-10-10 11:00:59 -04:00
}
return f.RunContainerError
}
// GetImageID returns a fake Docker image ID
func (f *FakeDocker) GetImageID(image string) (string, error) {
f.GetImageIDImage = image
return f.GetImageIDResult, f.GetImageIDError
2014-10-10 11:00:59 -04:00
}
2015-02-04 11:12:01 -05:00
// GetImageUser returns a fake user
func (f *FakeDocker) GetImageUser(image string) (string, error) {
f.GetImageUserImage = image
return f.GetImageUserResult, f.GetImageUserError
}
// CommitContainer commits a fake Docker container
func (f *FakeDocker) CommitContainer(opts CommitContainerOptions) (string, error) {
2014-10-10 11:00:59 -04:00
f.CommitContainerOpts = opts
return f.CommitContainerResult, f.CommitContainerError
}
// RemoveImage removes a fake Docker image
2014-10-10 11:00:59 -04:00
func (f *FakeDocker) RemoveImage(name string) error {
f.RemoveImageName = name
return f.RemoveImageError
}
2014-11-21 15:19:08 -05:00
// CheckImage checks image in local registry
func (f *FakeDocker) CheckImage(name string) (*dockerclient.Image, error) {
return nil, nil
}
// PullImage pulls a fake docker image
func (f *FakeDocker) PullImage(imageName string) (*dockerclient.Image, error) {
if f.PullResult {
return &dockerclient.Image{}, nil
}
return nil, f.PullError
2014-11-21 15:19:08 -05:00
}
2014-12-04 16:19:46 +01:00
// CheckAndPullImage pulls a fake docker image
func (f *FakeDocker) CheckAndPullImage(name string) (*dockerclient.Image, error) {
2014-12-04 16:19:46 +01:00
return nil, nil
}
// BuildImage builds image
func (f *FakeDocker) BuildImage(opts BuildImageOptions) error {
f.BuildImageOpts = opts
return f.BuildImageError
}
func (f *FakeDocker) GetLabels(name string) (map[string]string, error) {
return f.Labels, f.LabelsError
}