project

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2017 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const ComposeVersion = "1.5.0"

ComposeVersion is name of docker-compose.yml file syntax supported version

View Source
const RelTypeDependsOn = ServiceRelationshipType("dependsOn")

RelTypeDependsOn means the dependency was explicitly set using 'depends_on'.

View Source
const RelTypeIpcNamespace = ServiceRelationshipType("ipc")

RelTypeIpcNamespace means the service share the same ipc namespace.

View Source
const RelTypeLink = ServiceRelationshipType("")

RelTypeLink means the services are linked (docker links).

View Source
const RelTypeNetNamespace = ServiceRelationshipType("netns")

RelTypeNetNamespace means the services share the same network namespace.

View Source
const RelTypeNetworkMode = ServiceRelationshipType("networkMode")

RelTypeNetworkMode means the services depends on another service on networkMode

View Source
const RelTypeVolumesFrom = ServiceRelationshipType("volumesFrom")

RelTypeVolumesFrom means the services share some volumes.

Variables

View Source
var (
	StateExecuted = ServiceState("executed")
	StateUnknown  = ServiceState("unknown")
)

State definitions

View Source
var (
	ErrRestart     = errors.New("Restart execution")
	ErrUnsupported = errors.New("UnsupportedOperation")
)

Error definitions

Functions

func IsNamedVolume

func IsNamedVolume(volume string) bool

IsNamedVolume returns whether the specified volume (string) is a named volume or not.

func NameAlias

func NameAlias(name string) (string, string)

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

func NewDefaultListener(p *Project) chan<- events.Event

NewDefaultListener create a default listener for the specified project.

Types

type Context

type Context struct {
	ComposeFiles []string
	ComposeBytes [][]byte
	ProjectName  string

	ServiceFactory      ServiceFactory
	VolumesFactory      VolumesFactory
	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(ctx context.Context, buildOptions options.Build) error

Build implements Service.Build but does nothing.

func (*EmptyService) Config

func (e *EmptyService) Config() *config.ServiceConfig

Config implements Service.Config with empty config.

func (*EmptyService) Create

func (e *EmptyService) Create(ctx context.Context, options options.Create) error

Create implements Service.Create but does nothing.

func (*EmptyService) DependentServices

func (e *EmptyService) DependentServices() []ServiceRelationship

DependentServices implements Service.DependentServices with empty slice.

func (*EmptyService) Log

func (e *EmptyService) Log(ctx context.Context, follow bool) error

Log implements Service.Log but does nothing.

func (*EmptyService) Name

func (e *EmptyService) Name() string

Name implements Service.Name with empty name.

func (*EmptyService) Up

func (e *EmptyService) Up(ctx context.Context, options options.Up) error

Up implements Service.Up but does nothing.

type Project

type Project struct {
	Name           string
	ServiceConfigs *config.ServiceConfigs
	VolumeConfigs  map[string]*config.VolumeConfig
	NetworkConfigs map[string]*config.NetworkConfig
	Files          []string
	ReloadCallback func() error
	ParseOptions   *config.ParseOptions
	// contains filtered or unexported fields
}

Project holds libcompose project information.

func NewProject

func NewProject(context *Context, parseOptions *config.ParseOptions) *Project

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

func (p *Project) AddListener(c chan<- events.Event)

AddListener adds the specified listener to the project. This implements implicitly events.Emitter.

func (*Project) AddNetworkConfig

func (p *Project) AddNetworkConfig(name string, config *config.NetworkConfig) error

AddNetworkConfig adds the specified network config for the specified name.

func (*Project) AddVolumeConfig

func (p *Project) AddVolumeConfig(name string, config *config.VolumeConfig) error

AddVolumeConfig adds the specified volume config for the specified name.

func (*Project) Build

func (p *Project) Build(ctx context.Context, buildOptions options.Build, services ...string) error

Build builds the specified services (like docker build).

func (*Project) Create

func (p *Project) Create(ctx context.Context, options options.Create, services ...string) error

Create creates the specified services (like docker create).

func (*Project) CreateService

func (p *Project) CreateService(name string) (Service, error)

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) GetServiceConfig

func (p *Project) GetServiceConfig(name string) (*config.ServiceConfig, bool)

GetServiceConfig looks up a service config for a given service name, returning the ServiceConfig object and a bool flag indicating whether it was found

func (*Project) Load

func (p *Project) Load(bytes []byte) error

Load loads the specified byte array (the composefile content) and adds the service configuration to the project. FIXME is it needed ?

func (*Project) Log

func (p *Project) Log(ctx context.Context, follow bool, services ...string) error

Log aggregates and prints out the logs for the specified services.

func (*Project) Notify

func (p *Project) Notify(eventType events.EventType, serviceName string, data map[string]string)

Notify notifies all project listener with the specified eventType, service name and datas. This implements implicitly events.Notifier interface.

func (*Project) Parse

func (p *Project) Parse() error

Parse populates project information based on its context. It sets up the name, the composefile and the composebytes (the composefile content).

func (*Project) Up

func (p *Project) Up(ctx context.Context, options options.Up, services ...string) error

Up creates and starts the specified services (kinda like docker run).

type Service

type Service interface {
	Build(ctx context.Context, buildOptions options.Build) error
	Create(ctx context.Context, options options.Create) error
	Log(ctx context.Context, follow bool) error
	Up(ctx context.Context, options options.Up) error

	DependentServices() []ServiceRelationship
	Config() *config.ServiceConfig
	Name() string
}

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.

type ServiceState

type ServiceState string

ServiceState holds the state of a service.

type Volumes

type Volumes interface {
	Initialize(ctx context.Context) error
	Remove(ctx context.Context) error
}

Volumes defines the methods a libcompose volume aggregate should define.

type VolumesFactory

type VolumesFactory interface {
	Create(projectName string, volumeConfigs map[string]*config.VolumeConfig, serviceConfigs *config.ServiceConfigs, volumeEnabled bool) (Volumes, error)
}

VolumesFactory is an interface factory to create Volumes object for the specified configurations (service, volumes, …)

Directories

Path Synopsis
Package events holds event structures, methods and functions.
Package events holds event structures, methods and functions.

Jump to

Keyboard shortcuts

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