Merge branch '20825-cwl-separate-runner' refs #20825
authorPeter Amstutz <peter.amstutz@curii.com>
Thu, 19 Oct 2023 18:44:52 +0000 (14:44 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Thu, 19 Oct 2023 18:44:52 +0000 (14:44 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

1  2 
sdk/cwl/arvados_cwl/arvcontainer.py
sdk/cwl/arvados_cwl/arvworkflow.py
sdk/cwl/arvados_cwl/context.py
sdk/cwl/arvados_cwl/executor.py
sdk/cwl/arvados_cwl/runner.py

Simple merge
index 3ad2c6419a2b9ce39c11b6471e3dac6555c317ef,6b6634bcc9f5f6a3b684a83c6ab3cfb7bca17772..c592b83dc7739b142fb51ffff25a630a5494f5fc
@@@ -602,31 -594,12 +603,22 @@@ class ArvadosWorkflow(Workflow)
          self.dynamic_resource_req = []
          self.static_resource_req = []
          self.wf_reffiles = []
 -        self.loadingContext = loadingContext
 -        super(ArvadosWorkflow, self).__init__(toolpath_object, loadingContext)
 +        self.loadingContext = loadingContext.copy()
 +
 +        self.requirements = copy.deepcopy(getdefault(loadingContext.requirements, []))
 +        tool_requirements = toolpath_object.get("requirements", [])
 +        self.hints = copy.deepcopy(getdefault(loadingContext.hints, []))
 +        tool_hints = toolpath_object.get("hints", [])
 +
 +        workflow_runner_req, _ = self.get_requirement("http://arvados.org/cwl#WorkflowRunnerResources")
 +        if workflow_runner_req and workflow_runner_req.get("acrContainerImage"):
 +            self.loadingContext.default_docker_image = workflow_runner_req.get("acrContainerImage")
 +
 +        super(ArvadosWorkflow, self).__init__(toolpath_object, self.loadingContext)
          self.cluster_target_req, _ = self.get_requirement("http://arvados.org/cwl#ClusterTarget")
  
-     def job(self, joborder, output_callback, runtimeContext):
-         builder = make_builder(joborder, self.hints, self.requirements, runtimeContext, self.metadata)
-         runtimeContext = set_cluster_target(self.tool, self.arvrunner, builder, runtimeContext)
-         req, _ = self.get_requirement("http://arvados.org/cwl#RunInSingleContainer")
-         if not req:
-             return super(ArvadosWorkflow, self).job(joborder, output_callback, runtimeContext)
-         # RunInSingleContainer is true
  
+     def runInSingleContainer(self, joborder, output_callback, runtimeContext, builder):
          with SourceLine(self.tool, None, WorkflowException, logger.isEnabledFor(logging.DEBUG)):
              if "id" not in self.tool:
                  raise WorkflowException("%s object must have 'id'" % (self.tool["class"]))
index dd64879b9f56db934c350a8b07d408b2b232189f,86812a419a07c3cbe3088478f9d15ce02d5c0b4a..0439cb5b15cb64d1c449e39114358d564dc21b86
@@@ -44,7 -43,7 +44,8 @@@ class ArvRuntimeContext(RuntimeContext)
          self.varying_url_params = ""
          self.prefer_cached_downloads = False
          self.cached_docker_lookups = {}
 +        self.print_keep_deps = False
+         self.git_info = {}
  
          super(ArvRuntimeContext, self).__init__(kwargs)
  
Simple merge
Simple merge