support mount options in azure file
use JoinMountOptions func add a new test case move const vars fix fmt issue
This commit is contained in:
@@ -18,6 +18,7 @@ package azure_file
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
@@ -25,6 +26,13 @@ import (
|
||||
"k8s.io/kubernetes/pkg/volume"
|
||||
)
|
||||
|
||||
const (
|
||||
fileModeName = "file_mode"
|
||||
dirModeName = "dir_mode"
|
||||
defaultFileMode = "700"
|
||||
defaultDirMode = "700"
|
||||
)
|
||||
|
||||
// Abstract interface to azure file operations.
|
||||
type azureUtil interface {
|
||||
GetAzureCredentials(host volume.VolumeHost, nameSpace, secretName string) (string, string, error)
|
||||
@@ -84,3 +92,29 @@ func (s *azureSvc) SetAzureCredentials(host volume.VolumeHost, nameSpace, accoun
|
||||
}
|
||||
return secretName, err
|
||||
}
|
||||
|
||||
// check whether mountOptions contains file_mode and dir_mode, if not, append default mode
|
||||
func appendDefaultMountOptions(mountOptions []string) []string {
|
||||
fileModeFlag := false
|
||||
dirModeFlag := false
|
||||
|
||||
for _, mountOption := range mountOptions {
|
||||
if strings.HasPrefix(mountOption, fileModeName) {
|
||||
fileModeFlag = true
|
||||
}
|
||||
if strings.HasPrefix(mountOption, dirModeName) {
|
||||
dirModeFlag = true
|
||||
}
|
||||
}
|
||||
|
||||
allMountOptions := mountOptions
|
||||
if !fileModeFlag {
|
||||
allMountOptions = append(allMountOptions, fmt.Sprintf("%s=%s", fileModeName, defaultFileMode))
|
||||
}
|
||||
|
||||
if !dirModeFlag {
|
||||
allMountOptions = append(allMountOptions, fmt.Sprintf("%s=%s", dirModeName, defaultDirMode))
|
||||
}
|
||||
|
||||
return allMountOptions
|
||||
}
|
||||
|
Reference in New Issue
Block a user