Documentation ¶
Index ¶
- Constants
- Variables
- func InDependencyOrder(ctx context.Context, project *types.Project, ...) error
- func InReverseDependencyOrder(ctx context.Context, project *types.Project, ...) error
- func NewComposeService(dockerCli command.Cli) api.Service
- func ServiceHash(o types.ServiceConfig) (string, error)
- func ToMobyEnv(environment compose.MappingWithEquals) []string
- func ToMobyHealthCheck(check *compose.HealthCheckConfig) *container.HealthConfig
- func ToSeconds(d *compose.Duration) *int
- func WrapCategorisedComposeError(err error, failure FailureCategory) error
- func WrapComposeError(err error) error
- type ContainerStdin
- type ContainerStdout
- type Containers
- type Error
- type FailureCategory
- type Graph
- func (g *Graph) AddEdge(source string, destination string) error
- func (g *Graph) AddVertex(key string, service string, initialStatus ServiceStatus)
- func (g *Graph) FilterChildren(key string, status ServiceStatus) []*Vertex
- func (g *Graph) FilterParents(key string, status ServiceStatus) []*Vertex
- func (g *Graph) HasCycles() (bool, error)
- func (g *Graph) Leaves() []*Vertex
- func (g *Graph) Roots() []*Vertex
- func (g *Graph) UpdateStatus(key string, status ServiceStatus)
- type ServiceStatus
- type Vertex
Constants ¶
const ( // ContainerCreated created status ContainerCreated = "created" // ContainerRestarting restarting status ContainerRestarting = "restarting" // ContainerRunning running status ContainerRunning = "running" // ContainerRemoving removing status ContainerRemoving = "removing" //nolint // ContainerPaused paused status ContainerPaused = "paused" //nolint // ContainerExited exited status ContainerExited = "exited" //nolint // ContainerDead dead status ContainerDead = "dead" //nolint )
const ( // APISource is sent for API metrics APISource = "api" // SuccessStatus command success SuccessStatus = "success" // FailureStatus command failure FailureStatus = "failure" // ComposeParseFailureStatus failure while parsing compose file ComposeParseFailureStatus = "failure-compose-parse" // FileNotFoundFailureStatus failure getting compose file FileNotFoundFailureStatus = "failure-file-not-found" // CommandSyntaxFailureStatus failure reading command CommandSyntaxFailureStatus = "failure-cmd-syntax" // BuildFailureStatus failure building imge BuildFailureStatus = "failure-build" // PullFailureStatus failure pulling imge PullFailureStatus = "failure-pull" // CanceledStatus command canceled CanceledStatus = "canceled" )
const ServiceConditionRunningOrHealthy = "running_or_healthy"
ServiceConditionRunningOrHealthy is a service condition on statys running or healthy
Variables ¶
var ( // FileNotFoundFailure failure for compose file not found FileNotFoundFailure = FailureCategory{MetricsStatus: FileNotFoundFailureStatus, ExitCode: 14} // ComposeParseFailure failure for composefile parse error ComposeParseFailure = FailureCategory{MetricsStatus: ComposeParseFailureStatus, ExitCode: 15} // CommandSyntaxFailure failure for command line syntax CommandSyntaxFailure = FailureCategory{MetricsStatus: CommandSyntaxFailureStatus, ExitCode: 16} //BuildFailure failure while building images. BuildFailure = FailureCategory{MetricsStatus: BuildFailureStatus, ExitCode: 17} // PullFailure failure while pulling image PullFailure = FailureCategory{MetricsStatus: PullFailureStatus, ExitCode: 18} )
var Separator = "-"
Separator is used for naming components
Functions ¶
func InDependencyOrder ¶
func InDependencyOrder(ctx context.Context, project *types.Project, fn func(context.Context, string) error) error
InDependencyOrder applies the function to the services of the project taking in account the dependency order
func InReverseDependencyOrder ¶
func InReverseDependencyOrder(ctx context.Context, project *types.Project, fn func(context.Context, string) error) error
InReverseDependencyOrder applies the function to the services of the project in reverse order of dependencies
func NewComposeService ¶
NewComposeService create a local implementation of the compose.Service API
func ServiceHash ¶
func ServiceHash(o types.ServiceConfig) (string, error)
ServiceHash compute configuration has for a service
func ToMobyEnv ¶
func ToMobyEnv(environment compose.MappingWithEquals) []string
ToMobyEnv convert into []string
func ToMobyHealthCheck ¶
func ToMobyHealthCheck(check *compose.HealthCheckConfig) *container.HealthConfig
ToMobyHealthCheck convert into container.HealthConfig
func WrapCategorisedComposeError ¶
func WrapCategorisedComposeError(err error, failure FailureCategory) error
WrapCategorisedComposeError wraps the error if not nil, otherwise returns nil
func WrapComposeError ¶
WrapComposeError wraps the error if not nil, otherwise returns nil
Types ¶
type ContainerStdin ¶
type ContainerStdin struct {
moby.HijackedResponse
}
ContainerStdin implement WriteCloser for moby.HijackedResponse
type ContainerStdout ¶
type ContainerStdout struct {
moby.HijackedResponse
}
ContainerStdout implement ReadCloser for moby.HijackedResponse
type Error ¶
type Error struct { Err error Category *FailureCategory }
Error error to categorize failures and extract metrics info
func (Error) GetMetricsFailureCategory ¶
func (e Error) GetMetricsFailureCategory() FailureCategory
GetMetricsFailureCategory get metrics status and error code corresponding to this error
type FailureCategory ¶
FailureCategory sruct regrouping metrics failure status and specific exit code
func ByExitCode ¶
func ByExitCode(exitCode int) FailureCategory
ByExitCode retrieve FailureCategory based on command exit code
type Graph ¶
Graph represents project as service dependencies
func NewGraph ¶
func NewGraph(services types.Services, initialStatus ServiceStatus) *Graph
NewGraph returns the dependency graph of the services
func (*Graph) AddEdge ¶
AddEdge adds a relationship of dependency between vertexes `source` and `destination`
func (*Graph) AddVertex ¶
func (g *Graph) AddVertex(key string, service string, initialStatus ServiceStatus)
AddVertex adds a vertex to the Graph
func (*Graph) FilterChildren ¶
func (g *Graph) FilterChildren(key string, status ServiceStatus) []*Vertex
FilterChildren returns children of a certain vertex that are in a certain status
func (*Graph) FilterParents ¶
func (g *Graph) FilterParents(key string, status ServiceStatus) []*Vertex
FilterParents returns the parents of a certain vertex that are in a certain status
func (*Graph) UpdateStatus ¶
func (g *Graph) UpdateStatus(key string, status ServiceStatus)
UpdateStatus updates the status of a certain vertex
type ServiceStatus ¶
type ServiceStatus int
ServiceStatus indicates the status of a service
const ( ServiceStopped ServiceStatus = iota ServiceStarted )
Services status flags
type Vertex ¶
type Vertex struct { Key string Service string Status ServiceStatus Children map[string]*Vertex Parents map[string]*Vertex }
Vertex represents a service in the dependencies structure
func NewVertex ¶
func NewVertex(key string, service string, initialStatus ServiceStatus) *Vertex
NewVertex is the constructor function for the Vertex
func (*Vertex) GetChildren ¶
GetChildren returns a slice with the child vertexes of the a Vertex
func (*Vertex) GetParents ¶
GetParents returns a slice with the parent vertexes of the a Vertex
Source Files ¶
- attach.go
- build.go
- build_buildkit.go
- build_classic.go
- compose.go
- container.go
- containers.go
- convergence.go
- convert.go
- cp.go
- create.go
- dependencies.go
- down.go
- errors.go
- events.go
- exec.go
- filters.go
- hash.go
- images.go
- kill.go
- logs.go
- ls.go
- metrics.go
- pause.go
- port.go
- printer.go
- ps.go
- pull.go
- push.go
- remove.go
- restart.go
- run.go
- start.go
- stop.go
- top.go
- up.go