Merge "Correctly fail cat/fileschanges when update fails"
This commit is contained in:
commit
4dcff4d79e
|
@ -2962,9 +2962,14 @@ class ExecutorServer(BaseMergeServer):
|
||||||
"""
|
"""
|
||||||
The executor overrides _update so it can do the update asynchronously.
|
The executor overrides _update so it can do the update asynchronously.
|
||||||
"""
|
"""
|
||||||
|
log = get_annotated_logger(self.log, zuul_event_id)
|
||||||
task = self.update(connection_name, project_name,
|
task = self.update(connection_name, project_name,
|
||||||
zuul_event_id=zuul_event_id)
|
zuul_event_id=zuul_event_id)
|
||||||
task.wait()
|
task.wait()
|
||||||
|
if not task.success:
|
||||||
|
msg = "Update of '{}' failed".format(project_name)
|
||||||
|
log.error(msg)
|
||||||
|
raise Exception(msg)
|
||||||
|
|
||||||
def executeJob(self, job):
|
def executeJob(self, job):
|
||||||
args = json.loads(job.arguments)
|
args = json.loads(job.arguments)
|
||||||
|
|
|
@ -765,6 +765,7 @@ class Merger(object):
|
||||||
except Exception:
|
except Exception:
|
||||||
log.exception("Unable to update %s/%s",
|
log.exception("Unable to update %s/%s",
|
||||||
connection_name, project_name)
|
connection_name, project_name)
|
||||||
|
raise
|
||||||
|
|
||||||
def checkoutBranch(self, connection_name, project_name, branch,
|
def checkoutBranch(self, connection_name, project_name, branch,
|
||||||
zuul_event_id=None):
|
zuul_event_id=None):
|
||||||
|
|
|
@ -129,12 +129,17 @@ class BaseMergeServer(metaclass=ABCMeta):
|
||||||
self._update(connection_name, project_name)
|
self._update(connection_name, project_name)
|
||||||
|
|
||||||
lock = self.repo_locks.getRepoLock(connection_name, project_name)
|
lock = self.repo_locks.getRepoLock(connection_name, project_name)
|
||||||
with lock:
|
try:
|
||||||
files = self.merger.getFiles(connection_name, project_name,
|
self._update(connection_name, project_name)
|
||||||
args['branch'], args['files'],
|
with lock:
|
||||||
args.get('dirs'))
|
files = self.merger.getFiles(connection_name, project_name,
|
||||||
result = dict(updated=True,
|
args['branch'], args['files'],
|
||||||
files=files)
|
args.get('dirs'))
|
||||||
|
except Exception:
|
||||||
|
result = dict(update=False)
|
||||||
|
else:
|
||||||
|
result = dict(updated=True, files=files)
|
||||||
|
|
||||||
job.sendWorkComplete(json.dumps(result))
|
job.sendWorkComplete(json.dumps(result))
|
||||||
|
|
||||||
def merge(self, job):
|
def merge(self, job):
|
||||||
|
@ -184,12 +189,19 @@ class BaseMergeServer(metaclass=ABCMeta):
|
||||||
zuul_event_id=zuul_event_id)
|
zuul_event_id=zuul_event_id)
|
||||||
|
|
||||||
lock = self.repo_locks.getRepoLock(connection_name, project_name)
|
lock = self.repo_locks.getRepoLock(connection_name, project_name)
|
||||||
with lock:
|
try:
|
||||||
files = self.merger.getFilesChanges(
|
self._update(connection_name, project_name,
|
||||||
connection_name, project_name, args['branch'], args['tosha'],
|
zuul_event_id=zuul_event_id)
|
||||||
zuul_event_id=zuul_event_id)
|
with lock:
|
||||||
result = dict(updated=True,
|
files = self.merger.getFilesChanges(
|
||||||
files=files)
|
connection_name, project_name,
|
||||||
|
args['branch'], args['tosha'],
|
||||||
|
zuul_event_id=zuul_event_id)
|
||||||
|
except Exception:
|
||||||
|
result = dict(update=False)
|
||||||
|
else:
|
||||||
|
result = dict(updated=True, files=files)
|
||||||
|
|
||||||
result['zuul_event_id'] = zuul_event_id
|
result['zuul_event_id'] = zuul_event_id
|
||||||
job.sendWorkComplete(json.dumps(result))
|
job.sendWorkComplete(json.dumps(result))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue