Merge "Add LoggerAdapter for executor jobs" into feature/zuulv3
This commit is contained in:
commit
4b56de58a8
|
@ -410,14 +410,14 @@ class ExecutorServer(object):
|
||||||
|
|
||||||
self.job_workers = {}
|
self.job_workers = {}
|
||||||
|
|
||||||
def _getMerger(self, root):
|
def _getMerger(self, root, logger=None):
|
||||||
if root != self.merge_root:
|
if root != self.merge_root:
|
||||||
cache_root = self.merge_root
|
cache_root = self.merge_root
|
||||||
else:
|
else:
|
||||||
cache_root = None
|
cache_root = None
|
||||||
return zuul.merger.merger.Merger(root, self.connections,
|
return zuul.merger.merger.Merger(root, self.connections,
|
||||||
self.merge_email, self.merge_name,
|
self.merge_email, self.merge_name,
|
||||||
cache_root)
|
cache_root, logger)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self._running = True
|
self._running = True
|
||||||
|
@ -638,15 +638,22 @@ class ExecutorServer(object):
|
||||||
job.sendWorkComplete(json.dumps(result))
|
job.sendWorkComplete(json.dumps(result))
|
||||||
|
|
||||||
|
|
||||||
class AnsibleJob(object):
|
class AnsibleJobLogAdapter(logging.LoggerAdapter):
|
||||||
log = logging.getLogger("zuul.AnsibleJob")
|
def process(self, msg, kwargs):
|
||||||
|
msg, kwargs = super(AnsibleJobLogAdapter, self).process(msg, kwargs)
|
||||||
|
msg = '[build: %s] %s' % (kwargs['extra']['job'], msg)
|
||||||
|
return msg, kwargs
|
||||||
|
|
||||||
|
|
||||||
|
class AnsibleJob(object):
|
||||||
RESULT_NORMAL = 1
|
RESULT_NORMAL = 1
|
||||||
RESULT_TIMED_OUT = 2
|
RESULT_TIMED_OUT = 2
|
||||||
RESULT_UNREACHABLE = 3
|
RESULT_UNREACHABLE = 3
|
||||||
RESULT_ABORTED = 4
|
RESULT_ABORTED = 4
|
||||||
|
|
||||||
def __init__(self, executor_server, job):
|
def __init__(self, executor_server, job):
|
||||||
|
logger = logging.getLogger("zuul.AnsibleJob")
|
||||||
|
self.log = AnsibleJobLogAdapter(logger, {'job': job.unique})
|
||||||
self.executor_server = executor_server
|
self.executor_server = executor_server
|
||||||
self.job = job
|
self.job = job
|
||||||
self.jobdir = None
|
self.jobdir = None
|
||||||
|
@ -720,7 +727,8 @@ class AnsibleJob(object):
|
||||||
task.wait()
|
task.wait()
|
||||||
|
|
||||||
self.log.debug("Job %s: git updates complete" % (self.job.unique,))
|
self.log.debug("Job %s: git updates complete" % (self.job.unique,))
|
||||||
merger = self.executor_server._getMerger(self.jobdir.src_root)
|
merger = self.executor_server._getMerger(self.jobdir.src_root,
|
||||||
|
self.log)
|
||||||
repos = {}
|
repos = {}
|
||||||
for project in args['projects']:
|
for project in args['projects']:
|
||||||
self.log.debug("Cloning %s/%s" % (project['connection'],
|
self.log.debug("Cloning %s/%s" % (project['connection'],
|
||||||
|
@ -979,7 +987,8 @@ class AnsibleJob(object):
|
||||||
# the stack of changes we are testing, so check out the branch
|
# the stack of changes we are testing, so check out the branch
|
||||||
# tip into a dedicated space.
|
# tip into a dedicated space.
|
||||||
|
|
||||||
merger = self.executor_server._getMerger(jobdir_playbook.root)
|
merger = self.executor_server._getMerger(jobdir_playbook.root,
|
||||||
|
self.log)
|
||||||
merger.checkoutBranch(playbook['connection'], project.name,
|
merger.checkoutBranch(playbook['connection'], project.name,
|
||||||
playbook['branch'])
|
playbook['branch'])
|
||||||
|
|
||||||
|
@ -1063,7 +1072,8 @@ class AnsibleJob(object):
|
||||||
# in the dependency chain for the change (in which case,
|
# in the dependency chain for the change (in which case,
|
||||||
# there is no existing untrusted checkout of it). Check
|
# there is no existing untrusted checkout of it). Check
|
||||||
# out the branch tip into a dedicated space.
|
# out the branch tip into a dedicated space.
|
||||||
merger = self.executor_server._getMerger(trusted_root)
|
merger = self.executor_server._getMerger(trusted_root,
|
||||||
|
self.log)
|
||||||
merger.checkoutBranch(role['connection'], project.name,
|
merger.checkoutBranch(role['connection'], project.name,
|
||||||
'master')
|
'master')
|
||||||
orig_repo_path = os.path.join(trusted_root,
|
orig_repo_path = os.path.join(trusted_root,
|
||||||
|
|
|
@ -42,9 +42,12 @@ class ZuulReference(git.Reference):
|
||||||
|
|
||||||
|
|
||||||
class Repo(object):
|
class Repo(object):
|
||||||
log = logging.getLogger("zuul.Repo")
|
def __init__(self, remote, local, email, username,
|
||||||
|
cache_path=None, logger=None):
|
||||||
def __init__(self, remote, local, email, username, cache_path=None):
|
if logger is None:
|
||||||
|
self.log = logging.getLogger("zuul.Repo")
|
||||||
|
else:
|
||||||
|
self.log = logger
|
||||||
self.remote_url = remote
|
self.remote_url = remote
|
||||||
self.local_path = local
|
self.local_path = local
|
||||||
self.email = email
|
self.email = email
|
||||||
|
@ -261,10 +264,13 @@ class Repo(object):
|
||||||
|
|
||||||
|
|
||||||
class Merger(object):
|
class Merger(object):
|
||||||
log = logging.getLogger("zuul.Merger")
|
|
||||||
|
|
||||||
def __init__(self, working_root, connections, email, username,
|
def __init__(self, working_root, connections, email, username,
|
||||||
cache_root=None):
|
cache_root=None, logger=None):
|
||||||
|
self.logger = logger
|
||||||
|
if logger is None:
|
||||||
|
self.log = logging.getLogger("zuul.Merger")
|
||||||
|
else:
|
||||||
|
self.log = logger
|
||||||
self.repos = {}
|
self.repos = {}
|
||||||
self.working_root = working_root
|
self.working_root = working_root
|
||||||
if not os.path.exists(working_root):
|
if not os.path.exists(working_root):
|
||||||
|
@ -300,7 +306,8 @@ class Merger(object):
|
||||||
project_name)
|
project_name)
|
||||||
else:
|
else:
|
||||||
cache_path = None
|
cache_path = None
|
||||||
repo = Repo(url, path, self.email, self.username, cache_path)
|
repo = Repo(url, path, self.email, self.username, cache_path,
|
||||||
|
self.logger)
|
||||||
|
|
||||||
self.repos[key] = repo
|
self.repos[key] = repo
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
Loading…
Reference in New Issue