13931: Support for getting file sizes of files in Keep
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 6 Aug 2018 18:14:04 +0000 (14:14 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 6 Aug 2018 18:14:04 +0000 (14:14 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

sdk/cwl/arvados_cwl/fsaccess.py

index 15689a9010934cf2b8847ec08825cf30bd3e13eb..9a893df781f477dadac19264fb49cfa77b459bb7 100644 (file)
@@ -139,6 +139,17 @@ class CollectionFsAccess(cwltool.stdfsaccess.StdFsAccess):
         else:
             return super(CollectionFsAccess, self).exists(fn)
 
+    def size(self, fn):  # type: (unicode) -> bool
+        collection, rest = self.get_collection(fn)
+        if collection is not None:
+            if rest:
+                arvfile = collection.find(rest)
+                if isinstance(arvfile, arvados.arvfile.ArvadosFile):
+                    return arvfile.size()
+            raise IOError(errno.EINVAL, "Not a path to a file %s" % (fn))
+        else:
+            return super(CollectionFsAccess, self).size(fn)
+
     def isfile(self, fn):  # type: (unicode) -> bool
         collection, rest = self.get_collection(fn)
         if collection is not None: