[ARVADOS] updated: 1.2.0-308-g06e59dc49

Git user git at public.curoverse.com
Tue Nov 6 13:57:59 EST 2018


Summary of changes:
 sdk/go/arvados/fs_collection_test.go | 19 +++++++++++++++++++
 services/keep-web/cadaver_test.go    | 10 ++++++++++
 services/keep-web/webdav.go          |  5 +++++
 3 files changed, 34 insertions(+)

       via  06e59dc49d1aba92842773fe77cce0da7f03c954 (commit)
      from  68269e98cad46ebf8adcf2d55fbbd45eba582b86 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 06e59dc49d1aba92842773fe77cce0da7f03c954
Author: Tom Clegg <tclegg at veritasgenetics.com>
Date:   Tue Nov 6 13:57:14 2018 -0500

    14345: Handle "MOVE foo/ bar/" requests.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg at veritasgenetics.com>

diff --git a/sdk/go/arvados/fs_collection_test.go b/sdk/go/arvados/fs_collection_test.go
index 3b2e90c2f..0212f7604 100644
--- a/sdk/go/arvados/fs_collection_test.go
+++ b/sdk/go/arvados/fs_collection_test.go
@@ -641,6 +641,25 @@ func (s *CollectionFSSuite) TestRenameError(c *check.C) {
 	c.Check(data, check.DeepEquals, []byte{1, 2, 3, 4, 5})
 }
 
+func (s *CollectionFSSuite) TestRenameDirectory(c *check.C) {
+	fs, err := (&Collection{}).FileSystem(s.client, s.kc)
+	c.Assert(err, check.IsNil)
+	err = fs.Mkdir("foo", 0755)
+	c.Assert(err, check.IsNil)
+	err = fs.Mkdir("bar", 0755)
+	c.Assert(err, check.IsNil)
+	err = fs.Rename("bar", "baz")
+	c.Check(err, check.IsNil)
+	err = fs.Rename("foo", "baz")
+	c.Check(err, check.NotNil)
+	err = fs.Rename("foo", "baz/")
+	c.Check(err, check.IsNil)
+	err = fs.Rename("baz/foo", ".")
+	c.Check(err, check.Equals, ErrInvalidArgument)
+	err = fs.Rename("baz/foo/", ".")
+	c.Check(err, check.Equals, ErrInvalidArgument)
+}
+
 func (s *CollectionFSSuite) TestRename(c *check.C) {
 	fs, err := (&Collection{}).FileSystem(s.client, s.kc)
 	c.Assert(err, check.IsNil)
diff --git a/services/keep-web/cadaver_test.go b/services/keep-web/cadaver_test.go
index b89890956..44d0b0ffe 100644
--- a/services/keep-web/cadaver_test.go
+++ b/services/keep-web/cadaver_test.go
@@ -172,6 +172,16 @@ func (s *IntegrationSuite) testCadaver(c *check.C, password string, pathFunc fun
 		},
 		{
 			path:  writePath,
+			cmd:   "move newdir1/ newdir1x/\n",
+			match: `(?ms).*Moving .* succeeded.*`,
+		},
+		{
+			path:  writePath,
+			cmd:   "move newdir1x newdir1\n",
+			match: `(?ms).*Moving .* succeeded.*`,
+		},
+		{
+			path:  writePath,
 			cmd:   "move newdir0/testfile newdir1/\n",
 			match: `(?ms).*Moving .* succeeded.*`,
 		},
diff --git a/services/keep-web/webdav.go b/services/keep-web/webdav.go
index 5b23c9c5f..f9b753869 100644
--- a/services/keep-web/webdav.go
+++ b/services/keep-web/webdav.go
@@ -100,6 +100,11 @@ func (fs *webdavFS) Rename(ctx context.Context, oldName, newName string) error {
 	if !fs.writing {
 		return errReadOnly
 	}
+	if strings.HasSuffix(oldName, "/") {
+		// WebDAV "MOVE foo/ bar/" means rename foo to bar.
+		oldName = oldName[:len(oldName)-1]
+		newName = strings.TrimSuffix(newName, "/")
+	}
 	fs.makeparents(newName)
 	return fs.collfs.Rename(oldName, newName)
 }

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list