mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 18:09:57 -03:30
Fix bug by using cancel_flag.
This commit is contained in:
parent
3778914aa9
commit
3c0d60075c
@ -72,6 +72,7 @@ from awx.api.serializers import * # noqa
|
||||
from awx.api.metadata import RoleMetadata
|
||||
from awx.main.consumers import emit_channel_notification
|
||||
from awx.main.models.unified_jobs import ACTIVE_STATES
|
||||
#from awx.main.scheduler.tasks import run_job_complete
|
||||
|
||||
logger = logging.getLogger('awx.api.views')
|
||||
|
||||
@ -2873,6 +2874,8 @@ class WorkflowJobCancel(RetrieveAPIView):
|
||||
obj = self.get_object()
|
||||
if obj.can_cancel:
|
||||
obj.cancel()
|
||||
#TODO: Figure out whether an immediate schedule is needed.
|
||||
#run_job_complete.delay(obj.id)
|
||||
return Response(status=status.HTTP_202_ACCEPTED)
|
||||
else:
|
||||
return self.http_method_not_allowed(request, *args, **kwargs)
|
||||
|
||||
@ -423,8 +423,3 @@ class WorkflowJob(UnifiedJob, WorkflowJobOptions, JobNotificationMixin, Workflow
|
||||
'''
|
||||
def start_celery_task(self, opts, error_callback, success_callback):
|
||||
return None
|
||||
|
||||
def cancel(self):
|
||||
if self.can_cancel:
|
||||
self.status = 'canceled'
|
||||
self.save(update_fields=['status'])
|
||||
|
||||
@ -130,8 +130,11 @@ class TaskManager():
|
||||
def process_finished_workflow_jobs(self, workflow_jobs):
|
||||
for workflow_job in workflow_jobs:
|
||||
dag = WorkflowDAG(workflow_job)
|
||||
if workflow_job.status == 'canceled':
|
||||
if workflow_job.cancel_flag:
|
||||
workflow_job.status = 'canceled'
|
||||
workflow_job.save()
|
||||
dag.bfs_nodes_to_cancel()
|
||||
connection.on_commit(lambda: workflow_job.websocket_emit_status(workflow_job.status))
|
||||
elif dag.is_workflow_done():
|
||||
if workflow_job._has_failed():
|
||||
workflow_job.status = 'failed'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user