Procházet zdrojové kódy

Integration tests for --fixed-cidr daemon config

Signed-off-by: Madhu Venugopal <madhu@docker.com>
Madhu Venugopal před 10 roky
rodič
revize
0e254411b1
1 změnil soubory, kde provedl 36 přidání a 0 odebrání
  1. 36 0
      integration-cli/docker_cli_daemon_test.go

+ 36 - 0
integration-cli/docker_cli_daemon_test.go

@@ -10,6 +10,7 @@ import (
 	"os"
 	"os/exec"
 	"path/filepath"
+	"strconv"
 	"strings"
 	"time"
 
@@ -486,6 +487,10 @@ func (s *DockerDaemonSuite) TestDaemonBridgeExternal(c *check.C) {
 	c.Assert(bridgeIPNet.Contains(ip), check.Equals, true,
 		check.Commentf("Container IP-Address must be in the same subnet range : %s",
 			containerIp))
+
+	// Reset to Defaults
+	deleteBridge(c, bridgeName)
+	d.Restart()
 }
 
 func deleteBridge(c *check.C, bridge string) {
@@ -553,6 +558,37 @@ func (s *DockerDaemonSuite) TestDaemonBridgeIP(c *check.C) {
 	pingContainers(c)
 }
 
+func (s *DockerDaemonSuite) TestDaemonBridgeFixedCidr(c *check.C) {
+	d := s.d
+
+	bridgeName := "external-bridge"
+	args := []string{"link", "add", "name", bridgeName, "type", "bridge"}
+	ipLinkCmd := exec.Command("ip", args...)
+	_, _, _, err := runCommandWithStdoutStderr(ipLinkCmd)
+	c.Assert(err, check.IsNil)
+
+	ifCmd := exec.Command("ifconfig", bridgeName, "192.169.1.1/24", "up")
+	_, _, _, err = runCommandWithStdoutStderr(ifCmd)
+	c.Assert(err, check.IsNil)
+
+	args = []string{"--bridge", bridgeName, "--fixed-cidr", "192.169.1.0/30"}
+	err = d.StartWithBusybox(args...)
+	c.Assert(err, check.IsNil)
+
+	for i := 0; i < 4; i++ {
+		cName := "Container" + strconv.Itoa(i)
+		out, err := d.Cmd("run", "-d", "--name", cName, "busybox", "top")
+		if err != nil {
+			c.Assert(strings.Contains(out, "no available ip addresses"), check.Equals, true,
+				check.Commentf("Could not run a Container : %s %s", err.Error(), out))
+		}
+	}
+
+	// Reset to Defaults
+	deleteBridge(c, bridgeName)
+	d.Restart()
+}
+
 func (s *DockerDaemonSuite) TestDaemonUlimitDefaults(c *check.C) {
 	testRequires(c, NativeExecDriver)