arv_docker_get_image should not modify dockerRequirement parameter. refs #10812
[arvados.git] / sdk / cwl / arvados_cwl / arvdocker.py
index 88c5dd2d4f428e946602c4eaeb5c59c1e4e4a2e6..f83add9379c176d5cb9ad472c0778c68174058b5 100644 (file)
@@ -1,6 +1,7 @@
 import logging
 import sys
 import threading
+import copy
 
 from schema_salad.sourceline import SourceLine
 
@@ -17,6 +18,7 @@ def arv_docker_get_image(api_client, dockerRequirement, pull_image, project_uuid
     """Check if a Docker image is available in Keep, if not, upload it using arv-keepdocker."""
 
     if "dockerImageId" not in dockerRequirement and "dockerPull" in dockerRequirement:
+        dockerRequirement = copy.deepcopy(dockerRequirement)
         dockerRequirement["dockerImageId"] = dockerRequirement["dockerPull"]
         if hasattr(dockerRequirement, 'lc'):
             dockerRequirement.lc.data["dockerImageId"] = dockerRequirement.lc.data["dockerPull"]