Преглед на файлове

Merge pull request #8392 from jfrazelle/pr_8389

Invalid mount mode for volumes in
Andrea Luzzardi преди 10 години
родител
ревизия
84d9fd37b0
променени са 2 файла, в които са добавени 13 реда и са изтрити 3 реда
  1. 1 1
      daemon/volumes.go
  2. 12 2
      integration-cli/docker_cli_run_test.go

+ 1 - 1
daemon/volumes.go

@@ -235,7 +235,7 @@ func parseVolumesFromSpec(daemon *Daemon, spec string) (map[string]*Mount, error
 
 
 	if len(specParts) == 2 {
 	if len(specParts) == 2 {
 		mode := specParts[1]
 		mode := specParts[1]
-		if validMountMode(mode) {
+		if !validMountMode(mode) {
 			return nil, fmt.Errorf("Invalid mode for volumes-from: %s", mode)
 			return nil, fmt.Errorf("Invalid mode for volumes-from: %s", mode)
 		}
 		}
 
 

+ 12 - 2
integration-cli/docker_cli_run_test.go

@@ -389,9 +389,19 @@ func TestRunVolumesFromInReadWriteMode(t *testing.T) {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 
 
+	cmd = exec.Command(dockerBinary, "run", "--volumes-from", "parent:rw", "busybox", "touch", "/test/file")
+	if out, _, err := runCommandWithOutput(cmd); err != nil {
+		t.Fatalf("running --volumes-from parent:rw failed with output: %q\nerror: %v", out, err)
+	}
+
+	cmd = exec.Command(dockerBinary, "run", "--volumes-from", "parent:bar", "busybox", "touch", "/test/file")
+	if out, _, err := runCommandWithOutput(cmd); err == nil || !strings.Contains(out, "Invalid mode for volumes-from: bar") {
+		t.Fatalf("running --volumes-from foo:bar should have failed with invalid mount mode: %q", out)
+	}
+
 	cmd = exec.Command(dockerBinary, "run", "--volumes-from", "parent", "busybox", "touch", "/test/file")
 	cmd = exec.Command(dockerBinary, "run", "--volumes-from", "parent", "busybox", "touch", "/test/file")
-	if _, err := runCommand(cmd); err != nil {
-		t.Fatal(err)
+	if out, _, err := runCommandWithOutput(cmd); err != nil {
+		t.Fatalf("running --volumes-from parent failed with output: %q\nerror: %v", out, err)
 	}
 	}
 
 
 	deleteAllContainers()
 	deleteAllContainers()