func dnetCommand(stdout, stderr io.Writer) error { flag.Parse() if *flHelp { flag.Usage() return nil } if *flLogLevel != "" { lvl, err := logrus.ParseLevel(*flLogLevel) if err != nil { fmt.Fprintf(stderr, "Unable to parse logging level: %s\n", *flLogLevel) return err } logrus.SetLevel(lvl) } else { logrus.SetLevel(logrus.InfoLevel) } if *flDebug { logrus.SetLevel(logrus.DebugLevel) } if *flHost == "" { defaultHost := os.Getenv("DNET_HOST") if defaultHost == "" { // TODO : Add UDS support defaultHost = fmt.Sprintf("tcp://%s:%d", DefaultHTTPHost, DefaultHTTPPort) } *flHost = defaultHost } dc, err := newDnetConnection(*flHost) if err != nil { if *flDaemon { logrus.Error(err) } else { fmt.Fprint(stderr, err) } return err } if *flDaemon { err := dc.dnetDaemon() if err != nil { logrus.Errorf("dnet Daemon exited with an error : %v", err) } return err } cli := client.NewNetworkCli(stdout, stderr, dc.httpCall) if err := cli.Cmd("dnet", flag.Args()...); err != nil { fmt.Fprintln(stderr, err) return err } return nil }
func runDockerCommand(c *cli.Context, cmd string) { _, stdout, stderr := term.StdStreams() oldcli := client.NewNetworkCli(stdout, stderr, epConn.httpCall) var args []string args = append(args, cmd) if c.Bool("h") { args = append(args, "--help") } else { args = append(args, c.Args()...) } if err := oldcli.Cmd("dnet", args...); err != nil { fmt.Println(err) os.Exit(1) } }
// CmdService is used to manage network services. // service command is user to publish, attach and list a service from a container. func (cli *DockerCli) CmdService(args ...string) error { nCli := nwclient.NewNetworkCli(cli.out, cli.err, nwclient.CallFunc(cli.callWrapper)) args = append([]string{"service"}, args...) return nCli.Cmd(os.Args[0], args...) }
// CmdNetwork is used to create, display and configure network endpoints. func (cli *DockerCli) CmdNetwork(args ...string) error { nCli := nwclient.NewNetworkCli(cli.out, cli.err, nwclient.CallFunc(cli.callWrapper)) args = append([]string{"network"}, args...) return nCli.Cmd("docker", args...) }