volume/volume_propagation_linux.go
a2dc4f79
 // +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
34b82a69
 // passed string. Returns true if a valid propagation mode specifier is
a2dc4f79
 // present, false otherwise.
 func HasPropagation(mode string) bool {
 	for _, o := range strings.Split(mode, ",") {
 		if propagationModes[o] {
 			return true
 		}
 	}
 	return false
 }