@@ -17,40 +17,40 @@ package mountmanager
1717
1818import (
1919 "context"
20+ "fmt"
2021
2122 volumeapi "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1beta1"
22- volumeclient "github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1beta1 "
23+ "k8s.io/utils/mount "
2324)
2425
25- var _ Statter = realStatter {}
26+ var _ Statter = & realStatter {}
2627
2728type realStatter struct {
28- VolumeClient * volumeclient. Client
29+ mounter * mount. SafeFormatAndMount
2930}
3031
31- func NewStatter () (realStatter , error ) {
32- volumeClient , err := volumeclient .NewClient ()
33- if err != nil {
34- return realStatter {}, err
35- }
36- return realStatter {
37- VolumeClient : volumeClient ,
38- }, nil
32+ func NewStatter (mounter * mount.SafeFormatAndMount ) * realStatter {
33+ return & realStatter {mounter : mounter }
3934}
4035
4136// IsBlock checks if the given path is a block device
42- func (realStatter ) IsBlockDevice (fullPath string ) (bool , error ) {
37+ func (r * realStatter ) IsBlockDevice (fullPath string ) (bool , error ) {
4338 return false , nil
4439}
4540
4641// StatFS returns volume usage information
47- func (r realStatter ) StatFS (path string ) (available , capacity , used , inodesFree , inodes , inodesUsed int64 , err error ) {
42+ func (r * realStatter ) StatFS (path string ) (available , capacity , used , inodesFree , inodes , inodesUsed int64 , err error ) {
4843 zero := int64 (0 )
4944
45+ proxy , ok := r .mounter .Interface .(* CSIProxyMounter )
46+ if ! ok {
47+ return zero , zero , zero , zero , zero , zero , fmt .Errorf ("could not cast to csi proxy class" )
48+ }
49+
5050 idRequest := & volumeapi.VolumeIDFromMountRequest {
5151 Mount : path ,
5252 }
53- idResponse , err := r .VolumeClient .GetVolumeIDFromMount (context .Background (), idRequest )
53+ idResponse , err := proxy .VolumeClient .GetVolumeIDFromMount (context .Background (), idRequest )
5454 if err != nil {
5555 return zero , zero , zero , zero , zero , zero , err
5656 }
@@ -59,7 +59,7 @@ func (r realStatter) StatFS(path string) (available, capacity, used, inodesFree,
5959 request := & volumeapi.VolumeStatsRequest {
6060 VolumeId : volumeId ,
6161 }
62- response , err := r .VolumeClient .VolumeStats (context .Background (), request )
62+ response , err := proxy .VolumeClient .VolumeStats (context .Background (), request )
6363 if err != nil {
6464 return zero , zero , zero , zero , zero , zero , err
6565 }
@@ -71,15 +71,15 @@ func (r realStatter) StatFS(path string) (available, capacity, used, inodesFree,
7171
7272type fakeStatter struct {}
7373
74- func NewFakeStatter () fakeStatter {
75- return fakeStatter {}
74+ func NewFakeStatter (mounter * mount. SafeFormatAndMount ) * fakeStatter {
75+ return & fakeStatter {}
7676}
7777
78- func (fakeStatter ) StatFS (path string ) (available , capacity , used , inodesFree , inodes , inodesUsed int64 , err error ) {
78+ func (* fakeStatter ) StatFS (path string ) (available , capacity , used , inodesFree , inodes , inodesUsed int64 , err error ) {
7979 // Assume the file exists and give some dummy values back
8080 return 1 , 1 , 1 , 1 , 1 , 1 , nil
8181}
8282
83- func (fakeStatter ) IsBlockDevice (fullPath string ) (bool , error ) {
83+ func (* fakeStatter ) IsBlockDevice (fullPath string ) (bool , error ) {
8484 return false , nil
8585}
0 commit comments