13111: Tidy up, add comments.
authorTom Clegg <tclegg@veritasgenetics.com>
Thu, 21 Dec 2017 03:01:31 +0000 (22:01 -0500)
committerTom Clegg <tclegg@veritasgenetics.com>
Wed, 3 Jan 2018 05:24:19 +0000 (00:24 -0500)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

sdk/go/arvados/fs_backend.go [new file with mode: 0644]
sdk/go/arvados/fs_collection.go
sdk/go/arvados/fs_site.go

diff --git a/sdk/go/arvados/fs_backend.go b/sdk/go/arvados/fs_backend.go
new file mode 100644 (file)
index 0000000..301f0b4
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package arvados
+
+import "io"
+
+type fsBackend interface {
+       keepClient
+       apiClient
+}
+
+// Ideally *Client would do everything; meanwhile keepBackend
+// implements fsBackend by merging the two kinds of arvados client.
+type keepBackend struct {
+       keepClient
+       apiClient
+}
+
+type keepClient interface {
+       ReadAt(locator string, p []byte, off int) (int, error)
+       PutB(p []byte) (string, int, error)
+}
+
+type apiClient interface {
+       RequestAndDecode(dst interface{}, method, path string, body io.Reader, params interface{}) error
+       UpdateBody(rsc resource) io.Reader
+}
index a64ce8c7a0a0a24a6dafe4e75108f105a048c779..af0068f99392b0b3107e4bdb5f2d8044053fa020 100644 (file)
@@ -21,28 +21,6 @@ import (
 
 var maxBlockSize = 1 << 26
 
-type fsBackend interface {
-       keepClient
-       apiClient
-}
-
-// Ideally *Client would do everything; meanwhile keepBackend
-// implements fsBackend by merging the two kinds of arvados client.
-type keepBackend struct {
-       keepClient
-       apiClient
-}
-
-type keepClient interface {
-       ReadAt(locator string, p []byte, off int) (int, error)
-       PutB(p []byte) (string, int, error)
-}
-
-type apiClient interface {
-       RequestAndDecode(dst interface{}, method, path string, body io.Reader, params interface{}) error
-       UpdateBody(rsc resource) io.Reader
-}
-
 // A CollectionFileSystem is a FileSystem that can be serialized as a
 // manifest and stored as a collection.
 type CollectionFileSystem interface {
@@ -55,6 +33,11 @@ type CollectionFileSystem interface {
        MarshalManifest(prefix string) (string, error)
 }
 
+type collectionFileSystem struct {
+       fileSystem
+       uuid string
+}
+
 // FileSystem returns a CollectionFileSystem for the collection.
 func (c *Collection) FileSystem(client apiClient, kc keepClient) (CollectionFileSystem, error) {
        var modTime time.Time
@@ -88,11 +71,6 @@ func (c *Collection) FileSystem(client apiClient, kc keepClient) (CollectionFile
        return fs, nil
 }
 
-type collectionFileSystem struct {
-       fileSystem
-       uuid string
-}
-
 func (fs *collectionFileSystem) newNode(name string, perm os.FileMode, modTime time.Time) (node inode, err error) {
        if name == "" || name == "." || name == ".." {
                return nil, ErrInvalidArgument
@@ -142,27 +120,6 @@ func (fs *collectionFileSystem) Sync() error {
        return err
 }
 
-func (dn *dirnode) Child(name string, replace func(inode) inode) inode {
-       if dn == dn.fs.rootnode() && name == ".arvados#collection" {
-               gn := &getternode{Getter: func() ([]byte, error) {
-                       var coll Collection
-                       var err error
-                       coll.ManifestText, err = dn.fs.MarshalManifest(".")
-                       if err != nil {
-                               return nil, err
-                       }
-                       data, err := json.Marshal(&coll)
-                       if err == nil {
-                               data = append(data, 10)
-                       }
-                       return data, err
-               }}
-               gn.SetParent(dn)
-               return gn
-       }
-       return dn.treenode.Child(name, replace)
-}
-
 func (fs *collectionFileSystem) MarshalManifest(prefix string) (string, error) {
        fs.fileSystem.root.Lock()
        defer fs.fileSystem.root.Unlock()
@@ -550,6 +507,27 @@ func (dn *dirnode) FS() FileSystem {
        return dn.fs
 }
 
+func (dn *dirnode) Child(name string, replace func(inode) inode) inode {
+       if dn == dn.fs.rootnode() && name == ".arvados#collection" {
+               gn := &getternode{Getter: func() ([]byte, error) {
+                       var coll Collection
+                       var err error
+                       coll.ManifestText, err = dn.fs.MarshalManifest(".")
+                       if err != nil {
+                               return nil, err
+                       }
+                       data, err := json.Marshal(&coll)
+                       if err == nil {
+                               data = append(data, 10)
+                       }
+                       return data, err
+               }}
+               gn.SetParent(dn)
+               return gn
+       }
+       return dn.treenode.Child(name, replace)
+}
+
 // sync flushes in-memory data (for all files in the tree rooted at
 // dn) to persistent storage. Caller must hold dn.Lock().
 func (dn *dirnode) sync() error {
index fd842f0968717b362cd38b9d5f50e0fd0062c7ca..974dad8c4929ed2b5466f632b291de2f83b168b5 100644 (file)
@@ -56,11 +56,7 @@ func (c *Client) SiteFileSystem(kc keepClient) FileSystem {
        return fs
 }
 
-func (fs *siteFileSystem) newDirnode(parent inode, name string, perm os.FileMode, modTime time.Time) (node inode, err error) {
-       return nil, ErrInvalidOperation
-}
-
-func (fs *siteFileSystem) newFilenode(parent inode, name string, perm os.FileMode, modTime time.Time) (node inode, err error) {
+func (fs *siteFileSystem) newNode(name string, perm os.FileMode, modTime time.Time) (node inode, err error) {
        return nil, ErrInvalidOperation
 }