master: add filename in worker log entries. Closes #226

This commit is contained in:
Sebastien Bourdeauducq 2016-01-23 21:43:24 -05:00
parent cc6b808bf8
commit ae19f1c75d
3 changed files with 10 additions and 7 deletions

View File

@ -18,7 +18,7 @@ async def _get_repository_entries(entry_dict,
root, filename, get_device_db, log):
worker = Worker({
"get_device_db": get_device_db,
"log": partial(log, "scan")
"log": partial(log, "scan", os.path.basename(filename))
})
try:
description = await worker.examine(os.path.join(root, filename))
@ -124,7 +124,7 @@ class ExperimentDB:
filename = os.path.join(wd, filename)
worker = Worker({
"get_device_db": self.get_device_db_fn,
"log": partial(self.log_fn, "examine")
"log": partial(self.log_fn, "examine", os.path.basename(filename))
})
try:
description = await worker.examine(filename)

View File

@ -29,11 +29,11 @@ class LogBufferHandler(logging.Handler):
part)
def log_worker(rid, message):
def log_worker(rid, filename, message):
level, name, message = parse_log_message(message)
log_with_name(name, level, message,
extra={"source": "worker({})".format(rid)})
log_worker.worker_pass_rid = True
extra={"source": "worker({},{})".format(rid, filename)})
log_worker.worker_pass_runinfo = True
def log_args(parser):

View File

@ -1,4 +1,5 @@
import sys
import os
import asyncio
import logging
import subprocess
@ -45,6 +46,7 @@ class Worker:
self.send_timeout = send_timeout
self.rid = None
self.filename = None
self.process = None
self.watchdogs = dict() # wid -> expiration (using time.monotonic)
@ -191,8 +193,8 @@ class Worker:
func = self.register_experiment
else:
func = self.handlers[action]
if getattr(func, "worker_pass_rid", False):
func = partial(func, self.rid)
if getattr(func, "worker_pass_runinfo", False):
func = partial(func, self.rid, self.filename)
try:
data = func(*obj["args"], **obj["kwargs"])
reply = {"status": "ok", "data": data}
@ -227,6 +229,7 @@ class Worker:
async def build(self, rid, pipeline_name, wd, expid, priority, timeout=15.0):
self.rid = rid
self.filename = os.path.basename(expid["file"])
await self._create_process(expid["log_level"])
await self._worker_action(
{"action": "build",