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] } // ReadOnly tells you if a mode string is a valid read-only mode or not. func ReadWrite(mode string) bool { return rwModes[mode] }