diff options
Diffstat (limited to 'pkg/driver/driver.go')
| -rw-r--r-- | pkg/driver/driver.go | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/pkg/driver/driver.go b/pkg/driver/driver.go index d162369..6bdcc3b 100644 --- a/pkg/driver/driver.go +++ b/pkg/driver/driver.go @@ -4,10 +4,12 @@ import ( "fmt" "os" "os/signal" + "path/filepath" "syscall" "github.com/container-storage-interface/spec/lib/go/csi" "github.com/seaweedfs/seaweedfs-csi-driver/pkg/datalocality" + "github.com/seaweedfs/seaweedfs-csi-driver/pkg/mountmanager" "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/pb" "github.com/seaweedfs/seaweedfs/weed/pb/filer_pb" @@ -27,8 +29,9 @@ type SeaweedFsDriver struct { nodeID string version string - endpoint string - mountEndpoint string + endpoint string + mountEndpoint string + volumeSocketDir string // directory for volume sockets, derived from mountEndpoint vcap []*csi.VolumeCapability_AccessMode cscap []*csi.ControllerServiceCapability @@ -55,15 +58,25 @@ func NewSeaweedFsDriver(name, filer, nodeID, endpoint, mountEndpoint string, ena util.LoadConfiguration("security", false) + // Derive volumeSocketDir from mountEndpoint + volumeSocketDir := mountmanager.DefaultSocketDir + if mountEndpoint != "" { + _, address, err := mountmanager.ParseEndpoint(mountEndpoint) + if err == nil && address != "" { + volumeSocketDir = filepath.Dir(address) + } + } + n := &SeaweedFsDriver{ - endpoint: endpoint, - mountEndpoint: mountEndpoint, - nodeID: nodeID, - name: name, - version: version, - filers: pb.ServerAddresses(filer).ToAddresses(), - grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.client"), - signature: util.RandomInt32(), + endpoint: endpoint, + mountEndpoint: mountEndpoint, + volumeSocketDir: volumeSocketDir, + nodeID: nodeID, + name: name, + version: version, + filers: pb.ServerAddresses(filer).ToAddresses(), + grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.client"), + signature: util.RandomInt32(), } n.AddVolumeCapabilityAccessModes([]csi.VolumeCapability_AccessMode_Mode{ |
