mirror of https://github.com/docker/cli.git
Windows: Add volume support
Signed-off-by: John Howard <jhoward@microsoft.com>
This commit is contained in:
parent
74d0203af0
commit
af6e545164
|
@ -9,7 +9,6 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/docker/docker/pkg/parsers"
|
"github.com/docker/docker/pkg/parsers"
|
||||||
"github.com/docker/docker/volume"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -214,14 +213,6 @@ func ValidateDevice(val string) (string, error) {
|
||||||
return validatePath(val, ValidDeviceMode)
|
return validatePath(val, ValidDeviceMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValidatePath validates a path for volumes
|
|
||||||
// It will make sure 'val' is in the form:
|
|
||||||
// [host-dir:]container-path[:rw|ro]
|
|
||||||
// It also validates the mount mode.
|
|
||||||
func ValidatePath(val string) (string, error) {
|
|
||||||
return validatePath(val, volume.ValidMountMode)
|
|
||||||
}
|
|
||||||
|
|
||||||
func validatePath(val string, validator func(string) bool) (string, error) {
|
func validatePath(val string, validator func(string) bool) (string, error) {
|
||||||
var containerPath string
|
var containerPath string
|
||||||
var mode string
|
var mode string
|
||||||
|
|
|
@ -274,58 +274,6 @@ func TestValidateLink(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestValidatePath(t *testing.T) {
|
|
||||||
valid := []string{
|
|
||||||
"/home",
|
|
||||||
"/home:/home",
|
|
||||||
"/home:/something/else",
|
|
||||||
"/with space",
|
|
||||||
"/home:/with space",
|
|
||||||
"relative:/absolute-path",
|
|
||||||
"hostPath:/containerPath:ro",
|
|
||||||
"/hostPath:/containerPath:rw",
|
|
||||||
"/rw:/ro",
|
|
||||||
"/path:rw",
|
|
||||||
"/path:ro",
|
|
||||||
"/rw:rw",
|
|
||||||
}
|
|
||||||
invalid := map[string]string{
|
|
||||||
"": "bad format for path: ",
|
|
||||||
"./": "./ is not an absolute path",
|
|
||||||
"../": "../ is not an absolute path",
|
|
||||||
"/:../": "../ is not an absolute path",
|
|
||||||
"/:path": "path is not an absolute path",
|
|
||||||
":": "bad format for path: :",
|
|
||||||
"/tmp:": " is not an absolute path",
|
|
||||||
":test": "bad format for path: :test",
|
|
||||||
":/test": "bad format for path: :/test",
|
|
||||||
"tmp:": " is not an absolute path",
|
|
||||||
":test:": "bad format for path: :test:",
|
|
||||||
"::": "bad format for path: ::",
|
|
||||||
":::": "bad format for path: :::",
|
|
||||||
"/tmp:::": "bad format for path: /tmp:::",
|
|
||||||
":/tmp::": "bad format for path: :/tmp::",
|
|
||||||
"path:ro": "path is not an absolute path",
|
|
||||||
"/path:/path:sw": "bad mode specified: sw",
|
|
||||||
"/path:/path:rwz": "bad mode specified: rwz",
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, path := range valid {
|
|
||||||
if _, err := ValidatePath(path); err != nil {
|
|
||||||
t.Fatalf("ValidatePath(`%q`) should succeed: error %q", path, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for path, expectedError := range invalid {
|
|
||||||
if _, err := ValidatePath(path); err == nil {
|
|
||||||
t.Fatalf("ValidatePath(`%q`) should have failed validation", path)
|
|
||||||
} else {
|
|
||||||
if err.Error() != expectedError {
|
|
||||||
t.Fatalf("ValidatePath(`%q`) error should contain %q, got %q", path, expectedError, err.Error())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
func TestValidateDevice(t *testing.T) {
|
func TestValidateDevice(t *testing.T) {
|
||||||
valid := []string{
|
valid := []string{
|
||||||
"/home",
|
"/home",
|
||||||
|
|
Loading…
Reference in New Issue