mirror of https://github.com/docker/docs.git
Integration tests for --bridge daemon flag
Signed-off-by: Madhu Venugopal <madhu@docker.com>
This commit is contained in:
parent
44f8c44e5f
commit
f3f5ff9d83
|
@ -6,6 +6,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
@ -447,6 +448,46 @@ func (s *DockerDaemonSuite) TestDaemonExitOnFailure(c *check.C) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *DockerDaemonSuite) TestDaemonBridgeExternal(c *check.C) {
|
||||||
|
d := s.d
|
||||||
|
err := d.Start("--bridge", "nosuchbridge")
|
||||||
|
c.Assert(err, check.Not(check.IsNil), check.Commentf("--bridge option with an invalid bridge should cause the daemon to fail"))
|
||||||
|
|
||||||
|
bridgeName := "external-bridge"
|
||||||
|
bridgeIp := "192.169.1.1/24"
|
||||||
|
_, bridgeIPNet, _ := net.ParseCIDR(bridgeIp)
|
||||||
|
|
||||||
|
args := []string{"link", "add", "name", bridgeName, "type", "bridge"}
|
||||||
|
ipLinkCmd := exec.Command("ip", args...)
|
||||||
|
_, _, _, err = runCommandWithStdoutStderr(ipLinkCmd)
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
ifCfgCmd := exec.Command("ifconfig", bridgeName, bridgeIp, "up")
|
||||||
|
_, _, _, err = runCommandWithStdoutStderr(ifCfgCmd)
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
err = d.StartWithBusybox("--bridge", bridgeName)
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
ipTablesSearchString := bridgeIPNet.String()
|
||||||
|
ipTablesCmd := exec.Command("iptables", "-t", "nat", "-nvL")
|
||||||
|
out, _, err := runCommandWithOutput(ipTablesCmd)
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
c.Assert(strings.Contains(out, ipTablesSearchString), check.Equals, true,
|
||||||
|
check.Commentf("iptables output should have contained %q, but was %q",
|
||||||
|
ipTablesSearchString, out))
|
||||||
|
|
||||||
|
_, err = d.Cmd("run", "-d", "--name", "ExtContainer", "busybox", "top")
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
containerIp := d.findContainerIP(c, "ExtContainer")
|
||||||
|
ip := net.ParseIP(containerIp)
|
||||||
|
c.Assert(bridgeIPNet.Contains(ip), check.Equals, true,
|
||||||
|
check.Commentf("Container IP-Address must be in the same subnet range : %s",
|
||||||
|
containerIp))
|
||||||
|
}
|
||||||
|
|
||||||
func (s *DockerDaemonSuite) TestDaemonUlimitDefaults(c *check.C) {
|
func (s *DockerDaemonSuite) TestDaemonUlimitDefaults(c *check.C) {
|
||||||
testRequires(c, NativeExecDriver)
|
testRequires(c, NativeExecDriver)
|
||||||
|
|
||||||
|
|
|
@ -570,8 +570,9 @@ func dockerCmdInDirWithTimeout(timeout time.Duration, path string, args ...strin
|
||||||
return out, status, err
|
return out, status, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func findContainerIP(c *check.C, id string) string {
|
func findContainerIP(c *check.C, id string, vargs ...string) string {
|
||||||
cmd := exec.Command(dockerBinary, "inspect", "--format='{{ .NetworkSettings.IPAddress }}'", id)
|
args := append(vargs, "inspect", "--format='{{ .NetworkSettings.IPAddress }}'", id)
|
||||||
|
cmd := exec.Command(dockerBinary, args...)
|
||||||
out, _, err := runCommandWithOutput(cmd)
|
out, _, err := runCommandWithOutput(cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Fatal(err, out)
|
c.Fatal(err, out)
|
||||||
|
@ -580,6 +581,10 @@ func findContainerIP(c *check.C, id string) string {
|
||||||
return strings.Trim(out, " \r\n'")
|
return strings.Trim(out, " \r\n'")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *Daemon) findContainerIP(c *check.C, id string) string {
|
||||||
|
return findContainerIP(c, id, "--host", d.sock())
|
||||||
|
}
|
||||||
|
|
||||||
func getContainerCount() (int, error) {
|
func getContainerCount() (int, error) {
|
||||||
const containers = "Containers:"
|
const containers = "Containers:"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue