mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
dfc6c04fa3
- Refactor opts.ValidatePath and add an opts.ValidateDevice ValidePath will now accept : containerPath:mode, hostPath:containerPath:mode and hostPath:containerPath. ValidateDevice will have the same behavior as current. - Refactor opts.ValidateEnv, opts.ParseEnvFile Environment variables will now be validated with the following definition : > Environment variables set by the user must have a name consisting > solely of alphabetics, numerics, and underscores - the first of > which must not be numeric. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package volume
|
|
|
|
const DefaultDriverName = "local"
|
|
|
|
type Driver interface {
|
|
// Name returns the name of the volume driver.
|
|
Name() string
|
|
// Create makes a new volume with the given id.
|
|
Create(string) (Volume, error)
|
|
// Remove deletes the volume.
|
|
Remove(Volume) error
|
|
}
|
|
|
|
type Volume interface {
|
|
// Name returns the name of the volume
|
|
Name() string
|
|
// DriverName returns the name of the driver which owns this volume.
|
|
DriverName() string
|
|
// Path returns the absolute path to the volume.
|
|
Path() string
|
|
// Mount mounts the volume and returns the absolute path to
|
|
// where it can be consumed.
|
|
Mount() (string, error)
|
|
// Unmount unmounts the volume when it is no longer in use.
|
|
Unmount() error
|
|
}
|
|
|
|
// read-write modes
|
|
var rwModes = map[string]bool{
|
|
"rw": true,
|
|
"rw,Z": true,
|
|
"rw,z": true,
|
|
"z,rw": true,
|
|
"Z,rw": true,
|
|
"Z": true,
|
|
"z": true,
|
|
}
|
|
|
|
// read-only modes
|
|
var roModes = map[string]bool{
|
|
"ro": true,
|
|
"ro,Z": true,
|
|
"ro,z": true,
|
|
"z,ro": true,
|
|
"Z,ro": true,
|
|
}
|
|
|
|
// ValidateMountMode will make sure the mount mode is valid.
|
|
// returns if it's a valid mount mode and if it's read-write or not.
|
|
func ValidateMountMode(mode string) (bool, bool) {
|
|
return roModes[mode] || rwModes[mode], rwModes[mode]
|
|
}
|