Browse code

bugfix: prevent creating network 'default'

Default is predefined network and is reserved, so we should stop user
from creating network with name `default`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>

Zhang Wei authored on 2016/01/19 11:12:02
Showing 2 changed files
... ...
@@ -277,6 +277,24 @@ func (s *DockerNetworkSuite) TestDockerNetworkLsDefault(c *check.C) {
277 277
 	}
278 278
 }
279 279
 
280
+func (s *DockerNetworkSuite) TestDockerNetworkCreatePredefined(c *check.C) {
281
+	predefined := []string{"bridge", "host", "none", "default"}
282
+	for _, net := range predefined {
283
+		// predefined networks can't be created again
284
+		out, _, err := dockerCmdWithError("network", "create", net)
285
+		c.Assert(err, checker.NotNil, check.Commentf("%v", out))
286
+	}
287
+}
288
+
289
+func (s *DockerNetworkSuite) TestDockerNetworkRmPredefined(c *check.C) {
290
+	predefined := []string{"bridge", "host", "none", "default"}
291
+	for _, net := range predefined {
292
+		// predefined networks can't be removed
293
+		out, _, err := dockerCmdWithError("network", "rm", net)
294
+		c.Assert(err, checker.NotNil, check.Commentf("%v", out))
295
+	}
296
+}
297
+
280 298
 func (s *DockerNetworkSuite) TestDockerNetworkLsFilter(c *check.C) {
281 299
 	out, _ := dockerCmd(c, "network", "create", "dev")
282 300
 	defer func() {
... ...
@@ -19,7 +19,7 @@ func DefaultDaemonNetworkMode() container.NetworkMode {
19 19
 // IsPreDefinedNetwork indicates if a network is predefined by the daemon
20 20
 func IsPreDefinedNetwork(network string) bool {
21 21
 	n := container.NetworkMode(network)
22
-	return n.IsBridge() || n.IsHost() || n.IsNone()
22
+	return n.IsBridge() || n.IsHost() || n.IsNone() || n.IsDefault()
23 23
 }
24 24
 
25 25
 // ValidateNetMode ensures that the various combinations of requested