import re
import copy
import json
-import datetime
import time
from cwltool.process import shortname, UnsupportedRequirement
from schema_salad.sourceline import SourceLine
+import arvados_cwl.util
import ruamel.yaml as yaml
import arvados.collection
if vwd:
with Perf(metrics, "generatefiles.save_new %s" % self.name):
- info = self._get_intermediate_collection_info()
+ info = get_intermediate_collection_info(self.name, None, runtimeContext.intermediate_output_ttl)
vwd.save_new(name=info["name"],
+ owner_uuid=self.arvrunner.project_uuid,
ensure_unique_name=True,
trash_at=info["trash_at"],
properties=info["properties"])
finally:
self.output_callback(outputs, processStatus)
- def _get_intermediate_collection_info(self):
- trash_time = None
- if self.arvrunner.intermediate_output_ttl > 0:
- trash_time = datetime.datetime.now() + datetime.timedelta(seconds=self.arvrunner.intermediate_output_ttl)
-
- current_container_uuid = None
- try:
- current_container = self.arvrunner.api.containers().current().execute(num_retries=self.arvrunner.num_retries)
- current_container_uuid = current_container['uuid']
- except ApiError as e:
- # Status code 404 just means we're not running in a container.
- if e.resp.status != 404:
- logger.info("Getting current container: %s", e)
- props = {"type": "Intermediate",
- "container": current_container_uuid}
-
- return {"name" : "Intermediate collection",
- "trash_at" : trash_time,
- "properties" : props}
-
class RunnerJob(Runner):
"""Submit and manage a Crunch job that runs crunch_scripts/cwl-runner."""