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.
|
||||
"""
|
||||
log = get_annotated_logger(self.log, zuul_event_id)
|
||||
task = self.update(connection_name, project_name,
|
||||
zuul_event_id=zuul_event_id)
|
||||
task.wait()
|
||||
if not task.success:
|
||||
msg = "Update of '{}' failed".format(project_name)
|
||||
log.error(msg)
|
||||
raise Exception(msg)
|
||||
|
||||
def executeJob(self, job):
|
||||
args = json.loads(job.arguments)
|
||||
|
|
|
@ -765,6 +765,7 @@ class Merger(object):
|
|||
except Exception:
|
||||
log.exception("Unable to update %s/%s",
|
||||
connection_name, project_name)
|
||||
raise
|
||||
|
||||
def checkoutBranch(self, connection_name, project_name, branch,
|
||||
zuul_event_id=None):
|
||||
|
|
|
@ -129,12 +129,17 @@ class BaseMergeServer(metaclass=ABCMeta):
|
|||
self._update(connection_name, project_name)
|
||||
|
||||
lock = self.repo_locks.getRepoLock(connection_name, project_name)
|
||||
with lock:
|
||||
files = self.merger.getFiles(connection_name, project_name,
|
||||
args['branch'], args['files'],
|
||||
args.get('dirs'))
|
||||
result = dict(updated=True,
|
||||
files=files)
|
||||
try:
|
||||
self._update(connection_name, project_name)
|
||||
with lock:
|
||||
files = self.merger.getFiles(connection_name, project_name,
|
||||
args['branch'], args['files'],
|
||||
args.get('dirs'))
|
||||
except Exception:
|
||||
result = dict(update=False)
|
||||
else:
|
||||
result = dict(updated=True, files=files)
|
||||
|
||||
job.sendWorkComplete(json.dumps(result))
|
||||
|
||||
def merge(self, job):
|
||||
|
@ -184,12 +189,19 @@ class BaseMergeServer(metaclass=ABCMeta):
|
|||
zuul_event_id=zuul_event_id)
|
||||
|
||||
lock = self.repo_locks.getRepoLock(connection_name, project_name)
|
||||
with lock:
|
||||
files = self.merger.getFilesChanges(
|
||||
connection_name, project_name, args['branch'], args['tosha'],
|
||||
zuul_event_id=zuul_event_id)
|
||||
result = dict(updated=True,
|
||||
files=files)
|
||||
try:
|
||||
self._update(connection_name, project_name,
|
||||
zuul_event_id=zuul_event_id)
|
||||
with lock:
|
||||
files = self.merger.getFilesChanges(
|
||||
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
|
||||
job.sendWorkComplete(json.dumps(result))
|
||||
|
||||
|
|
Loading…
Reference in New Issue