Skip to content

Commit d095108

Browse files
authored
Merge pull request #2583 from thaJeztah/update_docker_alt
vendor: update docker to 7ca355652fe0e2f7401d424d65a81dc248360127 and reduce dependency graph
2 parents 82a1ac7 + 7f3673e commit d095108

896 files changed

Lines changed: 44067 additions & 117137 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

client/mflag/flag.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,3 +1283,44 @@ func Merge(dest *FlagSet, flagsets ...*FlagSet) error {
12831283
func (fs *FlagSet) IsEmpty() bool {
12841284
return len(fs.actual) == 0
12851285
}
1286+
1287+
// ListOpts holds a list of values and a validation function.
1288+
type ListOpts struct {
1289+
values *[]string
1290+
validator func(val string) (string, error)
1291+
}
1292+
1293+
// NewListOpts creates a new ListOpts with the specified validator.
1294+
func NewListOpts(validator func(val string) (string, error)) ListOpts {
1295+
var values []string
1296+
return ListOpts{
1297+
values: &values,
1298+
validator: validator,
1299+
}
1300+
}
1301+
1302+
func (opts *ListOpts) String() string {
1303+
if len(*opts.values) == 0 {
1304+
return ""
1305+
}
1306+
return fmt.Sprintf("%v", *opts.values)
1307+
}
1308+
1309+
// Set validates if needed the input value and adds it to the
1310+
// internal slice.
1311+
func (opts *ListOpts) Set(value string) error {
1312+
if opts.validator != nil {
1313+
v, err := opts.validator(value)
1314+
if err != nil {
1315+
return err
1316+
}
1317+
value = v
1318+
}
1319+
*opts.values = append(*opts.values, value)
1320+
return nil
1321+
}
1322+
1323+
// GetAll returns the values of slice.
1324+
func (opts *ListOpts) GetAll() []string {
1325+
return *opts.values
1326+
}

client/service.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"strings"
1010
"text/tabwriter"
1111

12-
"github.com/docker/docker/opts"
1312
"github.com/docker/docker/pkg/stringid"
1413
flag "github.com/docker/libnetwork/client/mflag"
1514
"github.com/docker/libnetwork/netutils"
@@ -164,7 +163,7 @@ func parseServiceName(name string) (string, string) {
164163
// CmdServicePublish handles service create UI
165164
func (cli *NetworkCli) CmdServicePublish(chain string, args ...string) error {
166165
cmd := cli.Subcmd(chain, "publish", "SERVICE[.NETWORK]", "Publish a new service on a network", false)
167-
flAlias := opts.NewListOpts(netutils.ValidateAlias)
166+
flAlias := flag.NewListOpts(netutils.ValidateAlias)
168167
cmd.Var(&flAlias, []string{"-alias"}, "Add alias to self")
169168
cmd.Require(flag.Exact, 1)
170169
err := cmd.ParseFlags(args, true)
@@ -326,7 +325,7 @@ func (cli *NetworkCli) CmdServiceInfo(chain string, args ...string) error {
326325
// CmdServiceAttach handles service attach UI
327326
func (cli *NetworkCli) CmdServiceAttach(chain string, args ...string) error {
328327
cmd := cli.Subcmd(chain, "attach", "CONTAINER SERVICE[.NETWORK]", "Sets a container as a service backend", false)
329-
flAlias := opts.NewListOpts(netutils.ValidateAlias)
328+
flAlias := flag.NewListOpts(netutils.ValidateAlias)
330329
cmd.Var(&flAlias, []string{"-alias"}, "Add alias for another container")
331330
cmd.Require(flag.Min, 2)
332331
err := cmd.ParseFlags(args, true)

cmd/dnet/cmd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import (
88
"net/http"
99
"os"
1010

11-
"github.com/docker/docker/pkg/term"
1211
"github.com/docker/libnetwork/client"
12+
"github.com/moby/term"
1313
"github.com/urfave/cli"
1414
)
1515

cmd/dnet/dnet.go

Lines changed: 75 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,18 @@ import (
1111
"net"
1212
"net/http"
1313
"net/http/httptest"
14+
"net/url"
1415
"os"
1516
"os/signal"
17+
"strconv"
1618
"strings"
1719
"syscall"
1820
"time"
1921

2022
"github.com/BurntSushi/toml"
21-
"github.com/docker/docker/opts"
23+
"github.com/docker/docker/api/types/network"
2224
"github.com/docker/docker/pkg/discovery"
2325
"github.com/docker/docker/pkg/reexec"
24-
"github.com/urfave/cli"
25-
26-
"github.com/docker/docker/api/types/network"
27-
"github.com/docker/docker/pkg/term"
2826
"github.com/docker/libnetwork"
2927
"github.com/docker/libnetwork/api"
3028
"github.com/docker/libnetwork/cluster"
@@ -36,7 +34,9 @@ import (
3634
"github.com/docker/libnetwork/options"
3735
"github.com/docker/libnetwork/types"
3836
"github.com/gorilla/mux"
37+
"github.com/moby/term"
3938
"github.com/sirupsen/logrus"
39+
"github.com/urfave/cli"
4040
)
4141

4242
const (
@@ -416,7 +416,7 @@ func startTestDriver() error {
416416
}
417417

418418
func newDnetConnection(val string) (*dnetConnection, error) {
419-
url, err := opts.ParseHost(false, false, val)
419+
url, err := parseHost(val)
420420
if err != nil {
421421
return nil, err
422422
}
@@ -431,6 +431,75 @@ func newDnetConnection(val string) (*dnetConnection, error) {
431431
return &dnetConnection{protoAddrParts[0], protoAddrParts[1], &NetworkOrchestration{}, make(chan cluster.ConfigEventType, 10)}, nil
432432
}
433433

434+
const (
435+
defaultUnixSocket = "unix:///var/run/docker.sock"
436+
defaultTCPHost = "tcp://localhost:2375"
437+
)
438+
439+
// parseHost and set defaults for a Daemon host string.
440+
func parseHost(val string) (string, error) {
441+
host := strings.TrimSpace(val)
442+
if host == "" {
443+
return defaultUnixSocket, nil
444+
}
445+
446+
addrParts := strings.SplitN(host, "://", 2)
447+
if len(addrParts) == 1 && addrParts[0] != "" {
448+
addrParts = []string{"tcp", addrParts[0]}
449+
}
450+
if addrParts[0] != "tcp" {
451+
return "", errors.New("dnet currently only supports tcp transport")
452+
}
453+
454+
return parseTCPAddr(addrParts[1], defaultTCPHost)
455+
}
456+
457+
// parseTCPAddr parses and validates that the specified address is a valid TCP
458+
// address. It returns a formatted TCP address, either using the address parsed
459+
// from tryAddr, or the contents of defaultAddr if tryAddr is a blank string.
460+
// tryAddr is expected to have already been Trim()'d
461+
// defaultAddr must be in the full `tcp://host:port` form
462+
func parseTCPAddr(tryAddr string, defaultAddr string) (string, error) {
463+
if tryAddr == "" || tryAddr == "tcp://" {
464+
return defaultAddr, nil
465+
}
466+
addr := strings.TrimPrefix(tryAddr, "tcp://")
467+
if strings.Contains(addr, "://") || addr == "" {
468+
return "", fmt.Errorf("Invalid proto, expected tcp: %s", tryAddr)
469+
}
470+
471+
defaultAddr = strings.TrimPrefix(defaultAddr, "tcp://")
472+
defaultHost, defaultPort, err := net.SplitHostPort(defaultAddr)
473+
if err != nil {
474+
return "", err
475+
}
476+
u, err := url.Parse("tcp://" + addr)
477+
if err != nil {
478+
return "", err
479+
}
480+
host, port, err := net.SplitHostPort(u.Host)
481+
if err != nil {
482+
// try port addition once
483+
host, port, err = net.SplitHostPort(net.JoinHostPort(u.Host, defaultPort))
484+
}
485+
if err != nil {
486+
return "", fmt.Errorf("Invalid bind address format: %s", tryAddr)
487+
}
488+
489+
if host == "" {
490+
host = defaultHost
491+
}
492+
if port == "" {
493+
port = defaultPort
494+
}
495+
p, err := strconv.Atoi(port)
496+
if err != nil && p == 0 {
497+
return "", fmt.Errorf("Invalid bind address format: %s", tryAddr)
498+
}
499+
500+
return fmt.Sprintf("tcp://%s%s", net.JoinHostPort(host, port), u.Path), nil
501+
}
502+
434503
func (d *dnetConnection) httpCall(method, path string, data interface{}, headers map[string][]string) (io.ReadCloser, http.Header, int, error) {
435504
var in io.Reader
436505
in, err := encodeData(data)

controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ import (
5353
"time"
5454

5555
"github.com/docker/docker/pkg/discovery"
56-
"github.com/docker/docker/pkg/locker"
5756
"github.com/docker/docker/pkg/plugingetter"
5857
"github.com/docker/docker/pkg/plugins"
5958
"github.com/docker/docker/pkg/stringid"
@@ -70,6 +69,7 @@ import (
7069
"github.com/docker/libnetwork/options"
7170
"github.com/docker/libnetwork/osl"
7271
"github.com/docker/libnetwork/types"
72+
"github.com/moby/locker"
7373
"github.com/pkg/errors"
7474
"github.com/sirupsen/logrus"
7575
)

datastore/datastore_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
"github.com/docker/libnetwork/options"
99
_ "github.com/docker/libnetwork/testutils"
10-
"gotest.tools/assert"
10+
"gotest.tools/v3/assert"
1111
)
1212

1313
var dummyKey = "dummy"

drivers/overlay/ovmanager/ovmanager_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import (
1111
"github.com/docker/libnetwork/netlabel"
1212
_ "github.com/docker/libnetwork/testutils"
1313
"github.com/docker/libnetwork/types"
14-
"gotest.tools/assert"
15-
is "gotest.tools/assert/cmp"
14+
"gotest.tools/v3/assert"
15+
is "gotest.tools/v3/assert/cmp"
1616
)
1717

1818
func newDriver(t *testing.T) *driver {

drivers/windows/overlay/ov_endpoint_windows.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"sync"
88

99
"github.com/Microsoft/hcsshim"
10-
"github.com/docker/docker/pkg/system"
10+
"github.com/Microsoft/hcsshim/osversion"
1111
"github.com/docker/libnetwork/driverapi"
1212
"github.com/docker/libnetwork/drivers/windows"
1313
"github.com/docker/libnetwork/netlabel"
@@ -34,7 +34,7 @@ var (
3434
//Server 2016 (RS1) does not support concurrent add/delete of endpoints. Therefore, we need
3535
//to use this mutex and serialize the add/delete of endpoints on RS1.
3636
endpointMu sync.Mutex
37-
windowsBuild = system.GetOSVersion().Build
37+
windowsBuild = osversion.Build()
3838
)
3939

4040
func validateID(nid, eid string) error {
@@ -155,7 +155,7 @@ func (d *driver) CreateEndpoint(nid, eid string, ifInfo driverapi.InterfaceInfo,
155155

156156
hnsEndpoint.Policies = append(hnsEndpoint.Policies, paPolicy)
157157

158-
if system.GetOSVersion().Build > 16236 {
158+
if osversion.Build() > 16236 {
159159
natPolicy, err := json.Marshal(hcsshim.PaPolicy{
160160
Type: "OutBoundNAT",
161161
})

drivers/windows/windows.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"sync"
2121

2222
"github.com/Microsoft/hcsshim"
23-
"github.com/docker/docker/pkg/system"
23+
"github.com/Microsoft/hcsshim/osversion"
2424
"github.com/docker/libnetwork/datastore"
2525
"github.com/docker/libnetwork/discoverapi"
2626
"github.com/docker/libnetwork/driverapi"
@@ -217,7 +217,7 @@ func (d *driver) parseNetworkOptions(id string, genericOptions map[string]string
217217
}
218218
config.VSID = uint(vsid)
219219
case EnableOutboundNat:
220-
if system.GetOSVersion().Build <= 16236 {
220+
if osversion.Build() <= 16236 {
221221
return nil, fmt.Errorf("Invalid network option. OutboundNat is not supported on this OS version")
222222
}
223223
b, err := strconv.ParseBool(value)

drvregistry/drvregistry_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import (
1111
builtinIpam "github.com/docker/libnetwork/ipams/builtin"
1212
nullIpam "github.com/docker/libnetwork/ipams/null"
1313
remoteIpam "github.com/docker/libnetwork/ipams/remote"
14-
"gotest.tools/assert"
15-
is "gotest.tools/assert/cmp"
14+
"gotest.tools/v3/assert"
15+
is "gotest.tools/v3/assert/cmp"
1616

1717
// this takes care of the incontainer flag
1818
_ "github.com/docker/libnetwork/testutils"

0 commit comments

Comments
 (0)