mirror of
https://github.com/moby/moby.git
synced 2025-10-24 09:13:09 +03:00
Replace some checkers and assertions with gotest.tools
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
@@ -29,6 +29,7 @@ import (
|
||||
"github.com/go-check/check"
|
||||
"github.com/vishvananda/netlink"
|
||||
"golang.org/x/sys/unix"
|
||||
"gotest.tools/assert"
|
||||
"gotest.tools/icmd"
|
||||
)
|
||||
|
||||
@@ -209,15 +210,15 @@ func setupRemoteNetworkDrivers(c *check.C, mux *http.ServeMux, url, netDrv, ipam
|
||||
})
|
||||
|
||||
err := os.MkdirAll("/etc/docker/plugins", 0755)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", netDrv)
|
||||
err = ioutil.WriteFile(fileName, []byte(url), 0644)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
ipamFileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", ipamDrv)
|
||||
err = ioutil.WriteFile(ipamFileName, []byte(url), 0644)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
|
||||
func (s *DockerNetworkSuite) TearDownSuite(c *check.C) {
|
||||
@@ -228,7 +229,7 @@ func (s *DockerNetworkSuite) TearDownSuite(c *check.C) {
|
||||
s.server.Close()
|
||||
|
||||
err := os.RemoveAll("/etc/docker/plugins")
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
|
||||
func assertNwIsAvailable(c *check.C, name string) {
|
||||
@@ -268,14 +269,14 @@ func assertNwList(c *check.C, out string, expectNws []string) {
|
||||
}
|
||||
|
||||
// network ls should contains all expected networks
|
||||
c.Assert(nwList, checker.DeepEquals, expectNws)
|
||||
assert.DeepEqual(c, nwList, expectNws)
|
||||
}
|
||||
|
||||
func getNwResource(c *check.C, name string) *types.NetworkResource {
|
||||
out, _ := dockerCmd(c, "network", "inspect", name)
|
||||
var nr []types.NetworkResource
|
||||
err := json.Unmarshal([]byte(out), &nr)
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
return &nr[0]
|
||||
}
|
||||
|
||||
@@ -291,7 +292,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkCreatePredefined(c *check.C) {
|
||||
for _, net := range predefined {
|
||||
// predefined networks can't be created again
|
||||
out, _, err := dockerCmdWithError("network", "create", net)
|
||||
c.Assert(err, checker.NotNil, check.Commentf("%v", out))
|
||||
assert.ErrorContains(c, err, "", out)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,7 +302,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkCreateHostBind(c *check.C) {
|
||||
|
||||
out := runSleepingContainer(c, "--net=testbind", "-p", "5000:5000")
|
||||
id := strings.TrimSpace(out)
|
||||
c.Assert(waitRun(id), checker.IsNil)
|
||||
assert.NilError(c, waitRun(id))
|
||||
out, _ = dockerCmd(c, "ps")
|
||||
c.Assert(out, checker.Contains, "192.168.10.1:5000->5000/tcp")
|
||||
}
|
||||
@@ -311,7 +312,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkRmPredefined(c *check.C) {
|
||||
for _, net := range predefined {
|
||||
// predefined networks can't be removed
|
||||
out, _, err := dockerCmdWithError("network", "rm", net)
|
||||
c.Assert(err, checker.NotNil, check.Commentf("%v", out))
|
||||
assert.ErrorContains(c, err, "", out)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,7 +389,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkCreateLabel(c *check.C) {
|
||||
assertNwIsAvailable(c, testNet)
|
||||
|
||||
out, _, err := dockerCmdWithError("network", "inspect", "--format={{ .Labels."+testLabel+" }}", testNet)
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
c.Assert(strings.TrimSpace(out), check.Equals, testValue)
|
||||
|
||||
dockerCmd(c, "network", "rm", testNet)
|
||||
@@ -397,7 +398,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkCreateLabel(c *check.C) {
|
||||
|
||||
func (s *DockerSuite) TestDockerNetworkDeleteNotExists(c *check.C) {
|
||||
out, _, err := dockerCmdWithError("network", "rm", "test")
|
||||
c.Assert(err, checker.NotNil, check.Commentf("%v", out))
|
||||
assert.ErrorContains(c, err, "", out)
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestDockerNetworkDeleteMultiple(c *check.C) {
|
||||
@@ -428,8 +429,8 @@ func (s *DockerSuite) TestDockerNetworkInspect(c *check.C) {
|
||||
out, _ := dockerCmd(c, "network", "inspect", "host")
|
||||
var networkResources []types.NetworkResource
|
||||
err := json.Unmarshal([]byte(out), &networkResources)
|
||||
c.Assert(err, check.IsNil)
|
||||
c.Assert(networkResources, checker.HasLen, 1)
|
||||
assert.NilError(c, err)
|
||||
assert.Equal(c, len(networkResources), 1)
|
||||
|
||||
out, _ = dockerCmd(c, "network", "inspect", "--format={{ .Name }}", "host")
|
||||
c.Assert(strings.TrimSpace(out), check.Equals, "host")
|
||||
@@ -452,8 +453,8 @@ func (s *DockerSuite) TestDockerInspectMultipleNetwork(c *check.C) {
|
||||
|
||||
var networkResources []types.NetworkResource
|
||||
err := json.Unmarshal([]byte(result.Stdout()), &networkResources)
|
||||
c.Assert(err, check.IsNil)
|
||||
c.Assert(networkResources, checker.HasLen, 2)
|
||||
assert.NilError(c, err)
|
||||
assert.Equal(c, len(networkResources), 2)
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestDockerInspectMultipleNetworksIncludingNonexistent(c *check.C) {
|
||||
@@ -468,8 +469,8 @@ func (s *DockerSuite) TestDockerInspectMultipleNetworksIncludingNonexistent(c *c
|
||||
|
||||
var networkResources []types.NetworkResource
|
||||
err := json.Unmarshal([]byte(result.Stdout()), &networkResources)
|
||||
c.Assert(err, check.IsNil)
|
||||
c.Assert(networkResources, checker.HasLen, 1)
|
||||
assert.NilError(c, err)
|
||||
assert.Equal(c, len(networkResources), 1)
|
||||
|
||||
// Only one non-existent network to inspect
|
||||
// Should print an error and return an exitCode, nothing else
|
||||
@@ -491,8 +492,8 @@ func (s *DockerSuite) TestDockerInspectMultipleNetworksIncludingNonexistent(c *c
|
||||
|
||||
networkResources = []types.NetworkResource{}
|
||||
err = json.Unmarshal([]byte(result.Stdout()), &networkResources)
|
||||
c.Assert(err, check.IsNil)
|
||||
c.Assert(networkResources, checker.HasLen, 1)
|
||||
assert.NilError(c, err)
|
||||
assert.Equal(c, len(networkResources), 1)
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestDockerInspectNetworkWithContainerName(c *check.C) {
|
||||
@@ -514,11 +515,11 @@ func (s *DockerSuite) TestDockerInspectNetworkWithContainerName(c *check.C) {
|
||||
out, _ = dockerCmd(c, "network", "inspect", "brNetForInspect")
|
||||
var networkResources []types.NetworkResource
|
||||
err := json.Unmarshal([]byte(out), &networkResources)
|
||||
c.Assert(err, check.IsNil)
|
||||
c.Assert(networkResources, checker.HasLen, 1)
|
||||
assert.NilError(c, err)
|
||||
assert.Equal(c, len(networkResources), 1)
|
||||
container, ok := networkResources[0].Containers[containerID]
|
||||
c.Assert(ok, checker.True)
|
||||
c.Assert(container.Name, checker.Equals, "testNetInspect1")
|
||||
assert.Assert(c, ok)
|
||||
assert.Equal(c, container.Name, "testNetInspect1")
|
||||
|
||||
// rename container and check docker inspect output update
|
||||
newName := "HappyNewName"
|
||||
@@ -528,12 +529,11 @@ func (s *DockerSuite) TestDockerInspectNetworkWithContainerName(c *check.C) {
|
||||
out, _ = dockerCmd(c, "network", "inspect", "brNetForInspect")
|
||||
var newNetRes []types.NetworkResource
|
||||
err = json.Unmarshal([]byte(out), &newNetRes)
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
c.Assert(newNetRes, checker.HasLen, 1)
|
||||
container1, ok := newNetRes[0].Containers[containerID]
|
||||
c.Assert(ok, checker.True)
|
||||
c.Assert(container1.Name, checker.Equals, newName)
|
||||
|
||||
assert.Assert(c, ok)
|
||||
assert.Equal(c, container1.Name, newName)
|
||||
}
|
||||
|
||||
func (s *DockerNetworkSuite) TestDockerNetworkConnectDisconnect(c *check.C) {
|
||||
@@ -559,7 +559,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectDisconnect(c *check.C) {
|
||||
|
||||
// check if container IP matches network inspect
|
||||
ip, _, err := net.ParseCIDR(nr.Containers[containerID].IPv4Address)
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
containerIP := findContainerIP(c, "test", "test")
|
||||
c.Assert(ip.String(), checker.Equals, containerIP)
|
||||
|
||||
@@ -663,7 +663,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkNullIPAMDriver(c *check.C) {
|
||||
testRequires(c, testEnv.IsLocalDaemon)
|
||||
// Create a network with null ipam driver
|
||||
_, _, err := dockerCmdWithError("network", "create", "-d", dummyNetworkDriver, "--ipam-driver", "null", "test000")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
assertNwIsAvailable(c, "test000")
|
||||
|
||||
// Verify the inspect data contains the default subnet provided by the null
|
||||
@@ -736,7 +736,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkInspectCustomSpecified(c *check.C)
|
||||
c.Assert(nr.IPAM.Config[0].Subnet, checker.Equals, "172.28.0.0/16")
|
||||
c.Assert(nr.IPAM.Config[0].IPRange, checker.Equals, "172.28.5.0/24")
|
||||
c.Assert(nr.IPAM.Config[0].Gateway, checker.Equals, "172.28.5.254")
|
||||
c.Assert(nr.Internal, checker.False)
|
||||
assert.Equal(c, nr.Internal, false)
|
||||
dockerCmd(c, "network", "rm", "br0")
|
||||
assertNwNotAvailable(c, "br0")
|
||||
}
|
||||
@@ -744,15 +744,15 @@ func (s *DockerNetworkSuite) TestDockerNetworkInspectCustomSpecified(c *check.C)
|
||||
func (s *DockerNetworkSuite) TestDockerNetworkIPAMInvalidCombinations(c *check.C) {
|
||||
// network with ip-range out of subnet range
|
||||
_, _, err := dockerCmdWithError("network", "create", "--subnet=192.168.0.0/16", "--ip-range=192.170.0.0/16", "test")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
|
||||
// network with multiple gateways for a single subnet
|
||||
_, _, err = dockerCmdWithError("network", "create", "--subnet=192.168.0.0/16", "--gateway=192.168.0.1", "--gateway=192.168.0.2", "test")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
|
||||
// Multiple overlapping subnets in the same network must fail
|
||||
_, _, err = dockerCmdWithError("network", "create", "--subnet=192.168.0.0/16", "--subnet=192.168.1.0/16", "test")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
|
||||
// overlapping subnets across networks must fail
|
||||
// create a valid test0 network
|
||||
@@ -760,7 +760,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkIPAMInvalidCombinations(c *check.C
|
||||
assertNwIsAvailable(c, "test0")
|
||||
// create an overlapping test1 network
|
||||
_, _, err = dockerCmdWithError("network", "create", "--subnet=192.168.128.0/17", "test1")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
dockerCmd(c, "network", "rm", "test0")
|
||||
assertNwNotAvailable(c, "test0")
|
||||
}
|
||||
@@ -789,10 +789,10 @@ func (s *DockerNetworkSuite) TestDockerPluginV2NetworkDriver(c *check.C) {
|
||||
npNameWithTag = npName + ":" + npTag
|
||||
)
|
||||
_, _, err := dockerCmdWithError("plugin", "install", "--grant-all-permissions", npNameWithTag)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
out, _, err := dockerCmdWithError("plugin", "ls")
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
c.Assert(out, checker.Contains, npName)
|
||||
c.Assert(out, checker.Contains, npTag)
|
||||
c.Assert(out, checker.Contains, "true")
|
||||
@@ -818,46 +818,46 @@ func (s *DockerDaemonSuite) TestDockerNetworkNoDiscoveryDefaultBridgeNetwork(c *
|
||||
|
||||
// run two containers and store first container's etc/hosts content
|
||||
out, err := s.d.Cmd("run", "-d", "busybox", "top")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
cid1 := strings.TrimSpace(out)
|
||||
defer s.d.Cmd("stop", cid1)
|
||||
|
||||
hosts, err := s.d.Cmd("exec", cid1, "cat", hostsFile)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
out, err = s.d.Cmd("run", "-d", "--name", "container2", "busybox", "top")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
cid2 := strings.TrimSpace(out)
|
||||
|
||||
// verify first container's etc/hosts file has not changed after spawning the second named container
|
||||
hostsPost, err := s.d.Cmd("exec", cid1, "cat", hostsFile)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
c.Assert(string(hosts), checker.Equals, string(hostsPost),
|
||||
check.Commentf("Unexpected %s change on second container creation", hostsFile))
|
||||
|
||||
// stop container 2 and verify first container's etc/hosts has not changed
|
||||
_, err = s.d.Cmd("stop", cid2)
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
hostsPost, err = s.d.Cmd("exec", cid1, "cat", hostsFile)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
c.Assert(string(hosts), checker.Equals, string(hostsPost),
|
||||
check.Commentf("Unexpected %s change on second container creation", hostsFile))
|
||||
|
||||
// but discovery is on when connecting to non default bridge network
|
||||
network := "anotherbridge"
|
||||
out, err = s.d.Cmd("network", "create", network)
|
||||
c.Assert(err, check.IsNil, check.Commentf("%s", out))
|
||||
assert.NilError(c, err, out)
|
||||
defer s.d.Cmd("network", "rm", network)
|
||||
|
||||
out, err = s.d.Cmd("network", "connect", network, cid1)
|
||||
c.Assert(err, check.IsNil, check.Commentf("%s", out))
|
||||
assert.NilError(c, err, out)
|
||||
|
||||
hosts, err = s.d.Cmd("exec", cid1, "cat", hostsFile)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
hostsPost, err = s.d.Cmd("exec", cid1, "cat", hostsFile)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
c.Assert(string(hosts), checker.Equals, string(hostsPost),
|
||||
check.Commentf("Unexpected %s change on second network connection", hostsFile))
|
||||
}
|
||||
@@ -918,9 +918,9 @@ func (s *DockerNetworkSuite) TestDockerNetworkAnonymousEndpoint(c *check.C) {
|
||||
|
||||
// verify that container 1 and 2 can't ping the named container now
|
||||
_, _, err := dockerCmdWithError("exec", cid1, "ping", "-c", "1", cName)
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
_, _, err = dockerCmdWithError("exec", cid2, "ping", "-c", "1", cName)
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
}
|
||||
|
||||
func (s *DockerNetworkSuite) TestDockerNetworkLinkOnDefaultNetworkOnly(c *check.C) {
|
||||
@@ -942,7 +942,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkLinkOnDefaultNetworkOnly(c *check.
|
||||
|
||||
// Try launching a container on default network, linking to the second container. Must fail
|
||||
_, _, err := dockerCmdWithError("run", "-d", "--link", fmt.Sprintf("%s:%s", cnt2, cnt2), "busybox", "top")
|
||||
c.Assert(err, checker.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
|
||||
// Connect second container to default network. Now a container on default network can link to it
|
||||
dockerCmd(c, "network", "connect", "bridge", cnt2)
|
||||
@@ -987,10 +987,10 @@ func (s *DockerNetworkSuite) TestDockerNetworkDriverUngracefulRestart(c *check.C
|
||||
|
||||
s.d.StartWithBusybox(c)
|
||||
_, err := s.d.Cmd("network", "create", "-d", dnd, "--subnet", "1.1.1.0/24", "net1")
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
_, err = s.d.Cmd("run", "-itd", "--net", "net1", "--name", "foo", "--ip", "1.1.1.10", "busybox", "sh")
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// Kill daemon and restart
|
||||
c.Assert(s.d.Kill(), checker.IsNil)
|
||||
@@ -1014,7 +1014,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkDriverUngracefulRestart(c *check.C
|
||||
|
||||
// trying to reuse the same ip must succeed
|
||||
_, err = s.d.Cmd("run", "-itd", "--net", "net1", "--name", "bar", "--ip", "1.1.1.10", "busybox", "sh")
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
|
||||
func (s *DockerNetworkSuite) TestDockerNetworkMacInspect(c *check.C) {
|
||||
@@ -1037,7 +1037,7 @@ func (s *DockerSuite) TestInspectAPIMultipleNetworks(c *check.C) {
|
||||
dockerCmd(c, "network", "create", "mybridge2")
|
||||
out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
|
||||
id := strings.TrimSpace(out)
|
||||
c.Assert(waitRun(id), check.IsNil)
|
||||
assert.NilError(c, waitRun(id))
|
||||
|
||||
dockerCmd(c, "network", "connect", "mybridge1", id)
|
||||
dockerCmd(c, "network", "connect", "mybridge2", id)
|
||||
@@ -1045,14 +1045,14 @@ func (s *DockerSuite) TestInspectAPIMultipleNetworks(c *check.C) {
|
||||
body := getInspectBody(c, "v1.20", id)
|
||||
var inspect120 v1p20.ContainerJSON
|
||||
err := json.Unmarshal(body, &inspect120)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
versionedIP := inspect120.NetworkSettings.IPAddress
|
||||
|
||||
body = getInspectBody(c, "v1.21", id)
|
||||
var inspect121 types.ContainerJSON
|
||||
err = json.Unmarshal(body, &inspect121)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
c.Assert(inspect121.NetworkSettings.Networks, checker.HasLen, 3)
|
||||
|
||||
bridge := inspect121.NetworkSettings.Networks["bridge"]
|
||||
@@ -1063,14 +1063,14 @@ func (s *DockerSuite) TestInspectAPIMultipleNetworks(c *check.C) {
|
||||
func connectContainerToNetworks(c *check.C, d *daemon.Daemon, cName string, nws []string) {
|
||||
// Run a container on the default network
|
||||
out, err := d.Cmd("run", "-d", "--name", cName, "busybox", "top")
|
||||
c.Assert(err, checker.IsNil, check.Commentf("%s", out))
|
||||
assert.NilError(c, err, out)
|
||||
|
||||
// Attach the container to other networks
|
||||
for _, nw := range nws {
|
||||
out, err = d.Cmd("network", "create", nw)
|
||||
c.Assert(err, checker.IsNil, check.Commentf("%s", out))
|
||||
assert.NilError(c, err, out)
|
||||
out, err = d.Cmd("network", "connect", nw, cName)
|
||||
c.Assert(err, checker.IsNil, check.Commentf("%s", out))
|
||||
assert.NilError(c, err, out)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1078,7 +1078,7 @@ func verifyContainerIsConnectedToNetworks(c *check.C, d *daemon.Daemon, cName st
|
||||
// Verify container is connected to all the networks
|
||||
for _, nw := range nws {
|
||||
out, err := d.Cmd("inspect", "-f", fmt.Sprintf("{{.NetworkSettings.Networks.%s}}", nw), cName)
|
||||
c.Assert(err, checker.IsNil, check.Commentf("%s", out))
|
||||
assert.NilError(c, err, out)
|
||||
c.Assert(out, checker.Not(checker.Equals), "<no value>\n")
|
||||
}
|
||||
}
|
||||
@@ -1097,7 +1097,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkMultipleNetworksGracefulDaemonRest
|
||||
s.d.Restart(c)
|
||||
|
||||
_, err := s.d.Cmd("start", cName)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
verifyContainerIsConnectedToNetworks(c, s.d, cName, nwList)
|
||||
}
|
||||
@@ -1118,7 +1118,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkMultipleNetworksUngracefulDaemonRe
|
||||
|
||||
// Restart container
|
||||
_, err := s.d.Cmd("start", cName)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
verifyContainerIsConnectedToNetworks(c, s.d, cName, nwList)
|
||||
}
|
||||
@@ -1137,11 +1137,11 @@ func (s *DockerNetworkSuite) TestDockerNetworkHostModeUngracefulDaemonRestart(c
|
||||
for i := 0; i < 10; i++ {
|
||||
cName := fmt.Sprintf("hostc-%d", i)
|
||||
out, err := s.d.Cmd("run", "-d", "--name", cName, "--net=host", "--restart=always", "busybox", "top")
|
||||
c.Assert(err, checker.IsNil, check.Commentf("%s", out))
|
||||
assert.NilError(c, err, out)
|
||||
|
||||
// verify container has finished starting before killing daemon
|
||||
err = s.d.WaitRun(cName)
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
|
||||
// Kill daemon ungracefully and restart
|
||||
@@ -1151,7 +1151,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkHostModeUngracefulDaemonRestart(c
|
||||
// make sure all the containers are up and running
|
||||
for i := 0; i < 10; i++ {
|
||||
err := s.d.WaitRun(fmt.Sprintf("hostc-%d", i))
|
||||
c.Assert(err, checker.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1160,7 +1160,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectToHostFromOtherNetwork(c *c
|
||||
c.Assert(waitRun("container1"), check.IsNil)
|
||||
dockerCmd(c, "network", "disconnect", "bridge", "container1")
|
||||
out, _, err := dockerCmdWithError("network", "connect", "host", "container1")
|
||||
c.Assert(err, checker.NotNil, check.Commentf("%s", out))
|
||||
assert.ErrorContains(c, err, "", out)
|
||||
c.Assert(out, checker.Contains, runconfig.ErrConflictHostNetwork.Error())
|
||||
}
|
||||
|
||||
@@ -1419,9 +1419,9 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectLinkLocalIP(c *check.C) {
|
||||
|
||||
// run a container with incorrect link-local address
|
||||
_, _, err := dockerCmdWithError("run", "--link-local-ip", "169.253.5.5", "busybox", "top")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
_, _, err = dockerCmdWithError("run", "--link-local-ip", "2001:db8::89", "busybox", "top")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
|
||||
// run two containers with link-local ip on the test network
|
||||
dockerCmd(c, "run", "-d", "--name", "c0", "--net=n0", "--link-local-ip", "169.254.7.7", "--link-local-ip", "fe80::254:77", "busybox", "top")
|
||||
@@ -1436,11 +1436,11 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectLinkLocalIP(c *check.C) {
|
||||
|
||||
// verify the three containers can ping each other via the link-local addresses
|
||||
_, _, err = dockerCmdWithError("exec", "c0", "ping", "-c", "1", "169.254.8.8")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
_, _, err = dockerCmdWithError("exec", "c1", "ping", "-c", "1", "169.254.9.9")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
_, _, err = dockerCmdWithError("exec", "c2", "ping", "-c", "1", "169.254.7.7")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// Stop and restart the three containers
|
||||
dockerCmd(c, "stop", "c0")
|
||||
@@ -1452,11 +1452,11 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectLinkLocalIP(c *check.C) {
|
||||
|
||||
// verify the ping again
|
||||
_, _, err = dockerCmdWithError("exec", "c0", "ping", "-c", "1", "169.254.8.8")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
_, _, err = dockerCmdWithError("exec", "c1", "ping", "-c", "1", "169.254.9.9")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
_, _, err = dockerCmdWithError("exec", "c2", "ping", "-c", "1", "169.254.7.7")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestUserDefinedNetworkConnectDisconnectLink(c *check.C) {
|
||||
@@ -1475,9 +1475,9 @@ func (s *DockerSuite) TestUserDefinedNetworkConnectDisconnectLink(c *check.C) {
|
||||
|
||||
// ping to first and its alias FirstInFoo1 must succeed
|
||||
_, _, err := dockerCmdWithError("exec", "second", "ping", "-c", "1", "first")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "FirstInFoo1")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// connect first container to foo2 network
|
||||
dockerCmd(c, "network", "connect", "foo2", "first")
|
||||
@@ -1486,18 +1486,18 @@ func (s *DockerSuite) TestUserDefinedNetworkConnectDisconnectLink(c *check.C) {
|
||||
|
||||
// ping the new alias in network foo2
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "FirstInFoo2")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// disconnect first container from foo1 network
|
||||
dockerCmd(c, "network", "disconnect", "foo1", "first")
|
||||
|
||||
// link in foo1 network must fail
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "FirstInFoo1")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
|
||||
// link in foo2 network must succeed
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "FirstInFoo2")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
|
||||
func (s *DockerNetworkSuite) TestDockerNetworkDisconnectDefault(c *check.C) {
|
||||
@@ -1528,7 +1528,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkConnectWithAliasOnDefaultNetworks(
|
||||
containerID := strings.TrimSpace(out)
|
||||
for _, net := range defaults {
|
||||
res, _, err := dockerCmdWithError("network", "connect", "--alias", "alias"+net, net, containerID)
|
||||
c.Assert(err, checker.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
c.Assert(res, checker.Contains, runconfig.ErrUnsupportedNetworkAndAlias.Error())
|
||||
}
|
||||
}
|
||||
@@ -1546,13 +1546,13 @@ func (s *DockerSuite) TestUserDefinedNetworkConnectDisconnectAlias(c *check.C) {
|
||||
|
||||
// ping first container and its alias
|
||||
_, _, err := dockerCmdWithError("exec", "second", "ping", "-c", "1", "first")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "foo")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// ping first container's short-id alias
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", stringid.TruncateID(cid))
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// connect first container to net2 network
|
||||
dockerCmd(c, "network", "connect", "--alias=bar", "net2", "first")
|
||||
@@ -1561,21 +1561,21 @@ func (s *DockerSuite) TestUserDefinedNetworkConnectDisconnectAlias(c *check.C) {
|
||||
|
||||
// ping the new alias in network foo2
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "bar")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// disconnect first container from net1 network
|
||||
dockerCmd(c, "network", "disconnect", "net1", "first")
|
||||
|
||||
// ping to net1 scoped alias "foo" must fail
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "foo")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
|
||||
// ping to net2 scoped alias "bar" must still succeed
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "bar")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
// ping to net2 scoped alias short-id must still succeed
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", stringid.TruncateID(cid))
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// verify the alias option is rejected when running on predefined network
|
||||
out, _, err := dockerCmdWithError("run", "--rm", "--name=any", "--net-alias=any", "busybox:glibc", "top")
|
||||
@@ -1600,15 +1600,15 @@ func (s *DockerSuite) TestUserDefinedNetworkConnectivity(c *check.C) {
|
||||
|
||||
// ping first container by its unqualified name
|
||||
_, _, err := dockerCmdWithError("exec", "c2.net1", "ping", "-c", "1", "c1.net1")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// ping first container by its qualified name
|
||||
_, _, err = dockerCmdWithError("exec", "c2.net1", "ping", "-c", "1", "c1.net1.br.net1")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
|
||||
// ping with first qualified name masked by an additional domain. should fail
|
||||
_, _, err = dockerCmdWithError("exec", "c2.net1", "ping", "-c", "1", "c1.net1.br.net1.google.com")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestEmbeddedDNSInvalidInput(c *check.C) {
|
||||
@@ -1628,7 +1628,7 @@ func (s *DockerSuite) TestDockerNetworkConnectFailsNoInspectChange(c *check.C) {
|
||||
|
||||
// A failing redundant network connect should not alter current container's endpoint settings
|
||||
_, _, err := dockerCmdWithError("network", "connect", "bridge", "bb")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
|
||||
ns1 := inspectField(c, "bb", "NetworkSettings.Networks.bridge")
|
||||
c.Assert(ns1, check.Equals, ns0)
|
||||
@@ -1645,10 +1645,10 @@ func (s *DockerSuite) TestDockerNetworkInternalMode(c *check.C) {
|
||||
dockerCmd(c, "run", "-d", "--net=internal", "--name=second", "busybox:glibc", "top")
|
||||
c.Assert(waitRun("second"), check.IsNil)
|
||||
out, _, err := dockerCmdWithError("exec", "first", "ping", "-W", "4", "-c", "1", "8.8.8.8")
|
||||
c.Assert(err, check.NotNil)
|
||||
assert.ErrorContains(c, err, "")
|
||||
c.Assert(out, checker.Contains, "100% packet loss")
|
||||
_, _, err = dockerCmdWithError("exec", "second", "ping", "-c", "1", "first")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
|
||||
// Test for #21401
|
||||
@@ -1748,25 +1748,26 @@ func (s *DockerNetworkSuite) TestDockerNetworkFlagAlias(c *check.C) {
|
||||
|
||||
func (s *DockerNetworkSuite) TestDockerNetworkValidateIP(c *check.C) {
|
||||
_, _, err := dockerCmdWithError("network", "create", "--ipv6", "--subnet=172.28.0.0/16", "--subnet=2001:db8:1234::/64", "mynet")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
assertNwIsAvailable(c, "mynet")
|
||||
|
||||
_, _, err = dockerCmdWithError("run", "-d", "--name", "mynet0", "--net=mynet", "--ip", "172.28.99.88", "--ip6", "2001:db8:1234::9988", "busybox", "top")
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
c.Assert(waitRun("mynet0"), check.IsNil)
|
||||
verifyIPAddressConfig(c, "mynet0", "mynet", "172.28.99.88", "2001:db8:1234::9988")
|
||||
verifyIPAddresses(c, "mynet0", "mynet", "172.28.99.88", "2001:db8:1234::9988")
|
||||
|
||||
_, _, err = dockerCmdWithError("run", "--net=mynet", "--ip", "mynet_ip", "--ip6", "2001:db8:1234::9999", "busybox", "top")
|
||||
c.Assert(err.Error(), checker.Contains, "invalid IPv4 address")
|
||||
assert.ErrorContains(c, err, "invalid IPv4 address")
|
||||
_, _, err = dockerCmdWithError("run", "--net=mynet", "--ip", "172.28.99.99", "--ip6", "mynet_ip6", "busybox", "top")
|
||||
c.Assert(err.Error(), checker.Contains, "invalid IPv6 address")
|
||||
assert.ErrorContains(c, err, "invalid IPv6 address")
|
||||
|
||||
// This is a case of IPv4 address to `--ip6`
|
||||
_, _, err = dockerCmdWithError("run", "--net=mynet", "--ip6", "172.28.99.99", "busybox", "top")
|
||||
c.Assert(err.Error(), checker.Contains, "invalid IPv6 address")
|
||||
assert.ErrorContains(c, err, "invalid IPv6 address")
|
||||
// This is a special case of an IPv4-mapped IPv6 address
|
||||
_, _, err = dockerCmdWithError("run", "--net=mynet", "--ip6", "::ffff:172.28.99.99", "busybox", "top")
|
||||
c.Assert(err.Error(), checker.Contains, "invalid IPv6 address")
|
||||
assert.ErrorContains(c, err, "invalid IPv6 address")
|
||||
}
|
||||
|
||||
// Test case for 26220
|
||||
@@ -1779,7 +1780,7 @@ func (s *DockerNetworkSuite) TestDockerNetworkDisconnectFromBridge(c *check.C) {
|
||||
dockerCmd(c, "create", "--name", name, "busybox", "top")
|
||||
|
||||
_, _, err := dockerCmdWithError("network", "disconnect", network, name)
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
}
|
||||
|
||||
// TestConntrackFlowsLeak covers the failure scenario of ticket: https://github.com/docker/docker/issues/8795
|
||||
@@ -1801,7 +1802,7 @@ func (s *DockerNetworkSuite) TestConntrackFlowsLeak(c *check.C) {
|
||||
|
||||
// Get all the flows using netlink
|
||||
flows, err := netlink.ConntrackTableList(netlink.ConntrackTable, unix.AF_INET)
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
var flowMatch int
|
||||
for _, flow := range flows {
|
||||
// count only the flows that we are interested in, skipping others that can be laying around the host
|
||||
@@ -1812,14 +1813,14 @@ func (s *DockerNetworkSuite) TestConntrackFlowsLeak(c *check.C) {
|
||||
}
|
||||
}
|
||||
// The client should have created only 1 flow
|
||||
c.Assert(flowMatch, checker.Equals, 1)
|
||||
assert.Equal(c, flowMatch, 1)
|
||||
|
||||
// Now delete the server, this will trigger the conntrack cleanup
|
||||
cli.DockerCmd(c, "rm", "-fv", "server")
|
||||
|
||||
// Fetch again all the flows and validate that there is no server flow in the conntrack laying around
|
||||
flows, err = netlink.ConntrackTableList(netlink.ConntrackTable, unix.AF_INET)
|
||||
c.Assert(err, check.IsNil)
|
||||
assert.NilError(c, err)
|
||||
flowMatch = 0
|
||||
for _, flow := range flows {
|
||||
if flow.Forward.Protocol == unix.IPPROTO_UDP &&
|
||||
@@ -1829,5 +1830,5 @@ func (s *DockerNetworkSuite) TestConntrackFlowsLeak(c *check.C) {
|
||||
}
|
||||
}
|
||||
// All the flows have to be gone
|
||||
c.Assert(flowMatch, checker.Equals, 0)
|
||||
assert.Equal(c, flowMatch, 0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user