Merge pull request #10906 from oweel/10829-idle_timeout_setting

Added idle_timeout setting to job settings
This commit is contained in:
Shane McDonald 2021-10-13 13:16:53 -04:00 committed by GitHub
commit 60a357eda1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 49 additions and 0 deletions

View File

@ -408,6 +408,21 @@ register(
unit=_('seconds'),
)
register(
'DEFAULT_JOB_IDLE_TIMEOUT',
field_class=fields.IntegerField,
min_value=0,
default=0,
label=_('Default Job Idle Timeout'),
help_text=_(
'If no output is detected from ansible in this number of seconds the execution will be terminated. '
'Use value of 0 to used default idle_timeout is 600s.'
),
category=_('Jobs'),
category_slug='jobs',
unit=_('seconds'),
)
register(
'DEFAULT_INVENTORY_UPDATE_TIMEOUT',
field_class=fields.IntegerField,

View File

@ -1487,6 +1487,10 @@ class BaseTask(object):
},
}
idle_timeout = getattr(settings, 'DEFAULT_JOB_IDLE_TIMEOUT', 0)
if idle_timeout > 0:
params['settings']['idle_timeout'] = idle_timeout
if isinstance(self.instance, AdHocCommand):
params['module'] = self.build_module_name(self.instance)
params['module_args'] = self.build_module_args(self.instance)

View File

@ -64,6 +64,7 @@ describe('<JobsDetail />', () => {
);
assertDetail(wrapper, 'Maximum Scheduled Jobs', '10');
assertDetail(wrapper, 'Default Job Timeout', '0 seconds');
assertDetail(wrapper, 'Default Job Idle Timeout', '0 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');

View File

@ -155,6 +155,11 @@ function JobsEdit() {
config={jobs.DEFAULT_JOB_TIMEOUT}
type="number"
/>
<InputField
name="DEFAULT_JOB_IDLE_TIMEOUT"
config={jobs.DEFAULT_JOB_IDLE_TIMEOUT}
type="number"
/>
<InputField
name="DEFAULT_INVENTORY_UPDATE_TIMEOUT"
config={jobs.DEFAULT_INVENTORY_UPDATE_TIMEOUT}

View File

@ -30,6 +30,7 @@
"AWX_TASK_ENV": {},
"DEFAULT_INVENTORY_UPDATE_TIMEOUT": 0,
"DEFAULT_JOB_TIMEOUT": 0,
"DEFAULT_JOB_IDLE_TIMEOUT": 0,
"DEFAULT_PROJECT_UPDATE_TIMEOUT": 0,
"GALAXY_IGNORE_CERTS": false,
"MAX_FORKS": 200,

View File

@ -340,6 +340,17 @@
"unit": "seconds",
"default": 0
},
"DEFAULT_JOB_IDLE_TIMEOUT": {
"type": "integer",
"required": false,
"label": "Default Job Idle Timeout",
"help_text": "If no output is detected from ansible in this number of seconds the execution will be terminated. Use value of 0 to used default idle_timeout is 600s.",
"min_value": 0,
"category": "Jobs",
"category_slug": "jobs",
"unit": "seconds",
"default": 0
},
"DEFAULT_INVENTORY_UPDATE_TIMEOUT": {
"type": "integer",
"required": false,
@ -3987,6 +3998,16 @@
"defined_in_file": false,
"unit": "seconds"
},
"DEFAULT_JOB_IDLE_TIMEOUT": {
"type": "integer",
"label": "Default Job Idle Timeout",
"help_text": "If no output is detected from ansible in this number of seconds the execution will be terminated. Use value of 0 to used default idle_timeout is 600s.",
"min_value": 0,
"category": "Jobs",
"category_slug": "jobs",
"defined_in_file": false,
"unit": "seconds"
},
"DEFAULT_INVENTORY_UPDATE_TIMEOUT": {
"type": "integer",
"label": "Default Inventory Update Timeout",

View File

@ -49,6 +49,7 @@
"SCHEDULE_MAX_JOBS":10,
"AWX_ANSIBLE_CALLBACK_PLUGINS":[],
"DEFAULT_JOB_TIMEOUT":0,
"DEFAULT_JOB_IDLE_TIMEOUT":0,
"DEFAULT_INVENTORY_UPDATE_TIMEOUT":0,
"DEFAULT_PROJECT_UPDATE_TIMEOUT":0,
"ANSIBLE_FACT_CACHE_TIMEOUT":0,

View File

@ -17,6 +17,7 @@
"SCHEDULE_MAX_JOBS": 10,
"AWX_ANSIBLE_CALLBACK_PLUGINS": [],
"DEFAULT_JOB_TIMEOUT": 0,
"DEFAULT_JOB_IDLE_TIMEOUT": 0,
"DEFAULT_INVENTORY_UPDATE_TIMEOUT": 0,
"DEFAULT_PROJECT_UPDATE_TIMEOUT": 0,
"ANSIBLE_FACT_CACHE_TIMEOUT": 0,