// +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 }