瀏覽代碼

Merge pull request #1218 from docker/ps_all

Introduce --all option on compose ps
Nicolas De loof 4 年之前
父節點
當前提交
b5ac3183d7
共有 9 個文件被更改,包括 27 次插入16 次删除
  1. 4 4
      aci/compose.go
  2. 1 1
      api/client/compose.go
  3. 6 1
      api/compose/api.go
  4. 6 1
      cli/cmd/compose/ps.go
  5. 1 1
      cli/server/proxy/compose.go
  6. 2 2
      ecs/local/compose.go
  7. 4 4
      ecs/ps.go
  8. 1 1
      kube/compose.go
  9. 2 1
      local/compose/ps.go

+ 4 - 4
aci/compose.go

@@ -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,

+ 1 - 1
api/client/compose.go

@@ -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
 }
 

+ 6 - 1
api/compose/api.go

@@ -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

+ 6 - 1
cli/cmd/compose/ps.go

@@ -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
 	}

+ 1 - 1
cli/server/proxy/compose.go

@@ -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
 	}

+ 2 - 2
ecs/local/compose.go

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

+ 4 - 4
ecs/ps.go

@@ -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
 		}

+ 1 - 1
kube/compose.go

@@ -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
 }
 

+ 2 - 1
local/compose/ps.go

@@ -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