19368: Skip regenerating manifest during webdav/s3 logging.
authorTom Clegg <tom@curii.com>
Tue, 9 Aug 2022 15:18:05 +0000 (11:18 -0400)
committerTom Clegg <tom@curii.com>
Tue, 9 Aug 2022 15:18:05 +0000 (11:18 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

sdk/go/arvados/fs_collection.go
services/keep-web/handler.go

index 26012e240603d0be43a1019346c4e946e2821790..eb3e974ede506aa33997addb72859d78839eb006 100644 (file)
@@ -954,6 +954,17 @@ func (dn *dirnode) Child(name string, replace func(inode) (inode, error)) (inode
                gn.SetParent(dn, name)
                return gn, nil
        }
+       if dn == dn.fs.rootnode() && name == ".arvados#collection_id" {
+               gn := &getternode{Getter: func() ([]byte, error) {
+                       data, err := json.Marshal(Collection{UUID: dn.fs.uuid})
+                       if err == nil {
+                               data = append(data, '\n')
+                       }
+                       return data, err
+               }}
+               gn.SetParent(dn, name)
+               return gn, nil
+       }
        return dn.treenode.Child(name, replace)
 }
 
index 1f1f509860bb9950d95e5d9c566e9e57f9d4df36..a6187043bdb60eb45a40cb8d602a3aee98c17fe0 100644 (file)
@@ -962,7 +962,7 @@ func (h *handler) determineCollection(fs arvados.CustomFileSystem, path string)
        var i int
        for i = 0; i < len(segments); i++ {
                dir := append([]string{}, segments[0:i]...)
-               dir = append(dir, ".arvados#collection")
+               dir = append(dir, ".arvados#collection_id")
                f, err := fs.OpenFile(strings.Join(dir, "/"), os.O_RDONLY, 0)
                if f != nil {
                        defer f.Close()