Add format flag to network inspect
…for consistency as docker inspect and docker volume inspect supports it too Signed-off-by: Vincent Demeester <vincent@sbr.pm> Upstream-commit: 295c27388dd1e7cc4196fbb8ffe0646b33bacb5b Component: engine
This commit is contained in:
@ -8,6 +8,7 @@ import (
|
||||
"net"
|
||||
"strings"
|
||||
"text/tabwriter"
|
||||
"text/template"
|
||||
|
||||
"github.com/docker/docker/api/types"
|
||||
Cli "github.com/docker/docker/cli"
|
||||
@ -203,14 +204,25 @@ func (cli *DockerCli) CmdNetworkLs(args ...string) error {
|
||||
// Usage: docker network inspect [OPTIONS] <NETWORK> [NETWORK...]
|
||||
func (cli *DockerCli) CmdNetworkInspect(args ...string) error {
|
||||
cmd := Cli.Subcmd("network inspect", []string{"NETWORK [NETWORK...]"}, "Displays detailed information on one or more networks", false)
|
||||
tmplStr := cmd.String([]string{"f", "-format"}, "", "Format the output using the given go template")
|
||||
cmd.Require(flag.Min, 1)
|
||||
err := cmd.ParseFlags(args, true)
|
||||
if err != nil {
|
||||
|
||||
if err := cmd.ParseFlags(args, true); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var tmpl *template.Template
|
||||
if *tmplStr != "" {
|
||||
var err error
|
||||
tmpl, err = template.New("").Funcs(funcMap).Parse(*tmplStr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
status := 0
|
||||
var networks []*types.NetworkResource
|
||||
var networks []types.NetworkResource
|
||||
buf := new(bytes.Buffer)
|
||||
for _, name := range cmd.Args() {
|
||||
obj, _, err := readBody(cli.call("GET", "/networks/"+name, nil, nil))
|
||||
if err != nil {
|
||||
@ -222,12 +234,34 @@ func (cli *DockerCli) CmdNetworkInspect(args ...string) error {
|
||||
status = 1
|
||||
continue
|
||||
}
|
||||
networkResource := types.NetworkResource{}
|
||||
var networkResource types.NetworkResource
|
||||
if err := json.NewDecoder(bytes.NewReader(obj)).Decode(&networkResource); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
networks = append(networks, &networkResource)
|
||||
if tmpl == nil {
|
||||
networks = append(networks, networkResource)
|
||||
continue
|
||||
}
|
||||
|
||||
if err := tmpl.Execute(buf, &networkResource); err != nil {
|
||||
if err := tmpl.Execute(buf, &networkResource); err != nil {
|
||||
fmt.Fprintf(cli.err, "%s\n", err)
|
||||
return Cli.StatusError{StatusCode: 1}
|
||||
}
|
||||
}
|
||||
buf.WriteString("\n")
|
||||
}
|
||||
|
||||
if tmpl != nil {
|
||||
if _, err := io.Copy(cli.out, buf); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
if len(networks) == 0 {
|
||||
io.WriteString(cli.out, "[]")
|
||||
}
|
||||
|
||||
b, err := json.MarshalIndent(networks, "", " ")
|
||||
|
||||
Reference in New Issue
Block a user