Merge branch '11349-nodemanager-status-api'
[arvados.git] / sdk / cwl / arvados_cwl / arvcontainer.py
index 20601243b1dee9272bc4cafa2326df0790bc6f53..28107b491ca45f760813c03cefa63bb9c693b331 100644 (file)
@@ -1,6 +1,7 @@
 import logging
 import json
 import os
+import urllib
 
 import ruamel.yaml as yaml
 
@@ -63,14 +64,21 @@ class ArvadosContainer(object):
 
         for f in self.pathmapper.files():
             res, p, tp = self.pathmapper.mapper(f)
-            pdh, path = res[5:].split("/", 1)
+            if res.startswith("keep:"):
+                res = res[5:]
+            elif res.startswith("/keep/"):
+                res = res[6:]
+            else:
+                continue
+            sp = res.split("/", 1)
+            pdh = sp[0]
             if pdh not in dirs:
                 mounts[p] = {
                     "kind": "collection",
                     "portable_data_hash": pdh
                 }
-                if path:
-                    mounts[p]["path"] = path
+                if len(sp) == 2:
+                    mounts[p]["path"] = urllib.unquote(sp[1])
 
         with Perf(metrics, "generatefiles %s" % self.name):
             if self.generatefiles["listing"]: