From 71aeab26d4beb7c28efafe30fb21481c7ce7a386 Mon Sep 17 00:00:00 2001 From: xixi Date: Fri, 10 Nov 2023 10:43:33 +0800 Subject: [PATCH 01/17] add nfs filesystem test Signed-off-by: xixi --- pkg/object/filesystem_test.go | 17 ++++++++++++++--- pkg/object/nfs.go | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/object/filesystem_test.go b/pkg/object/filesystem_test.go index 82d00b34f9fb..698756103e3c 100644 --- a/pkg/object/filesystem_test.go +++ b/pkg/object/filesystem_test.go @@ -68,6 +68,17 @@ func TestHDFS2(t *testing.T) { //skip mutate testFileSystem(t, dfs) } +func TestNFS2(t *testing.T) { //skip mutate + if os.Getenv("NFS_ADDR") == "" { + t.SkipNow() + } + b, err := newNFSStore(os.Getenv("NFS_ADDR"), os.Getenv("NFS_ACCESS_KEY"), os.Getenv("NFS_SECRET_KEY"), "") + if err != nil { + t.Fatal(err) + } + testFileSystem(t, b) +} + func testFileSystem(t *testing.T, s ObjectStorage) { keys := []string{ "x/", @@ -139,9 +150,9 @@ func testFileSystem(t *testing.T, s ObjectStorage) { } expectedKeys = []string{"x/", "xy.txt", "xyz/", "xyz/xyz.txt"} if mode == 0422 { - if _, ok := ss.(*gluster); ok { - expectedKeys = []string{"x/", "x/x.txt", "xy.txt", "xyz/", "xyz/xyz.txt"} - } + // if _, ok := ss.(*gluster); ok { + // expectedKeys = []string{"x/", "x/x.txt", "xy.txt", "xyz/", "xyz/xyz.txt"} + // } } if err = testKeysEqual(objs, expectedKeys); err != nil { t.Fatalf("testKeysEqual fail: %s mode %o", err, mode) diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index e6542360736c..6c7019a83573 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -404,6 +404,7 @@ func newNFSStore(addr, username, pass, token string) (ObjectStorage, error) { if err != nil { return nil, fmt.Errorf("unable to dial MOUNT service %s: %v", addr, err) } + logger.Printf("%s(%d, %d)", username, uint32(os.Getuid()), uint32(os.Getgid())) auth := rpc.NewAuthUnix(username, uint32(os.Getuid()), uint32(os.Getgid())) target, err := mount.Mount(path, auth.Auth()) if err != nil { From ea3d2523e976ba104abcef1c1f799e3626fd5702 Mon Sep 17 00:00:00 2001 From: xixi Date: Mon, 13 Nov 2023 13:23:39 +0800 Subject: [PATCH 02/17] fix delete Signed-off-by: xixi --- pkg/object/filesystem_test.go | 11 +++++++---- pkg/object/nfs.go | 26 ++++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/pkg/object/filesystem_test.go b/pkg/object/filesystem_test.go index 698756103e3c..61c50ba5afc3 100644 --- a/pkg/object/filesystem_test.go +++ b/pkg/object/filesystem_test.go @@ -149,11 +149,14 @@ func testFileSystem(t *testing.T, s ObjectStorage) { t.Fatalf("list failed: %s mode %o", err, mode) } expectedKeys = []string{"x/", "xy.txt", "xyz/", "xyz/xyz.txt"} - if mode == 0422 { - // if _, ok := ss.(*gluster); ok { - // expectedKeys = []string{"x/", "x/x.txt", "xy.txt", "xyz/", "xyz/xyz.txt"} - // } + if _, ok := ss.(*nfsStore); ok { + expectedKeys = []string{"x/", "x/x.txt", "xy.txt", "xyz/", "xyz/xyz.txt"} } + // if mode == 0422 { + // if _, ok := ss.(*gluster); ok { + // expectedKeys = []string{"x/", "x/x.txt", "xy.txt", "xyz/", "xyz/xyz.txt"} + // } + // } if err = testKeysEqual(objs, expectedKeys); err != nil { t.Fatalf("testKeysEqual fail: %s mode %o", err, mode) } diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index 6c7019a83573..85984155a2c4 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -91,6 +91,17 @@ func (n *nfsStore) Head(key string) (Object, error) { if err != nil { return nil, err } + if key == "bb/b1" { + logger.Infof("bb/b1: %#v", fi) + } + if attr, ok := fi.Sys().(*nfs.Fattr); ok && attr.Type == nfs.NF3Lnk { + src, err := n.Readlink(p) + if err != nil { + return nil, err + } + logger.Infof("symlink %s -> %s", p, src) + return n.Head(src) + } return n.fileInfo(key, fi), nil } @@ -188,7 +199,19 @@ func (n *nfsStore) Put(key string, in io.Reader) error { } func (n *nfsStore) Delete(key string) error { - err := n.target.Remove(strings.TrimRight(n.path(key), dirSuffix)) + path := n.path(key) + if key == "./" { + return nil + } + fi, _, err := n.target.Lookup(path) + if err != nil { + return err + } + if fi.IsDir() { + err = n.target.RmDir(strings.TrimSuffix(path, "/")) + } else { + err = n.target.Remove(path) + } if err != nil && os.IsNotExist(err) { err = nil } @@ -220,7 +243,6 @@ func (n *nfsStore) readDirSorted(dirname string, followLink bool) ([]*nfsEntry, return nil, errors.Wrapf(err, "readdir %s", dirname) } nfsEntries := make([]*nfsEntry, len(entries)) - for i, e := range entries { if e.IsDir() { nfsEntries[i] = &nfsEntry{e, e.Name() + dirSuffix, nil, false} From 232c32145fc3364ab00e6daa09c26960d550d8e2 Mon Sep 17 00:00:00 2001 From: xixi Date: Mon, 13 Nov 2023 14:20:28 +0800 Subject: [PATCH 03/17] fix head follow link Signed-off-by: xixi --- pkg/object/nfs.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index 85984155a2c4..036ffdeba016 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -94,13 +94,14 @@ func (n *nfsStore) Head(key string) (Object, error) { if key == "bb/b1" { logger.Infof("bb/b1: %#v", fi) } - if attr, ok := fi.Sys().(*nfs.Fattr); ok && attr.Type == nfs.NF3Lnk { + if attr, ok := fi.(*nfs.Fattr); ok && attr.Type == nfs.NF3Lnk { src, err := n.Readlink(p) if err != nil { return nil, err } logger.Infof("symlink %s -> %s", p, src) - return n.Head(src) + dir, _ := path.Split(p) + return n.Head(path.Join(dir, src)) } return n.fileInfo(key, fi), nil } From 8dfe4da31c9d8548558d0fcaf8f94f2a74ae1164 Mon Sep 17 00:00:00 2001 From: xixi Date: Mon, 13 Nov 2023 14:24:51 +0800 Subject: [PATCH 04/17] fix List Signed-off-by: xixi --- pkg/object/nfs.go | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index 036ffdeba016..35f278bda9f4 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -91,15 +91,11 @@ func (n *nfsStore) Head(key string) (Object, error) { if err != nil { return nil, err } - if key == "bb/b1" { - logger.Infof("bb/b1: %#v", fi) - } if attr, ok := fi.(*nfs.Fattr); ok && attr.Type == nfs.NF3Lnk { src, err := n.Readlink(p) if err != nil { return nil, err } - logger.Infof("symlink %s -> %s", p, src) dir, _ := path.Split(p) return n.Head(path.Join(dir, src)) } @@ -201,9 +197,6 @@ func (n *nfsStore) Put(key string, in io.Reader) error { func (n *nfsStore) Delete(key string) error { path := n.path(key) - if key == "./" { - return nil - } fi, _, err := n.target.Lookup(path) if err != nil { return err @@ -286,7 +279,9 @@ func (n *nfsStore) List(prefix, marker, delimiter string, limit int64, followLin } return nil, err } - objs = append(objs, obj) + if obj.Key() != "./" { + objs = append(objs, obj) + } } entries, err := n.readDirSorted(dir, followLink) if err != nil { From 8787f0f2e2378faf96d4cdca5c3a73f6274a55e2 Mon Sep 17 00:00:00 2001 From: xixi Date: Mon, 13 Nov 2023 17:50:12 +0800 Subject: [PATCH 05/17] readdir follow link Signed-off-by: xixi --- pkg/object/nfs.go | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index 35f278bda9f4..bdfbb2fe89dd 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -197,6 +197,9 @@ func (n *nfsStore) Put(key string, in io.Reader) error { func (n *nfsStore) Delete(key string) error { path := n.path(key) + if path == "./" { + return nil + } fi, _, err := n.target.Lookup(path) if err != nil { return err @@ -231,7 +234,12 @@ func (n *nfsStore) fileInfo(key string, fi os.FileInfo) Object { return ff } -func (n *nfsStore) readDirSorted(dirname string, followLink bool) ([]*nfsEntry, error) { +func (n *nfsStore) readDirSorted(dir string, followLink bool) ([]*nfsEntry, error) { + o, err := n.Head(strings.TrimSuffix(dir, "/")) + if err != nil { + return nil, err + } + dirname := o.Key() entries, err := n.target.ReadDirPlus(dirname) if err != nil { return nil, errors.Wrapf(err, "readdir %s", dirname) @@ -242,9 +250,15 @@ func (n *nfsStore) readDirSorted(dirname string, followLink bool) ([]*nfsEntry, nfsEntries[i] = &nfsEntry{e, e.Name() + dirSuffix, nil, false} } else if e.Attr.Attr.Type == nfs.NF3Lnk && followLink { // follow symlink - fi, _, err := n.target.Lookup(path.Join(dirname, e.Name())) + nfsEntries[i] = &nfsEntry{e, e.Name(), nil, true} + src, err := n.Readlink(path.Join(dirname, e.Name())) + if err != nil { + logger.Errorf("readlink %s: %s", e.Name(), err) + continue + } + fi, _, err := n.target.Lookup(path.Join(dirname, src)) if err != nil { - nfsEntries[i] = &nfsEntry{e, e.Name(), nil, true} + logger.Warnf("follow link `%s`: lookup `%s`: %s", path.Join(dirname, e.Name()), src, err) continue } name := e.Name() @@ -260,6 +274,10 @@ func (n *nfsStore) readDirSorted(dirname string, followLink bool) ([]*nfsEntry, return nfsEntries, err } +func IsPermissionDenied(err error) bool { + return errors.Is(err, nfs.NFS3Error(nfs.NFS3ErrAcces)) +} + func (n *nfsStore) List(prefix, marker, delimiter string, limit int64, followLink bool) ([]Object, error) { if delimiter != "/" { return nil, notSupported @@ -279,13 +297,11 @@ func (n *nfsStore) List(prefix, marker, delimiter string, limit int64, followLin } return nil, err } - if obj.Key() != "./" { - objs = append(objs, obj) - } + objs = append(objs, obj) } entries, err := n.readDirSorted(dir, followLink) if err != nil { - if os.IsPermission(err) { + if os.IsPermission(err) || errors.Is(err, nfs.NFS3Error(nfs.NFS3ErrAcces)) { logger.Warnf("skip %s: %s", dir, err) return nil, nil } From cffd74bb3afb676382073364a3586b0b3e523bda Mon Sep 17 00:00:00 2001 From: xixi Date: Mon, 13 Nov 2023 18:07:29 +0800 Subject: [PATCH 06/17] fix delete Signed-off-by: xixi --- pkg/object/nfs.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index bdfbb2fe89dd..c6e33653bc1f 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -202,12 +202,16 @@ func (n *nfsStore) Delete(key string) error { } fi, _, err := n.target.Lookup(path) if err != nil { + if nfs.IsNotDirError(err) { + return nil + } return err } + p := strings.TrimSuffix(path, "/") if fi.IsDir() { - err = n.target.RmDir(strings.TrimSuffix(path, "/")) + err = n.target.RmDir(p) } else { - err = n.target.Remove(path) + err = n.target.Remove(p) } if err != nil && os.IsNotExist(err) { err = nil From fffe5322fae4258e140a469c102773497d0cb81a Mon Sep 17 00:00:00 2001 From: xixi Date: Tue, 14 Nov 2023 00:47:32 +0800 Subject: [PATCH 07/17] fix filesystem test Signed-off-by: xixi --- pkg/object/filesystem_test.go | 6 ++++++ pkg/object/nfs.go | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/object/filesystem_test.go b/pkg/object/filesystem_test.go index 61c50ba5afc3..fbf504667a7e 100644 --- a/pkg/object/filesystem_test.go +++ b/pkg/object/filesystem_test.go @@ -206,6 +206,9 @@ func testFileSystem(t *testing.T, s ObjectStorage) { t.Fatalf("listall failed: %s", err) } expectedKeys = []string{"", "a-", "a/", "a/p.txt", "a0", "b", "b-", "b0", "bb/", "bb/b1", "x/", "x/x.txt", "xy.txt", "xyz/", "xyz/ol1/", "xyz/ol1/p.txt", "xyz/xyz.txt"} + if _, ok := ss.(*nfsStore); ok { + expectedKeys[0] = "./" + } if err = testKeysEqual(objs, expectedKeys); err != nil { t.Fatalf("testKeysEqual fail: %s", err) } @@ -220,6 +223,9 @@ func testFileSystem(t *testing.T, s ObjectStorage) { if _, ok := s.(*hdfsclient); !ok { objs, err = listAll(s, "", "", 100, false) expectedKeys = []string{"", "a", "a-", "a0", "b", "b-", "b0", "bb/", "bb/b1", "x/", "x/x.txt", "xy.txt", "xyz/", "xyz/ol1/", "xyz/ol1/p.txt", "xyz/xyz.txt"} + if _, ok := ss.(*nfsStore); ok { + expectedKeys[0] = "./" + } if err = testKeysEqual(objs, expectedKeys); err != nil { t.Fatalf("testKeysEqual fail: %s", err) } diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index c6e33653bc1f..93b85cac03fd 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -60,6 +60,13 @@ func (e *nfsEntry) Name() string { return e.name } +func (e *nfsEntry) Size() int64 { + if e.fi != nil { + return e.fi.Size() + } + return e.EntryPlus.Size() +} + func (e *nfsEntry) Info() (os.FileInfo, error) { if e.fi != nil { return e.fi, nil @@ -260,9 +267,10 @@ func (n *nfsStore) readDirSorted(dir string, followLink bool) ([]*nfsEntry, erro logger.Errorf("readlink %s: %s", e.Name(), err) continue } - fi, _, err := n.target.Lookup(path.Join(dirname, src)) + srcPath := path.Clean(path.Join(dirname, src)) + fi, _, err := n.target.Lookup(srcPath) if err != nil { - logger.Warnf("follow link `%s`: lookup `%s`: %s", path.Join(dirname, e.Name()), src, err) + logger.Warnf("follow link `%s`: lookup `%s`: %s", path.Join(dirname, e.Name()), srcPath, err) continue } name := e.Name() From d633f4451db1b2416a730a27d2d5e642fd595a78 Mon Sep 17 00:00:00 2001 From: xixi Date: Tue, 14 Nov 2023 15:32:52 +0800 Subject: [PATCH 08/17] fix object test Signed-off-by: xixi --- pkg/object/nfs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index 93b85cac03fd..77020f7e6719 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -209,7 +209,7 @@ func (n *nfsStore) Delete(key string) error { } fi, _, err := n.target.Lookup(path) if err != nil { - if nfs.IsNotDirError(err) { + if nfs.IsNotDirError(err) || os.IsNotExist(err) { return nil } return err From d2a66ffcc999df075480c73a2011ee016ef6c3b1 Mon Sep 17 00:00:00 2001 From: xixi Date: Tue, 14 Nov 2023 16:16:08 +0800 Subject: [PATCH 09/17] add nfs test in unittest Signed-off-by: xixi --- .github/workflows/unittests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 5130ce8a7c3b..1f5ed806792e 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -50,6 +50,7 @@ jobs: ETCD_ADDR: 127.0.0.1:3379 MYSQL_ADDR: (127.0.0.1:3306)/dev MYSQL_USER: root + NFS_ADDR: 127.0.0.1:/srv/nfs/ steps: - name: Checkout uses: actions/checkout@v3 @@ -63,7 +64,7 @@ jobs: - name: Install Packages run: | - sudo .github/scripts/apt_install.sh g++-multilib redis-server libacl1-dev attr glusterfs-server libglusterfs-dev + sudo .github/scripts/apt_install.sh g++-multilib redis-server libacl1-dev attr glusterfs-server libglusterfs-dev nfs-kernel-server sudo mkdir -p /home/travis/.m2/ - if: matrix.test == 'test.meta.non-core' From 5507a1f94ce20665416f5bb5242a1c95c1e65e92 Mon Sep 17 00:00:00 2001 From: xixi Date: Tue, 14 Nov 2023 16:35:23 +0800 Subject: [PATCH 10/17] start nfs server Signed-off-by: xixi --- .github/workflows/unittests.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 1f5ed806792e..3f02279e8eb4 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -66,7 +66,17 @@ jobs: run: | sudo .github/scripts/apt_install.sh g++-multilib redis-server libacl1-dev attr glusterfs-server libglusterfs-dev nfs-kernel-server sudo mkdir -p /home/travis/.m2/ - + - if: matrix.test == 'test.pkg' + name: Set up nfs-server + run: | + mkdir -p /srv/nfs + chown nobody:nogroup /srv/nfs + chmod 777 /srv/nfs + cat >> /etc/exports < Date: Tue, 14 Nov 2023 16:41:11 +0800 Subject: [PATCH 11/17] run as sudo Signed-off-by: xixi --- .github/workflows/unittests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 3f02279e8eb4..085d4597dd59 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -69,13 +69,13 @@ jobs: - if: matrix.test == 'test.pkg' name: Set up nfs-server run: | - mkdir -p /srv/nfs - chown nobody:nogroup /srv/nfs - chmod 777 /srv/nfs - cat >> /etc/exports <> /etc/exports < Date: Tue, 14 Nov 2023 16:53:13 +0800 Subject: [PATCH 12/17] append file as root Signed-off-by: xixi --- .github/workflows/unittests.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 085d4597dd59..8a830f64de0f 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -72,10 +72,9 @@ jobs: sudo mkdir -p /srv/nfs sudo chown nobody:nogroup /srv/nfs sudo chmod 777 /srv/nfs - sudo cat >> /etc/exports < Date: Tue, 14 Nov 2023 17:08:05 +0800 Subject: [PATCH 13/17] add insecure for nfs server Signed-off-by: xixi --- .github/workflows/unittests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 8a830f64de0f..d1cfd03407f0 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -72,7 +72,7 @@ jobs: sudo mkdir -p /srv/nfs sudo chown nobody:nogroup /srv/nfs sudo chmod 777 /srv/nfs - echo "/srv/nfs 127.0.0.1(rw,sync)" | sudo tee -a /etc/exports + echo "/srv/nfs 127.0.0.1(rw,sync,insecure)" | sudo tee -a /etc/exports sudo systemctl start nfs-kernel-server.service sudo exportfs -arv From 711b3b4d5a3d559399dc918fcd5889fc1b1bddde Mon Sep 17 00:00:00 2001 From: xixi Date: Tue, 14 Nov 2023 17:20:10 +0800 Subject: [PATCH 14/17] resume gluster test Signed-off-by: xixi --- pkg/object/filesystem_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/object/filesystem_test.go b/pkg/object/filesystem_test.go index fbf504667a7e..c0bebc98dc07 100644 --- a/pkg/object/filesystem_test.go +++ b/pkg/object/filesystem_test.go @@ -152,11 +152,11 @@ func testFileSystem(t *testing.T, s ObjectStorage) { if _, ok := ss.(*nfsStore); ok { expectedKeys = []string{"x/", "x/x.txt", "xy.txt", "xyz/", "xyz/xyz.txt"} } - // if mode == 0422 { - // if _, ok := ss.(*gluster); ok { - // expectedKeys = []string{"x/", "x/x.txt", "xy.txt", "xyz/", "xyz/xyz.txt"} - // } - // } + if mode == 0422 { + if _, ok := ss.(*gluster); ok { + expectedKeys = []string{"x/", "x/x.txt", "xy.txt", "xyz/", "xyz/xyz.txt"} + } + } if err = testKeysEqual(objs, expectedKeys); err != nil { t.Fatalf("testKeysEqual fail: %s mode %o", err, mode) } From a4b773295fbbb3582dc332651672e6385cc33866 Mon Sep 17 00:00:00 2001 From: xixi Date: Tue, 14 Nov 2023 17:32:37 +0800 Subject: [PATCH 15/17] remove unused functions Signed-off-by: xixi --- pkg/object/nfs.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index 77020f7e6719..cc7521365d38 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -286,10 +286,6 @@ func (n *nfsStore) readDirSorted(dir string, followLink bool) ([]*nfsEntry, erro return nfsEntries, err } -func IsPermissionDenied(err error) bool { - return errors.Is(err, nfs.NFS3Error(nfs.NFS3ErrAcces)) -} - func (n *nfsStore) List(prefix, marker, delimiter string, limit int64, followLink bool) ([]Object, error) { if delimiter != "/" { return nil, notSupported From a6df31d3a588c47b89f0a06de376e1b7d03f0386 Mon Sep 17 00:00:00 2001 From: xixi Date: Tue, 14 Nov 2023 17:33:35 +0800 Subject: [PATCH 16/17] remove some logs Signed-off-by: xixi --- pkg/object/nfs.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index cc7521365d38..fbdae774d6ab 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -446,7 +446,6 @@ func newNFSStore(addr, username, pass, token string) (ObjectStorage, error) { if err != nil { return nil, fmt.Errorf("unable to dial MOUNT service %s: %v", addr, err) } - logger.Printf("%s(%d, %d)", username, uint32(os.Getuid()), uint32(os.Getgid())) auth := rpc.NewAuthUnix(username, uint32(os.Getuid()), uint32(os.Getgid())) target, err := mount.Mount(path, auth.Auth()) if err != nil { From 09fc1ae1f78cca9c5a40cef235c3eef4de3e575e Mon Sep 17 00:00:00 2001 From: xixi Date: Wed, 15 Nov 2023 10:59:11 +0800 Subject: [PATCH 17/17] fix keys Signed-off-by: xixi --- pkg/object/filesystem_test.go | 6 ------ pkg/object/nfs.go | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/pkg/object/filesystem_test.go b/pkg/object/filesystem_test.go index c0bebc98dc07..3c2876461272 100644 --- a/pkg/object/filesystem_test.go +++ b/pkg/object/filesystem_test.go @@ -206,9 +206,6 @@ func testFileSystem(t *testing.T, s ObjectStorage) { t.Fatalf("listall failed: %s", err) } expectedKeys = []string{"", "a-", "a/", "a/p.txt", "a0", "b", "b-", "b0", "bb/", "bb/b1", "x/", "x/x.txt", "xy.txt", "xyz/", "xyz/ol1/", "xyz/ol1/p.txt", "xyz/xyz.txt"} - if _, ok := ss.(*nfsStore); ok { - expectedKeys[0] = "./" - } if err = testKeysEqual(objs, expectedKeys); err != nil { t.Fatalf("testKeysEqual fail: %s", err) } @@ -223,9 +220,6 @@ func testFileSystem(t *testing.T, s ObjectStorage) { if _, ok := s.(*hdfsclient); !ok { objs, err = listAll(s, "", "", 100, false) expectedKeys = []string{"", "a", "a-", "a0", "b", "b-", "b0", "bb/", "bb/b1", "x/", "x/x.txt", "xy.txt", "xyz/", "xyz/ol1/", "xyz/ol1/p.txt", "xyz/xyz.txt"} - if _, ok := ss.(*nfsStore); ok { - expectedKeys[0] = "./" - } if err = testKeysEqual(objs, expectedKeys); err != nil { t.Fatalf("testKeysEqual fail: %s", err) } diff --git a/pkg/object/nfs.go b/pkg/object/nfs.go index fbdae774d6ab..fc07f829fd8e 100644 --- a/pkg/object/nfs.go +++ b/pkg/object/nfs.go @@ -290,9 +290,9 @@ func (n *nfsStore) List(prefix, marker, delimiter string, limit int64, followLin if delimiter != "/" { return nil, notSupported } - dir := n.path(prefix) + dir := prefix var objs []Object - if !strings.HasSuffix(dir, dirSuffix) { + if dir != "" && !strings.HasSuffix(dir, dirSuffix) { dir = path.Dir(dir) if !strings.HasSuffix(dir, dirSuffix) { dir += dirSuffix