diff --git a/api/client/node/ps.go b/api/client/node/ps.go index 12e8b8d9d0..9809749748 100644 --- a/api/client/node/ps.go +++ b/api/client/node/ps.go @@ -15,6 +15,7 @@ import ( type psOptions struct { nodeID string noResolve bool + noTrunc bool filter opts.FilterOpt } @@ -31,6 +32,7 @@ func newPSCommand(dockerCli *client.DockerCli) *cobra.Command { }, } flags := cmd.Flags() + 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") @@ -59,5 +61,5 @@ func runPS(dockerCli *client.DockerCli, opts psOptions) error { return err } - return task.Print(dockerCli, ctx, tasks, idresolver.New(client, opts.noResolve)) + return task.Print(dockerCli, ctx, tasks, idresolver.New(client, opts.noResolve), opts.noTrunc) } diff --git a/api/client/service/ps.go b/api/client/service/ps.go index 01df5a8139..ff0eccda4b 100644 --- a/api/client/service/ps.go +++ b/api/client/service/ps.go @@ -16,6 +16,7 @@ import ( type psOptions struct { serviceID string noResolve bool + noTrunc bool filter opts.FilterOpt } @@ -32,6 +33,7 @@ func newPSCommand(dockerCli *client.DockerCli) *cobra.Command { }, } flags := cmd.Flags() + 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") @@ -66,5 +68,5 @@ func runPS(dockerCli *client.DockerCli, opts psOptions) error { return err } - return task.Print(dockerCli, ctx, tasks, idresolver.New(client, opts.noResolve)) + return task.Print(dockerCli, ctx, tasks, idresolver.New(client, opts.noResolve), opts.noTrunc) } diff --git a/api/client/stack/ps.go b/api/client/stack/ps.go index 2571529b46..c26aad957b 100644 --- a/api/client/stack/ps.go +++ b/api/client/stack/ps.go @@ -20,6 +20,7 @@ import ( type psOptions struct { all bool filter opts.FilterOpt + noTrunc bool namespace string noResolve bool } @@ -38,6 +39,7 @@ func newPSCommand(dockerCli *client.DockerCli) *cobra.Command { } flags := cmd.Flags() flags.BoolVarP(&opts.all, "all", "a", false, "Display all tasks") + 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") @@ -66,5 +68,5 @@ func runPS(dockerCli *client.DockerCli, opts psOptions) error { return nil } - return task.Print(dockerCli, ctx, tasks, idresolver.New(client, opts.noResolve)) + return task.Print(dockerCli, ctx, tasks, idresolver.New(client, opts.noResolve), opts.noTrunc) } diff --git a/api/client/task/print.go b/api/client/task/print.go index 954aef7eb4..94e7fb050c 100644 --- a/api/client/task/print.go +++ b/api/client/task/print.go @@ -41,7 +41,7 @@ func (t tasksBySlot) Less(i, j int) bool { } // Print task information in a table format -func Print(dockerCli *client.DockerCli, ctx context.Context, tasks []swarm.Task, resolver *idresolver.IDResolver) error { +func Print(dockerCli *client.DockerCli, ctx context.Context, tasks []swarm.Task, resolver *idresolver.IDResolver, noTrunc bool) error { sort.Stable(tasksBySlot(tasks)) writer := tabwriter.NewWriter(dockerCli.Out(), 0, 4, 2, ' ', 0) @@ -75,7 +75,7 @@ func Print(dockerCli *client.DockerCli, ctx context.Context, tasks []swarm.Task, // Trim and quote the error message. taskErr := task.Status.Err - if len(taskErr) > maxErrLength { + if !noTrunc && len(taskErr) > maxErrLength { taskErr = fmt.Sprintf("%s…", taskErr[:maxErrLength-1]) } if len(taskErr) > 0 { diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index bd35434529..6d7278bc57 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -1713,7 +1713,7 @@ _docker_service_ps() { case "$cur" in -*) - COMPREPLY=( $( compgen -W "--all -a --filter -f --help --no-resolve" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "--all -a --filter -f --help --no-resolve --no-trunc" -- "$cur" ) ) ;; *) local counter=$(__docker_pos_first_nonflag '--filter|-f') @@ -2085,7 +2085,7 @@ _docker_node_ps() { case "$cur" in -*) - COMPREPLY=( $( compgen -W "--all -a --filter -f --help --no-resolve" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "--all -a --filter -f --help --no-resolve --no-trunc" -- "$cur" ) ) ;; *) local counter=$(__docker_pos_first_nonflag '--filter|-f') diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index d09445bf71..733477cbb9 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -841,6 +841,7 @@ __docker_node_subcommand() { "($help -a --all)"{-a,--all}"[Display all instances]" \ "($help)*"{-f=,--filter=}"[Provide filter values]:filter:->filter-options" \ "($help)--no-resolve[Do not map IDs to Names]" \ + "($help)--no-trunc[Do not truncate output]" \ "($help -)1:node:__docker_complete_nodes" && ret=0 case $state in (filter-options) @@ -1156,6 +1157,7 @@ __docker_service_subcommand() { "($help -a --all)"{-a,--all}"[Display all tasks]" \ "($help)*"{-f=,--filter=}"[Provide filter values]:filter:->filter-options" \ "($help)--no-resolve[Do not map IDs to Names]" \ + "($help)--no-trunc[Do not truncate output]" \ "($help -)1:service:__docker_complete_services" && ret=0 case $state in (filter-options) diff --git a/docs/reference/commandline/node_ps.md b/docs/reference/commandline/node_ps.md index 24b13d582a..fc003e9224 100644 --- a/docs/reference/commandline/node_ps.md +++ b/docs/reference/commandline/node_ps.md @@ -21,6 +21,7 @@ Options: -f, --filter value Filter output based on conditions provided --help Print usage --no-resolve Do not map IDs to Names + --no-trunc Do not truncate output ``` Lists all the tasks on a Node that Docker knows about. You can filter using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section for more information about available filter options. diff --git a/docs/reference/commandline/service_ps.md b/docs/reference/commandline/service_ps.md index 4fb27699be..90f67fb39b 100644 --- a/docs/reference/commandline/service_ps.md +++ b/docs/reference/commandline/service_ps.md @@ -21,6 +21,7 @@ Options: -f, --filter value Filter output based on conditions provided --help Print usage --no-resolve Do not map IDs to Names + --no-trunc Do not truncate output ``` Lists the tasks that are running as part of the specified service. This command