Skip to content

Commit 4799a82

Browse files
authored
Merge pull request #191 from mauriciopoppe/working-dir-flag
Filesystem server accepts an array of working dirs only, log on startup
2 parents 2d89a92 + ea75bb6 commit 4799a82

File tree

4 files changed

+14
-13
lines changed

4 files changed

+14
-13
lines changed

cmd/csi-proxy/main.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,25 +61,27 @@ func main() {
6161
}
6262
}
6363

64+
klog.Info("Starting CSI-Proxy Server ...")
65+
klog.Infof("Version: %s", version)
6466
apiGroups, err := apiGroups()
6567
if err != nil {
6668
panic(err)
6769
}
6870
s := server.NewServer(apiGroups...)
6971

70-
klog.Info("Starting CSI-Proxy Server ...")
71-
klog.Infof("Version: %s", version)
7272
if err := s.Start(nil); err != nil {
7373
panic(err)
7474
}
7575
}
7676

7777
// apiGroups returns the list of enabled API groups.
7878
func apiGroups() ([]srvtypes.APIGroup, error) {
79-
fssrv, err := filesystemsrv.NewServer(*kubeletPath, workingDirs, filesystemapi.New())
79+
workingDirs = append(workingDirs, *kubeletPath)
80+
fssrv, err := filesystemsrv.NewServer(workingDirs, filesystemapi.New())
8081
if err != nil {
8182
return []srvtypes.APIGroup{}, err
8283
}
84+
klog.Info("Working directories: %v", fssrv.GetWorkingDirs())
8385

8486
volumesrv, err := volumesrv.NewServer(volumeapi.New())
8587
if err != nil {

pkg/server/filesystem/server.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
)
1515

1616
type Server struct {
17-
kubeletPath string
1817
workingDirs []string
1918
hostAPI filesystem.API
2019
}
@@ -25,14 +24,17 @@ var _ internal.ServerInterface = &Server{}
2524
var invalidPathCharsRegexWindows = regexp.MustCompile(`["/\:\?\*|]`)
2625
var absPathRegexWindows = regexp.MustCompile(`^[a-zA-Z]:\\`)
2726

28-
func NewServer(kubeletPath string, workingDirs []string, hostAPI filesystem.API) (*Server, error) {
27+
func NewServer(workingDirs []string, hostAPI filesystem.API) (*Server, error) {
2928
return &Server{
30-
kubeletPath: kubeletPath,
3129
workingDirs: workingDirs,
3230
hostAPI: hostAPI,
3331
}, nil
3432
}
3533

34+
func (s *Server) GetWorkingDirs() []string {
35+
return s.workingDirs
36+
}
37+
3638
func containsInvalidCharactersWindows(path string) bool {
3739
if isAbsWindows(path) {
3840
path = path[3:]
@@ -94,17 +96,14 @@ func (s *Server) validatePathWindows(path string) error {
9496
}
9597

9698
valid := false
97-
if strings.HasPrefix(strings.ToLower(path), strings.ToLower(s.kubeletPath)) {
98-
valid = true
99-
}
10099
for _, workingDir := range s.workingDirs {
101100
if strings.HasPrefix(strings.ToLower(path), strings.ToLower(workingDir)) {
102101
valid = true
103102
}
104103
}
105104

106105
if !valid {
107-
return fmt.Errorf("path: %s is not within context path: %s or %v", path, s.kubeletPath, s.workingDirs)
106+
return fmt.Errorf("path: %s is not within the working directories: %v", path, s.workingDirs)
108107
}
109108

110109
return nil

pkg/server/filesystem/server_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ func TestMkdirWindows(t *testing.T) {
117117
expectError: true,
118118
},
119119
}
120-
srv, err := NewServer(`C:\var\lib\kubelet`, []string{}, &fakeFileSystemAPI{})
120+
srv, err := NewServer([]string{`C:\var\lib\kubelet`}, &fakeFileSystemAPI{})
121121
if err != nil {
122122
t.Fatalf("FileSystem Server could not be initialized for testing: %v", err)
123123
}
@@ -221,7 +221,7 @@ func TestRmdirWindows(t *testing.T) {
221221
expectError: true,
222222
},
223223
}
224-
srv, err := NewServer(`C:\var\lib\kubelet`, []string{}, &fakeFileSystemAPI{})
224+
srv, err := NewServer([]string{`C:\var\lib\kubelet`}, &fakeFileSystemAPI{})
225225
if err != nil {
226226
t.Fatalf("FileSystem Server could not be initialized for testing: %v", err)
227227
}

pkg/server/smb/server_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func TestNewSmbGlobalMapping(t *testing.T) {
8383
expectError: false,
8484
},
8585
}
86-
fsSrv, err := fsserver.NewServer(`C:\var\lib\kubelet`, []string{}, &fakeFileSystemAPI{})
86+
fsSrv, err := fsserver.NewServer([]string{`C:\var\lib\kubelet`}, &fakeFileSystemAPI{})
8787
if err != nil {
8888
t.Fatalf("FileSystem Server could not be initialized for testing: %v", err)
8989
}

0 commit comments

Comments
 (0)