|
@@ -6,7 +6,6 @@ import (
|
|
|
"fmt"
|
|
|
"io"
|
|
|
"net"
|
|
|
- "net/http"
|
|
|
"strings"
|
|
|
"text/tabwriter"
|
|
|
"text/template"
|
|
@@ -76,12 +75,8 @@ func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
|
|
|
Options: flOpts.GetAll(),
|
|
|
CheckDuplicate: true,
|
|
|
}
|
|
|
- obj, _, err := readBody(cli.call("POST", "/networks/create", nc, nil))
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- var resp types.NetworkCreateResponse
|
|
|
- err = json.Unmarshal(obj, &resp)
|
|
|
+
|
|
|
+ resp, err := cli.client.NetworkCreate(nc)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -95,15 +90,13 @@ func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
|
|
|
func (cli *DockerCli) CmdNetworkRm(args ...string) error {
|
|
|
cmd := Cli.Subcmd("network rm", []string{"NETWORK [NETWORK...]"}, "Deletes one or more networks", false)
|
|
|
cmd.Require(flag.Min, 1)
|
|
|
- err := cmd.ParseFlags(args, true)
|
|
|
- if err != nil {
|
|
|
+ if err := cmd.ParseFlags(args, true); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
status := 0
|
|
|
for _, net := range cmd.Args() {
|
|
|
- _, _, err = readBody(cli.call("DELETE", "/networks/"+net, nil, nil))
|
|
|
- if err != nil {
|
|
|
+ if err := cli.client.NetworkRemove(net); err != nil {
|
|
|
fmt.Fprintf(cli.err, "%s\n", err)
|
|
|
status = 1
|
|
|
continue
|
|
@@ -121,14 +114,11 @@ func (cli *DockerCli) CmdNetworkRm(args ...string) error {
|
|
|
func (cli *DockerCli) CmdNetworkConnect(args ...string) error {
|
|
|
cmd := Cli.Subcmd("network connect", []string{"NETWORK CONTAINER"}, "Connects a container to a network", false)
|
|
|
cmd.Require(flag.Exact, 2)
|
|
|
- err := cmd.ParseFlags(args, true)
|
|
|
- if err != nil {
|
|
|
+ if err := cmd.ParseFlags(args, true); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- nc := types.NetworkConnect{Container: cmd.Arg(1)}
|
|
|
- _, _, err = readBody(cli.call("POST", "/networks/"+cmd.Arg(0)+"/connect", nc, nil))
|
|
|
- return err
|
|
|
+ return cli.client.NetworkConnect(cmd.Arg(0), cmd.Arg(1))
|
|
|
}
|
|
|
|
|
|
// CmdNetworkDisconnect disconnects a container from a network
|
|
@@ -137,14 +127,11 @@ func (cli *DockerCli) CmdNetworkConnect(args ...string) error {
|
|
|
func (cli *DockerCli) CmdNetworkDisconnect(args ...string) error {
|
|
|
cmd := Cli.Subcmd("network disconnect", []string{"NETWORK CONTAINER"}, "Disconnects container from a network", false)
|
|
|
cmd.Require(flag.Exact, 2)
|
|
|
- err := cmd.ParseFlags(args, true)
|
|
|
- if err != nil {
|
|
|
+ if err := cmd.ParseFlags(args, true); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- nc := types.NetworkConnect{Container: cmd.Arg(1)}
|
|
|
- _, _, err = readBody(cli.call("POST", "/networks/"+cmd.Arg(0)+"/disconnect", nc, nil))
|
|
|
- return err
|
|
|
+ return cli.client.NetworkDisconnect(cmd.Arg(0), cmd.Arg(1))
|
|
|
}
|
|
|
|
|
|
// CmdNetworkLs lists all the netorks managed by docker daemon
|
|
@@ -156,18 +143,11 @@ func (cli *DockerCli) CmdNetworkLs(args ...string) error {
|
|
|
noTrunc := cmd.Bool([]string{"-no-trunc"}, false, "Do not truncate the output")
|
|
|
|
|
|
cmd.Require(flag.Exact, 0)
|
|
|
- err := cmd.ParseFlags(args, true)
|
|
|
-
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- obj, _, err := readBody(cli.call("GET", "/networks", nil, nil))
|
|
|
- if err != nil {
|
|
|
+ if err := cmd.ParseFlags(args, true); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- var networkResources []types.NetworkResource
|
|
|
- err = json.Unmarshal(obj, &networkResources)
|
|
|
+ networkResources, err := cli.client.NetworkList()
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -225,31 +205,19 @@ func (cli *DockerCli) CmdNetworkInspect(args ...string) error {
|
|
|
var networks []types.NetworkResource
|
|
|
buf := new(bytes.Buffer)
|
|
|
for _, name := range cmd.Args() {
|
|
|
- obj, statusCode, err := readBody(cli.call("GET", "/networks/"+name, nil, nil))
|
|
|
+ networkResource, err := cli.client.NetworkInspect(name)
|
|
|
if err != nil {
|
|
|
- if statusCode == http.StatusNotFound {
|
|
|
- fmt.Fprintf(cli.err, "Error: No such network: %s\n", name)
|
|
|
- } else {
|
|
|
- fmt.Fprintf(cli.err, "%s\n", err)
|
|
|
- }
|
|
|
- status = 1
|
|
|
- continue
|
|
|
- }
|
|
|
- var networkResource types.NetworkResource
|
|
|
- if err := json.NewDecoder(bytes.NewReader(obj)).Decode(&networkResource); err != nil {
|
|
|
- return err
|
|
|
+ fmt.Fprintf(cli.err, "%s\n", err)
|
|
|
+ return Cli.StatusError{StatusCode: 1}
|
|
|
}
|
|
|
-
|
|
|
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}
|
|
|
- }
|
|
|
+ fmt.Fprintf(cli.err, "%s\n", err)
|
|
|
+ return Cli.StatusError{StatusCode: 1}
|
|
|
}
|
|
|
buf.WriteString("\n")
|
|
|
}
|