mirror of https://github.com/docker/compose.git
Merge pull request #1218 from docker/ps_all
Introduce --all option on compose ps
This commit is contained in:
commit
b5ac3183d7
|
@ -124,19 +124,19 @@ func (cs *aciComposeService) Down(ctx context.Context, projectName string, optio
|
|||
return err
|
||||
}
|
||||
|
||||
func (cs *aciComposeService) Ps(ctx context.Context, project string) ([]compose.ContainerSummary, error) {
|
||||
func (cs *aciComposeService) Ps(ctx context.Context, projectName string, options compose.PsOptions) ([]compose.ContainerSummary, error) {
|
||||
groupsClient, err := login.NewContainerGroupsClient(cs.ctx.SubscriptionID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
group, err := groupsClient.Get(ctx, cs.ctx.ResourceGroup, project)
|
||||
group, err := groupsClient.Get(ctx, cs.ctx.ResourceGroup, projectName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if group.Containers == nil || len(*group.Containers) == 0 {
|
||||
return nil, fmt.Errorf("no containers found in ACI container group %s", project)
|
||||
return nil, fmt.Errorf("no containers found in ACI container group %s", projectName)
|
||||
}
|
||||
|
||||
res := []compose.ContainerSummary{}
|
||||
|
@ -158,7 +158,7 @@ func (cs *aciComposeService) Ps(ctx context.Context, project string) ([]compose.
|
|||
res = append(res, compose.ContainerSummary{
|
||||
ID: id,
|
||||
Name: id,
|
||||
Project: project,
|
||||
Project: projectName,
|
||||
Service: *container.Name,
|
||||
State: convert.GetStatus(container, group),
|
||||
Publishers: publishers,
|
||||
|
|
|
@ -64,7 +64,7 @@ func (c *composeService) Logs(context.Context, string, compose.LogConsumer, comp
|
|||
return errdefs.ErrNotImplemented
|
||||
}
|
||||
|
||||
func (c *composeService) Ps(context.Context, string) ([]compose.ContainerSummary, error) {
|
||||
func (c *composeService) Ps(context.Context, string, compose.PsOptions) ([]compose.ContainerSummary, error) {
|
||||
return nil, errdefs.ErrNotImplemented
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ type Service interface {
|
|||
// Logs executes the equivalent to a `compose logs`
|
||||
Logs(ctx context.Context, projectName string, consumer LogConsumer, options LogOptions) error
|
||||
// Ps executes the equivalent to a `compose ps`
|
||||
Ps(ctx context.Context, projectName string) ([]ContainerSummary, error)
|
||||
Ps(ctx context.Context, projectName string, options PsOptions) ([]ContainerSummary, error)
|
||||
// List executes the equivalent to a `docker stack ls`
|
||||
List(ctx context.Context) ([]Stack, error)
|
||||
// Convert translate compose model into backend's native format
|
||||
|
@ -91,6 +91,11 @@ type RunOptions struct {
|
|||
Reader io.Reader
|
||||
}
|
||||
|
||||
// PsOptions group options of the Ps API
|
||||
type PsOptions struct {
|
||||
All bool
|
||||
}
|
||||
|
||||
// PortPublisher hold status about published port
|
||||
type PortPublisher struct {
|
||||
URL string
|
||||
|
|
|
@ -27,12 +27,14 @@ import (
|
|||
"github.com/spf13/cobra"
|
||||
|
||||
"github.com/docker/compose-cli/api/client"
|
||||
"github.com/docker/compose-cli/api/compose"
|
||||
"github.com/docker/compose-cli/cli/formatter"
|
||||
)
|
||||
|
||||
type psOptions struct {
|
||||
*projectOptions
|
||||
Format string
|
||||
All bool
|
||||
Quiet bool
|
||||
}
|
||||
|
||||
|
@ -49,6 +51,7 @@ func psCommand(p *projectOptions) *cobra.Command {
|
|||
}
|
||||
psCmd.Flags().StringVar(&opts.Format, "format", "pretty", "Format the output. Values: [pretty | json].")
|
||||
psCmd.Flags().BoolVarP(&opts.Quiet, "quiet", "q", false, "Only display IDs")
|
||||
psCmd.Flags().BoolVarP(&opts.All, "all", "a", false, "Show all stopped containers (including those created by the run command)")
|
||||
return psCmd
|
||||
}
|
||||
|
||||
|
@ -62,7 +65,9 @@ func runPs(ctx context.Context, opts psOptions) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
containers, err := c.ComposeService().Ps(ctx, projectName)
|
||||
containers, err := c.ComposeService().Ps(ctx, projectName, compose.PsOptions{
|
||||
All: opts.All,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ func (p *proxy) Services(ctx context.Context, request *composev1.ComposeServices
|
|||
projectName = project.Name
|
||||
}
|
||||
response := []*composev1.Service{}
|
||||
_, err := Client(ctx).ComposeService().Ps(ctx, projectName)
|
||||
_, err := Client(ctx).ComposeService().Ps(ctx, projectName, compose.PsOptions{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -162,8 +162,8 @@ func (e ecsLocalSimulation) Logs(ctx context.Context, projectName string, consum
|
|||
return e.compose.Logs(ctx, projectName, consumer, options)
|
||||
}
|
||||
|
||||
func (e ecsLocalSimulation) Ps(ctx context.Context, projectName string) ([]compose.ContainerSummary, error) {
|
||||
return e.compose.Ps(ctx, projectName)
|
||||
func (e ecsLocalSimulation) Ps(ctx context.Context, projectName string, options compose.PsOptions) ([]compose.ContainerSummary, error) {
|
||||
return e.compose.Ps(ctx, projectName, options)
|
||||
}
|
||||
func (e ecsLocalSimulation) List(ctx context.Context) ([]compose.Stack, error) {
|
||||
return e.compose.List(ctx)
|
||||
|
|
|
@ -22,12 +22,12 @@ import (
|
|||
"github.com/docker/compose-cli/api/compose"
|
||||
)
|
||||
|
||||
func (b *ecsAPIService) Ps(ctx context.Context, project string) ([]compose.ContainerSummary, error) {
|
||||
cluster, err := b.aws.GetStackClusterID(ctx, project)
|
||||
func (b *ecsAPIService) Ps(ctx context.Context, projectName string, options compose.PsOptions) ([]compose.ContainerSummary, error) {
|
||||
cluster, err := b.aws.GetStackClusterID(ctx, projectName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
servicesARN, err := b.aws.ListStackServices(ctx, project)
|
||||
servicesARN, err := b.aws.ListStackServices(ctx, projectName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ func (b *ecsAPIService) Ps(ctx context.Context, project string) ([]compose.Conta
|
|||
return nil, err
|
||||
}
|
||||
|
||||
tasks, err := b.aws.DescribeServiceTasks(ctx, cluster, project, service.Name)
|
||||
tasks, err := b.aws.DescribeServiceTasks(ctx, cluster, projectName, service.Name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ func (s *composeService) Logs(ctx context.Context, projectName string, consumer
|
|||
}
|
||||
|
||||
// Ps executes the equivalent to a `compose ps`
|
||||
func (s *composeService) Ps(ctx context.Context, projectName string) ([]compose.ContainerSummary, error) {
|
||||
func (s *composeService) Ps(ctx context.Context, projectName string, options compose.PsOptions) ([]compose.ContainerSummary, error) {
|
||||
return nil, errdefs.ErrNotImplemented
|
||||
}
|
||||
|
||||
|
|
|
@ -27,11 +27,12 @@ import (
|
|||
"github.com/docker/compose-cli/api/compose"
|
||||
)
|
||||
|
||||
func (s *composeService) Ps(ctx context.Context, projectName string) ([]compose.ContainerSummary, error) {
|
||||
func (s *composeService) Ps(ctx context.Context, projectName string, options compose.PsOptions) ([]compose.ContainerSummary, error) {
|
||||
containers, err := s.apiClient.ContainerList(ctx, moby.ContainerListOptions{
|
||||
Filters: filters.NewArgs(
|
||||
projectFilter(projectName),
|
||||
),
|
||||
All: options.All,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
Loading…
Reference in New Issue