mirror of
https://github.com/ansible/awx.git
synced 2024-11-02 09:51:09 +03:00
Fix up run task manager script to handle signals, fix up task cancel job, add restart handler for ubuntu
This commit is contained in:
parent
28c9d77f29
commit
f6ac7fb6d0
@ -188,7 +188,7 @@ def rebuild_graph(message):
|
|||||||
dep.status = 'waiting'
|
dep.status = 'waiting'
|
||||||
dep.save()
|
dep.save()
|
||||||
waiting_tasks.insert(waiting_tasks.index(task), dep)
|
waiting_tasks.insert(waiting_tasks.index(task), dep)
|
||||||
#if not hasattr(settings, 'CELERY_UNIT_TEST'):
|
if not hasattr(settings, 'UNIT_TEST_IGNORE_TASK_WAIT'):
|
||||||
task.status = 'waiting'
|
task.status = 'waiting'
|
||||||
task.save()
|
task.save()
|
||||||
|
|
||||||
@ -248,6 +248,13 @@ def process_graph(graph, task_capacity):
|
|||||||
|
|
||||||
def run_taskmanager(command_port):
|
def run_taskmanager(command_port):
|
||||||
''' Receive task start and finish signals to rebuild a dependency graph and manage the actual running of tasks '''
|
''' Receive task start and finish signals to rebuild a dependency graph and manage the actual running of tasks '''
|
||||||
|
def shutdown_handler():
|
||||||
|
def _handler(signum, frame):
|
||||||
|
signal.signal(signum, signal.SIG_DFL)
|
||||||
|
os.kill(os.getpid(), signum)
|
||||||
|
return _handler
|
||||||
|
signal.signal(signal.SIGINT, shutdown_handler())
|
||||||
|
signal.signal(signal.SIGTERM, shutdown_handler())
|
||||||
paused = False
|
paused = False
|
||||||
task_capacity = get_system_task_capacity()
|
task_capacity = get_system_task_capacity()
|
||||||
command_context = zmq.Context()
|
command_context = zmq.Context()
|
||||||
|
@ -646,10 +646,11 @@ class RunJobTest(BaseCeleryTest):
|
|||||||
self.assertFalse(job.cancel())
|
self.assertFalse(job.cancel())
|
||||||
self.assertEqual(job.cancel_flag, False)
|
self.assertEqual(job.cancel_flag, False)
|
||||||
self.assertFalse(job.passwords_needed_to_start)
|
self.assertFalse(job.passwords_needed_to_start)
|
||||||
self.build_args_callback = self._cancel_job_callback
|
job.cancel_flag = True
|
||||||
|
job.save()
|
||||||
self.assertTrue(job.signal_start())
|
self.assertTrue(job.signal_start())
|
||||||
job = Job.objects.get(pk=job.pk)
|
job = Job.objects.get(pk=job.pk)
|
||||||
self.check_job_result(job, 'canceled')
|
self.check_job_result(job, 'canceled', expect_stdout=False)
|
||||||
self.assertEqual(job.cancel_flag, True)
|
self.assertEqual(job.cancel_flag, True)
|
||||||
# Calling cancel afterwards just returns the cancel flag.
|
# Calling cancel afterwards just returns the cancel flag.
|
||||||
self.assertTrue(job.cancel())
|
self.assertTrue(job.cancel())
|
||||||
|
Loading…
Reference in New Issue
Block a user