mirror of
https://github.com/ansible/awx.git
synced 2026-03-19 01:47:31 -02:30
Merge pull request #7149 from AlanCoding/agressive_canceling
Cancel dependent project updates
This commit is contained in:
@@ -795,11 +795,14 @@ class BaseTask(Task):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.post_run_hook(instance, status, **kwargs)
|
||||||
|
except Exception:
|
||||||
|
logger.exception('Post run hook of unified job {} errored.'.format(instance.pk))
|
||||||
instance = self.update_model(pk)
|
instance = self.update_model(pk)
|
||||||
if instance.cancel_flag:
|
if instance.cancel_flag:
|
||||||
status = 'canceled'
|
status = 'canceled'
|
||||||
|
|
||||||
self.post_run_hook(instance, status, **kwargs)
|
|
||||||
instance = self.update_model(pk, status=status, result_traceback=tb,
|
instance = self.update_model(pk, status=status, result_traceback=tb,
|
||||||
output_replacements=output_replacements,
|
output_replacements=output_replacements,
|
||||||
**extra_update_fields)
|
**extra_update_fields)
|
||||||
@@ -1423,16 +1426,17 @@ class RunProjectUpdate(BaseTask):
|
|||||||
# A failed file update does not block other actions
|
# A failed file update does not block other actions
|
||||||
logger.error('Encountered error updating project dependent inventory: {}'.format(e))
|
logger.error('Encountered error updating project dependent inventory: {}'.format(e))
|
||||||
|
|
||||||
# Stop all dependent inventory updates if project update was canceled
|
# Stop rest of updates if project or inventory update was canceled
|
||||||
project_update.refresh_from_db()
|
project_update.refresh_from_db()
|
||||||
if project_update.cancel_flag:
|
|
||||||
break
|
|
||||||
# Don't update inventory scm_revision if update was canceled
|
|
||||||
local_inv_update.refresh_from_db()
|
local_inv_update.refresh_from_db()
|
||||||
if local_inv_update.cancel_flag:
|
if project_update.cancel_flag or local_inv_update.cancel_flag:
|
||||||
continue
|
if not project_update.cancel_flag:
|
||||||
inv_src.scm_last_revision = scm_revision
|
self.update_model(project_update.pk, cancel_flag=True, job_explanation=_(
|
||||||
inv_src.save(update_fields=['scm_last_revision'])
|
'Dependent inventory update {} was canceled.'.format(local_inv_update.name)))
|
||||||
|
break
|
||||||
|
if local_inv_update.status == 'successful':
|
||||||
|
inv_src.scm_last_revision = scm_revision
|
||||||
|
inv_src.save(update_fields=['scm_last_revision'])
|
||||||
|
|
||||||
def release_lock(self, instance):
|
def release_lock(self, instance):
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user