From 9562699f1b3500236266ed5da58442e4ebb6d6e0 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Fri, 16 Jul 2021 16:33:13 +0300 Subject: [PATCH] Remove additional FSPath prefix --- pkg/driver/controllerserver.go | 9 ++------- pkg/mounter/goofys.go | 3 +-- pkg/mounter/rclone.go | 2 +- pkg/mounter/s3backer.go | 4 ++-- pkg/mounter/s3fs.go | 3 +-- pkg/s3/client.go | 9 +++++---- 6 files changed, 12 insertions(+), 18 deletions(-) diff --git a/pkg/driver/controllerserver.go b/pkg/driver/controllerserver.go index abd663b..9d120d5 100644 --- a/pkg/driver/controllerserver.go +++ b/pkg/driver/controllerserver.go @@ -40,10 +40,6 @@ type controllerServer struct { *csicommon.DefaultControllerServer } -const ( - defaultFsPath = "csi-fs" -) - func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (*csi.CreateVolumeResponse, error) { params := req.GetParameters() capacityBytes := int64(req.GetCapacityRange().GetRequiredBytes()) @@ -94,7 +90,6 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol Mounter: mounterType, MountOptions: mountOptions, CapacityBytes: capacityBytes, - FSPath: defaultFsPath, } client, err := s3.NewClientFromSecret(req.GetSecrets()) @@ -124,8 +119,8 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol } } - if err = client.CreatePrefix(bucketName, path.Join(prefix, defaultFsPath)); err != nil { - return nil, fmt.Errorf("failed to create prefix %s: %v", path.Join(prefix, defaultFsPath), err) + if err = client.CreatePrefix(bucketName, prefix); err != nil { + return nil, fmt.Errorf("failed to create prefix %s: %v", prefix, err) } if err := client.SetFSMeta(meta); err != nil { diff --git a/pkg/mounter/goofys.go b/pkg/mounter/goofys.go index f73ba08..12a4f19 100644 --- a/pkg/mounter/goofys.go +++ b/pkg/mounter/goofys.go @@ -3,7 +3,6 @@ package mounter import ( "fmt" "os" - "path" "github.com/ctrox/csi-s3/pkg/s3" ) @@ -46,7 +45,7 @@ func (goofys *goofysMounter) Unstage(stageTarget string) error { } func (goofys *goofysMounter) Mount(source string, target string) error { - fullPath := fmt.Sprintf("%s:%s", goofys.meta.BucketName, path.Join(goofys.meta.Prefix, goofys.meta.FSPath)) + fullPath := fmt.Sprintf("%s:%s", goofys.meta.BucketName, goofys.meta.Prefix) args := []string{ "--endpoint", goofys.endpoint, "--region", goofys.region, diff --git a/pkg/mounter/rclone.go b/pkg/mounter/rclone.go index f5e4c43..43bd228 100644 --- a/pkg/mounter/rclone.go +++ b/pkg/mounter/rclone.go @@ -42,7 +42,7 @@ func (rclone *rcloneMounter) Unstage(stageTarget string) error { func (rclone *rcloneMounter) Mount(source string, target string) error { args := []string{ "mount", - fmt.Sprintf(":s3:%s", path.Join(rclone.meta.BucketName, rclone.meta.Prefix, rclone.meta.FSPath)), + fmt.Sprintf(":s3:%s", path.Join(rclone.meta.BucketName, rclone.meta.Prefix)), fmt.Sprintf("%s", target), "--daemon", "--s3-provider=AWS", diff --git a/pkg/mounter/s3backer.go b/pkg/mounter/s3backer.go index c70679d..fdf117f 100644 --- a/pkg/mounter/s3backer.go +++ b/pkg/mounter/s3backer.go @@ -38,7 +38,7 @@ func newS3backerMounter(meta *s3.FSMeta, cfg *s3.Config) (Mounter, error) { if err != nil { return nil, err } - url.Path = path.Join(url.Path, meta.BucketName, meta.Prefix, meta.FSPath) + url.Path = path.Join(url.Path, meta.BucketName, meta.Prefix) // s3backer cannot work with 0 size volumes if meta.CapacityBytes == 0 { meta.CapacityBytes = s3backerDefaultSize @@ -98,7 +98,7 @@ func (s3backer *s3backerMounter) mountInit(p string) error { args := []string{ fmt.Sprintf("--blockSize=%s", s3backerBlockSize), fmt.Sprintf("--size=%v", s3backer.meta.CapacityBytes), - fmt.Sprintf("--prefix=%s/", path.Join(s3backer.meta.Prefix, s3backer.meta.FSPath)), + fmt.Sprintf("--prefix=%s/", s3backer.meta.Prefix), "--listBlocks", s3backer.meta.BucketName, p, diff --git a/pkg/mounter/s3fs.go b/pkg/mounter/s3fs.go index b59d229..615bcb6 100644 --- a/pkg/mounter/s3fs.go +++ b/pkg/mounter/s3fs.go @@ -3,7 +3,6 @@ package mounter import ( "fmt" "os" - "path" "github.com/ctrox/csi-s3/pkg/s3" ) @@ -42,7 +41,7 @@ func (s3fs *s3fsMounter) Mount(source string, target string) error { return err } args := []string{ - fmt.Sprintf("%s:/%s", s3fs.meta.BucketName, path.Join(s3fs.meta.Prefix, s3fs.meta.FSPath)), + fmt.Sprintf("%s:/%s", s3fs.meta.BucketName, s3fs.meta.Prefix), target, "-o", "use_path_request_style", "-o", fmt.Sprintf("url=%s", s3fs.url), diff --git a/pkg/s3/client.go b/pkg/s3/client.go index 58d7e90..340bde6 100644 --- a/pkg/s3/client.go +++ b/pkg/s3/client.go @@ -38,7 +38,6 @@ type FSMeta struct { Prefix string `json:"Prefix"` Mounter string `json:"Mounter"` MountOptions []string `json:"MountOptions"` - FSPath string `json:"FSPath"` CapacityBytes int64 `json:"CapacityBytes"` } @@ -87,9 +86,11 @@ func (client *s3Client) CreateBucket(bucketName string) error { } func (client *s3Client) CreatePrefix(bucketName string, prefix string) error { - _, err := client.minio.PutObject(client.ctx, bucketName, prefix+"/", bytes.NewReader([]byte("")), 0, minio.PutObjectOptions{}) - if err != nil { - return err + if prefix != "" { + _, err := client.minio.PutObject(client.ctx, bucketName, prefix+"/", bytes.NewReader([]byte("")), 0, minio.PutObjectOptions{}) + if err != nil { + return err + } } return nil }