1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- Copyright 2020 Docker, Inc.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package compose
- import (
- "context"
- "io"
- "github.com/compose-spec/compose-go/types"
- )
- // Service manages a compose project
- type Service interface {
- // Up executes the equivalent to a `compose up`
- Up(ctx context.Context, project *types.Project) error
- // Down executes the equivalent to a `compose down`
- Down(ctx context.Context, projectName string) error
- // Logs executes the equivalent to a `compose logs`
- Logs(ctx context.Context, projectName string, w io.Writer) error
- // Ps executes the equivalent to a `compose ps`
- Ps(ctx context.Context, projectName string) ([]ServiceStatus, error)
- // List executes the equivalent to a `docker stack ls`
- List(ctx context.Context, projectName string) ([]Stack, error)
- // Convert translate compose model into backend's native format
- Convert(ctx context.Context, project *types.Project) ([]byte, error)
- }
- // PortPublisher hold status about published port
- type PortPublisher struct {
- URL string
- TargetPort int
- PublishedPort int
- Protocol string
- }
- // ServiceStatus hold status about a service
- type ServiceStatus struct {
- ID string
- Name string
- Replicas int
- Desired int
- Ports []string
- Publishers []PortPublisher
- }
- type State string
- const (
- // Starting indicates that stack is being deployed
- STARTING State = "starting"
- // Runnning indicates that stack is deployed and services are running
- RUNNING State = "running"
- // Updating indicates that some stack resources are being recreated
- UPDATING State = "updating"
- // Removing indicates that stack is being deleted
- REMOVING State = "removing"
- )
- // StackStatus hold status about a compose application/stack
- type Stack struct {
- ID string
- Name string
- Status State
- }
|