Documentation ¶
Index ¶
- Constants
- Variables
- func GetContainerFromIpcLikeConfig(p *Project, conf string) string
- func NameAlias(name string) (string, string)
- func NewDefaultListener(p *Project) chan<- Event
- type Container
- type Context
- type EmptyService
- func (e *EmptyService) Build() error
- func (e *EmptyService) Containers() ([]Container, error)
- func (e *EmptyService) Create() error
- func (e *EmptyService) Delete() error
- func (e *EmptyService) Down() error
- func (e *EmptyService) Info(qFlag bool) (InfoSet, error)
- func (e *EmptyService) Kill() error
- func (e *EmptyService) Log() error
- func (e *EmptyService) Pause() error
- func (e *EmptyService) Pull() error
- func (e *EmptyService) Restart() error
- func (e *EmptyService) Scale(count int) error
- func (e *EmptyService) Start() error
- func (e *EmptyService) Stop() error
- func (e *EmptyService) Unpause() error
- func (e *EmptyService) Up() error
- type Event
- type EventType
- type Info
- type InfoPart
- type InfoSet
- type Project
- func (p *Project) AddConfig(name string, config *config.ServiceConfig) error
- func (p *Project) AddListener(c chan<- Event)
- func (p *Project) Build(services ...string) error
- func (p *Project) Create(services ...string) error
- func (p *Project) CreateService(name string) (Service, error)
- func (p *Project) Delete(services ...string) error
- func (p *Project) Down(services ...string) error
- func (p *Project) Kill(services ...string) error
- func (p *Project) ListStoppedContainers(services ...string) ([]string, error)
- func (p *Project) Load(bytes []byte) error
- func (p *Project) Log(services ...string) error
- func (p *Project) Notify(eventType EventType, serviceName string, data map[string]string)
- func (p *Project) Parse() error
- func (p *Project) Pause(services ...string) error
- func (p *Project) Pull(services ...string) error
- func (p *Project) Restart(services ...string) error
- func (p *Project) Run(serviceName string, commandParts []string) (int, error)
- func (p *Project) Start(services ...string) error
- func (p *Project) Stop(services ...string) error
- func (p *Project) Unpause(services ...string) error
- func (p *Project) Up(services ...string) error
- type Service
- type ServiceFactory
- type ServiceRelationship
- type ServiceRelationshipType
- type ServiceState
Constants ¶
const ( NoEvent = EventType(iota) EventContainerCreated = EventType(iota) EventContainerStarted = EventType(iota) EventServiceAdd = EventType(iota) EventServiceUpStart = EventType(iota) EventServiceUpIgnored = EventType(iota) EventServiceUp = EventType(iota) EventServiceCreateStart = EventType(iota) EventServiceCreate = EventType(iota) EventServiceDeleteStart = EventType(iota) EventServiceDelete = EventType(iota) EventServiceDownStart = EventType(iota) EventServiceDown = EventType(iota) EventServiceRestartStart = EventType(iota) EventServiceRestart = EventType(iota) EventServicePullStart = EventType(iota) EventServicePull = EventType(iota) EventServiceKillStart = EventType(iota) EventServiceKill = EventType(iota) EventServiceStartStart = EventType(iota) EventServiceStart = EventType(iota) EventServiceBuildStart = EventType(iota) EventServiceBuild = EventType(iota) EventServicePauseStart = EventType(iota) EventServicePause = EventType(iota) EventServiceUnpauseStart = EventType(iota) EventServiceUnpause = EventType(iota) EventServiceStopStart = EventType(iota) EventServiceStop = EventType(iota) EventServiceRunStart = EventType(iota) EventServiceRun = EventType(iota) EventProjectDownStart = EventType(iota) EventProjectDownDone = EventType(iota) EventProjectCreateStart = EventType(iota) EventProjectCreateDone = EventType(iota) EventProjectUpStart = EventType(iota) EventProjectUpDone = EventType(iota) EventProjectDeleteStart = EventType(iota) EventProjectDeleteDone = EventType(iota) EventProjectRestartStart = EventType(iota) EventProjectRestartDone = EventType(iota) EventProjectReload = EventType(iota) EventProjectReloadTrigger = EventType(iota) EventProjectKillStart = EventType(iota) EventProjectKillDone = EventType(iota) EventProjectStartStart = EventType(iota) EventProjectStartDone = EventType(iota) EventProjectBuildStart = EventType(iota) EventProjectBuildDone = EventType(iota) EventProjectPauseStart = EventType(iota) EventProjectPauseDone = EventType(iota) EventProjectUnpauseStart = EventType(iota) EventProjectUnpauseDone = EventType(iota) EventProjectStopStart = EventType(iota) EventProjectStopDone = EventType(iota) )
Definitions of libcompose events
const RelTypeIpcNamespace = ServiceRelationshipType("ipc")
RelTypeIpcNamespace means the service share the same ipc namespace.
const RelTypeLink = ServiceRelationshipType("")
RelTypeLink means the services are linked (docker links).
const RelTypeNetNamespace = ServiceRelationshipType("netns")
RelTypeNetNamespace means the services share the same network namespace.
const RelTypeVolumesFrom = ServiceRelationshipType("volumesFrom")
RelTypeVolumesFrom means the services share some volumes.
Variables ¶
var ( StateExecuted = ServiceState("executed") StateUnknown = ServiceState("unknown") )
State definitions
var ( ErrRestart = errors.New("Restart execution") ErrUnsupported = errors.New("UnsupportedOperation") )
Error definitions
Functions ¶
func GetContainerFromIpcLikeConfig ¶
GetContainerFromIpcLikeConfig returns name of the service that shares the IPC namespace with the specified service.
func NameAlias ¶
NameAlias returns the name and alias based on the specified string. If the name contains a colon (like name:alias) it will split it, otherwise it will return the specified name as name and alias.
func NewDefaultListener ¶
NewDefaultListener create a default listener for the specified project.
Types ¶
type Container ¶
type Container interface { ID() (string, error) Name() string Port(port string) (string, error) IsRunning() (bool, error) }
Container defines what a libcompose container provides.
type Context ¶
type Context struct { Timeout uint Log bool Volume bool ForceRecreate bool NoRecreate bool NoCache bool NoBuild bool Signal string ComposeFiles []string ComposeBytes [][]byte ProjectName string ServiceFactory ServiceFactory EnvironmentLookup config.EnvironmentLookup ResourceLookup config.ResourceLookup LoggerFactory logger.Factory IgnoreMissingConfig bool Project *Project // contains filtered or unexported fields }
Context holds context meta information about a libcompose project, like the project name, the compose file, etc.
type EmptyService ¶
type EmptyService struct { }
EmptyService is a struct that implements Service but does nothing.
func (*EmptyService) Build ¶
func (e *EmptyService) Build() error
Build implements Service.Build but does nothing.
func (*EmptyService) Containers ¶
func (e *EmptyService) Containers() ([]Container, error)
Containers implements Service.Containers but does nothing.
func (*EmptyService) Create ¶
func (e *EmptyService) Create() error
Create implements Service.Create but does nothing.
func (*EmptyService) Delete ¶
func (e *EmptyService) Delete() error
Delete implements Service.Delete but does nothing.
func (*EmptyService) Down ¶
func (e *EmptyService) Down() error
Down implements Service.Down but does nothing.
func (*EmptyService) Info ¶
func (e *EmptyService) Info(qFlag bool) (InfoSet, error)
Info implements Service.Info but does nothing.
func (*EmptyService) Kill ¶
func (e *EmptyService) Kill() error
Kill implements Service.Kill but does nothing.
func (*EmptyService) Log ¶
func (e *EmptyService) Log() error
Log implements Service.Log but does nothing.
func (*EmptyService) Pause ¶
func (e *EmptyService) Pause() error
Pause implements Service.Pause but does nothing.
func (*EmptyService) Pull ¶
func (e *EmptyService) Pull() error
Pull implements Service.Pull but does nothing.
func (*EmptyService) Restart ¶
func (e *EmptyService) Restart() error
Restart implements Service.Restart but does nothing.
func (*EmptyService) Scale ¶
func (e *EmptyService) Scale(count int) error
Scale implements Service.Scale but does nothing.
func (*EmptyService) Start ¶
func (e *EmptyService) Start() error
Start implements Service.Start but does nothing.
func (*EmptyService) Stop ¶ added in v0.2.0
func (e *EmptyService) Stop() error
Stop implements Service.Stop() but does nothing.
func (*EmptyService) Unpause ¶
func (e *EmptyService) Unpause() error
Unpause implements Service.Pause but does nothing.
func (*EmptyService) Up ¶
func (e *EmptyService) Up() error
Up implements Service.Up but does nothing.
type Project ¶
type Project struct { Name string Configs *config.Configs Files []string ReloadCallback func() error // contains filtered or unexported fields }
Project holds libcompose project information.
func NewProject ¶
NewProject creates a new project with the specified context.
func (*Project) AddConfig ¶
func (p *Project) AddConfig(name string, config *config.ServiceConfig) error
AddConfig adds the specified service config for the specified name.
func (*Project) AddListener ¶
AddListener adds the specified listener to the project.
func (*Project) CreateService ¶
CreateService creates a service with the specified name based. If there is no config in the project for this service, it will return an error.
func (*Project) Down ¶
Down stops the specified services and clean related containers (like docker stop + docker rm).
func (*Project) ListStoppedContainers ¶
ListStoppedContainers lists the stopped containers for the specified services.
func (*Project) Load ¶
Load loads the specified byte array (the composefile content) and adds the service configuration to the project. FIXME is it needed ?
func (*Project) Notify ¶
Notify notifies all project listener with the specified eventType, service name and datas.
func (*Project) Parse ¶
Parse populates project information based on its context. It sets up the name, the composefile and the composebytes (the composefile content).
func (*Project) Run ¶ added in v0.2.0
Run executes a one off command (like `docker run image command`).
type Service ¶
type Service interface { Info(qFlag bool) (InfoSet, error) Name() string Build() error Create() error Up() error Start() error Stop() error Down() error Delete() error Restart() error Log() error Pull() error Kill() error Config() *config.ServiceConfig DependentServices() []ServiceRelationship Containers() ([]Container, error) Scale(count int) error Pause() error Unpause() error Run(commandParts []string) (int, error) }
Service defines what a libcompose service provides.
type ServiceFactory ¶
type ServiceFactory interface {
Create(project *Project, name string, serviceConfig *config.ServiceConfig) (Service, error)
}
ServiceFactory is an interface factory to create Service object for the specified project, with the specified name and service configuration.
type ServiceRelationship ¶
type ServiceRelationship struct {
Target, Alias string
Type ServiceRelationshipType
Optional bool
}
ServiceRelationship holds the relationship information between two services.
func DefaultDependentServices ¶
func DefaultDependentServices(p *Project, s Service) []ServiceRelationship
DefaultDependentServices return the dependent services (as an array of ServiceRelationship) for the specified project and service. It looks for : links, volumesFrom, net and ipc configuration.
func NewServiceRelationship ¶
func NewServiceRelationship(nameAlias string, relType ServiceRelationshipType) ServiceRelationship
NewServiceRelationship creates a new Relationship based on the specified alias and relationship type.
type ServiceRelationshipType ¶
type ServiceRelationshipType string
ServiceRelationshipType defines the type of service relationship.