1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // +build linux
- package volume
- import (
- "strings"
- )
- // DefaultPropagationMode defines what propagation mode should be used by
- // default if user has not specified one explicitly.
- const DefaultPropagationMode string = "rprivate"
- // propagation modes
- var propagationModes = map[string]bool{
- "private": true,
- "rprivate": true,
- "slave": true,
- "rslave": true,
- "shared": true,
- "rshared": true,
- }
- // GetPropagation extracts and returns the mount propagation mode. If there
- // are no specifications, then by default it is "private".
- func GetPropagation(mode string) string {
- for _, o := range strings.Split(mode, ",") {
- if propagationModes[o] {
- return o
- }
- }
- return DefaultPropagationMode
- }
- // HasPropagation checks if there is a valid propagation mode present in
- // passed string. Returns true if a valid propagation mode specifier is
- // present, false otherwise.
- func HasPropagation(mode string) bool {
- for _, o := range strings.Split(mode, ",") {
- if propagationModes[o] {
- return true
- }
- }
- return false
- }
|