Skip to content

Commit d69f5c2

Browse files
committed
first attempt at saving log for provenance
1 parent 50d86c5 commit d69f5c2

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

cwltool/executors.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,10 @@ def execute(self,
9898

9999
if runtime_context.rm_tmpdir:
100100
if runtime_context.cachedir is None:
101-
output_dirs = self.output_dirs # type: Iterable[Any]
101+
output_dirs = self.output_dirs # type: Iterable[Any]
102102
else:
103-
output_dirs = filter(lambda x: not x.startswith(runtime_context.cachedir), self.output_dirs)
103+
output_dirs = filter(lambda x: not x.startswith(
104+
runtime_context.cachedir), self.output_dirs)
104105
cleanIntermediate(output_dirs)
105106

106107
if self.final_output and self.final_status:

cwltool/job.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ def _execute(self,
344344

345345
if self.generatemapper and runtimeContext.secret_store:
346346
# Delete any runtime-generated files containing secrets.
347-
for f, p in self.generatemapper.items():
347+
for _, p in self.generatemapper.items():
348348
if p.type == "CreateFile":
349349
if runtimeContext.secret_store.has_secret(p.resolved):
350350
host_outdir = self.outdir
@@ -509,7 +509,7 @@ def _job_popen(
509509
job_script_contents=None, # type: Text
510510
timelimit=None, # type: int
511511
name=None # type: Text
512-
): # type: (...) -> int
512+
): # type: (...) -> int
513513

514514
if not job_script_contents and not FORCE_SHELLED_POPEN:
515515

cwltool/main.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ def main(argsl=None, # type: List[str]
465465
_logger.addHandler(stderr_handler)
466466
# pre-declared for finally block
467467
workflowobj = None
468+
prov_handler = None # type: Optional[logger.FileHandler]
468469
try:
469470
if args is None:
470471
if argsl is None:
@@ -493,6 +494,14 @@ def main(argsl=None, # type: List[str]
493494
rdflib_logger = logging.getLogger("rdflib.term")
494495
rdflib_logger.addHandler(stderr_handler)
495496
rdflib_logger.setLevel(logging.ERROR)
497+
if args.provenance:
498+
try:
499+
os.makedirs(args.provenance)
500+
except os.error:
501+
pass
502+
prov_handler = logging.FileHandler(
503+
os.path.join(args.provenance, "log"))
504+
_logger.addHandler(prov_handler)
496505
if args.quiet:
497506
_logger.setLevel(logging.WARN)
498507
if runtimeContext.debug:
@@ -502,6 +511,8 @@ def main(argsl=None, # type: List[str]
502511
formatter = logging.Formatter("[%(asctime)s] %(message)s",
503512
"%Y-%m-%d %H:%M:%S")
504513
stderr_handler.setFormatter(formatter)
514+
if prov_handler:
515+
prov_handler.setFormatter(formatter)
505516

506517
if args.version:
507518
print(versionfunc())
@@ -774,6 +785,9 @@ def loc_to_path(obj):
774785
runtimeContext.research_obj.close(args.provenance)
775786

776787
_logger.removeHandler(stderr_handler)
788+
if prov_handler:
789+
prov_handler.close()
790+
_logger.removeHandler(prov_handler)
777791
_logger.addHandler(defaultStreamHandler)
778792

779793

0 commit comments

Comments
 (0)