diff --git a/awx/main/conf.py b/awx/main/conf.py index d8e8b97206..ed15ea2ddb 100644 --- a/awx/main/conf.py +++ b/awx/main/conf.py @@ -408,6 +408,18 @@ register( unit=_('seconds'), ) +register( + 'DEFAULT_JOB_IDLE_TIMEOUT', + field_class=fields.IntegerField, + min_value=0, + default=600, + label=_('Default Job Idle Timeout'), + help_text=_('If no output is detected from ansible in this number of seconds the execution will be terminated.'), + category=_('Jobs'), + category_slug='jobs', + unit=_('seconds'), +) + register( 'DEFAULT_INVENTORY_UPDATE_TIMEOUT', field_class=fields.IntegerField, diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 77eef071ae..f61f2847e7 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -1365,6 +1365,7 @@ class BaseTask(object): 'envvars': env, 'settings': { 'job_timeout': self.get_instance_timeout(self.instance), + 'idle_timeout': settings.DEFAULT_JOB_IDLE_TIMEOUT, 'suppress_ansible_output': True, }, } diff --git a/awx/ui/src/screens/Setting/Jobs/JobsDetail/JobsDetail.test.js b/awx/ui/src/screens/Setting/Jobs/JobsDetail/JobsDetail.test.js index afcdc3c990..0c0b6e019a 100644 --- a/awx/ui/src/screens/Setting/Jobs/JobsDetail/JobsDetail.test.js +++ b/awx/ui/src/screens/Setting/Jobs/JobsDetail/JobsDetail.test.js @@ -64,6 +64,7 @@ describe('', () => { ); assertDetail(wrapper, 'Maximum Scheduled Jobs', '10'); assertDetail(wrapper, 'Default Job Timeout', '0 seconds'); + assertDetail(wrapper, 'Default Job Idle Timeout', '600 seconds'); assertDetail(wrapper, 'Default Inventory Update Timeout', '0 seconds'); assertDetail(wrapper, 'Default Project Update Timeout', '0 seconds'); assertDetail(wrapper, 'Per-Host Ansible Fact Cache Timeout', '0 seconds'); diff --git a/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js b/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js index 734b78597f..56b35341a9 100644 --- a/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js +++ b/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js @@ -137,6 +137,11 @@ function JobsEdit() { config={jobs.DEFAULT_JOB_TIMEOUT} type="number" /> +