瀏覽代碼

Merge pull request #6365 from vieux/allow_net_none_h

Allow --net=none and -h
Victor Vieux 11 年之前
父節點
當前提交
15243cdbde
共有 2 個文件被更改,包括 28 次插入2 次删除
  1. 2 2
      runconfig/parse.go
  2. 26 0
      runconfig/parse_test.go

+ 2 - 2
runconfig/parse.go

@@ -18,7 +18,7 @@ var (
 	ErrInvalidWorkingDirectory  = fmt.Errorf("The working directory is invalid. It needs to be an absolute path.")
 	ErrConflictAttachDetach     = fmt.Errorf("Conflicting options: -a and -d")
 	ErrConflictDetachAutoRemove = fmt.Errorf("Conflicting options: --rm and -d")
-	ErrConflictNetworkHostname  = fmt.Errorf("Conflicting options: -h and --net")
+	ErrConflictNetworkHostname  = fmt.Errorf("Conflicting options: -h and the network mode (--net)")
 )
 
 //FIXME Only used in tests
@@ -104,7 +104,7 @@ func parseRun(cmd *flag.FlagSet, args []string, sysInfo *sysinfo.SysInfo) (*Conf
 		return nil, nil, cmd, ErrConflictDetachAutoRemove
 	}
 
-	if *flNetMode != "bridge" && *flHostname != "" {
+	if *flNetMode != "bridge" && *flNetMode != "none" && *flHostname != "" {
 		return nil, nil, cmd, ErrConflictNetworkHostname
 	}
 

+ 26 - 0
runconfig/parse_test.go

@@ -22,3 +22,29 @@ func TestParseLxcConfOpt(t *testing.T) {
 		}
 	}
 }
+
+func TestNetHostname(t *testing.T) {
+	if _, _, _, err := Parse([]string{"-h=name", "img", "cmd"}, nil); err != nil {
+		t.Fatal("Unexpected error: %s", err)
+	}
+
+	if _, _, _, err := Parse([]string{"--net=host", "img", "cmd"}, nil); err != nil {
+		t.Fatal("Unexpected error: %s", err)
+	}
+
+	if _, _, _, err := Parse([]string{"-h=name", "--net=bridge", "img", "cmd"}, nil); err != nil {
+		t.Fatal("Unexpected error: %s", err)
+	}
+
+	if _, _, _, err := Parse([]string{"-h=name", "--net=none", "img", "cmd"}, nil); err != nil {
+		t.Fatal("Unexpected error: %s", err)
+	}
+
+	if _, _, _, err := Parse([]string{"-h=name", "--net=host", "img", "cmd"}, nil); err != ErrConflictNetworkHostname {
+		t.Fatal("Expected error ErrConflictNetworkHostname, got: %s", err)
+	}
+
+	if _, _, _, err := Parse([]string{"-h=name", "--net=container:other", "img", "cmd"}, nil); err != ErrConflictNetworkHostname {
+		t.Fatal("Expected error ErrConflictNetworkHostname, got: %s", err)
+	}
+}