Skip to content

Commit

Permalink
Merge pull request moby#27654 from gaocegege/add-quiet-mode-to-servic…
Browse files Browse the repository at this point in the history
…e-ps

Add -q option to `docker service ps`
  • Loading branch information
vdemeester committed Oct 28, 2016
2 parents 8818315 + 4c1560e commit 4b65bdd
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 3 deletions.
5 changes: 5 additions & 0 deletions command/service/ps.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (

type psOptions struct {
serviceID string
quiet bool
noResolve bool
noTrunc bool
filter opts.FilterOpt
Expand All @@ -32,6 +33,7 @@ func newPsCommand(dockerCli *command.DockerCli) *cobra.Command {
},
}
flags := cmd.Flags()
flags.BoolVarP(&opts.quiet, "quiet", "q", false, "Only display task IDs")
flags.BoolVar(&opts.noTrunc, "no-trunc", false, "Do not truncate output")
flags.BoolVar(&opts.noResolve, "no-resolve", false, "Do not map IDs to Names")
flags.VarP(&opts.filter, "filter", "f", "Filter output based on conditions provided")
Expand Down Expand Up @@ -67,5 +69,8 @@ func runPS(dockerCli *command.DockerCli, opts psOptions) error {
return err
}

if opts.quiet {
return task.PrintQuiet(dockerCli, tasks)
}
return task.Print(dockerCli, ctx, tasks, idresolver.New(client, opts.noResolve), opts.noTrunc)
}
29 changes: 26 additions & 3 deletions command/task/print.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package task

import (
"fmt"
"io"
"sort"
"strings"
"text/tabwriter"
Expand Down Expand Up @@ -40,7 +41,9 @@ func (t tasksBySlot) Less(i, j int) bool {
return t[j].Meta.CreatedAt.Before(t[i].CreatedAt)
}

// Print task information in a table format
// Print task information in a table format.
// Besides this, command `docker node ps <node>`
// and `docker stack ps` will call this, too.
func Print(dockerCli *command.DockerCli, ctx context.Context, tasks []swarm.Task, resolver *idresolver.IDResolver, noTrunc bool) error {
sort.Stable(tasksBySlot(tasks))

Expand All @@ -50,6 +53,27 @@ func Print(dockerCli *command.DockerCli, ctx context.Context, tasks []swarm.Task
defer writer.Flush()
fmt.Fprintln(writer, strings.Join([]string{"NAME", "IMAGE", "NODE", "DESIRED STATE", "CURRENT STATE", "ERROR"}, "\t"))

if err := print(writer, ctx, tasks, resolver, noTrunc); err != nil {
return err
}

return nil
}

// PrintQuiet shows task list in a quiet way.
func PrintQuiet(dockerCli *command.DockerCli, tasks []swarm.Task) error {
sort.Stable(tasksBySlot(tasks))

out := dockerCli.Out()

for _, task := range tasks {
fmt.Fprintln(out, task.ID)
}

return nil
}

func print(out io.Writer, ctx context.Context, tasks []swarm.Task, resolver *idresolver.IDResolver, noTrunc bool) error {
prevServiceName := ""
prevSlot := 0
for _, task := range tasks {
Expand Down Expand Up @@ -94,7 +118,7 @@ func Print(dockerCli *command.DockerCli, ctx context.Context, tasks []swarm.Task
}

fmt.Fprintf(
writer,
out,
psTaskItemFmt,
indentedName,
task.Spec.ContainerSpec.Image,
Expand All @@ -105,6 +129,5 @@ func Print(dockerCli *command.DockerCli, ctx context.Context, tasks []swarm.Task
taskErr,
)
}

return nil
}

0 comments on commit 4b65bdd

Please sign in to comment.