diff --git a/awx/main/conf.py b/awx/main/conf.py index c51205eaa7..2361a54e3e 100644 --- a/awx/main/conf.py +++ b/awx/main/conf.py @@ -134,6 +134,7 @@ register( register( 'AWX_PROOT_HIDE_PATHS', field_class=fields.StringListField, + required=False, label=_('Paths to hide from isolated jobs'), help_text=_('Additional paths to hide from isolated processes.'), category=_('Jobs'), @@ -143,6 +144,7 @@ register( register( 'AWX_PROOT_SHOW_PATHS', field_class=fields.StringListField, + required=False, label=_('Paths to expose to isolated jobs'), help_text=_('Whitelist of paths that would otherwise be hidden to expose to isolated jobs.'), category=_('Jobs'), @@ -182,6 +184,7 @@ register( register( 'AWX_ANSIBLE_CALLBACK_PLUGINS', field_class=fields.StringListField, + required=False, label=_('Ansible Callback Plugins'), help_text=_('List of paths to search for extra callback plugins to be used when running jobs.'), category=_('Jobs'), diff --git a/awx/main/tests/functional/api/test_settings.py b/awx/main/tests/functional/api/test_settings.py index 94aa316aea..a3fd24b22b 100644 --- a/awx/main/tests/functional/api/test_settings.py +++ b/awx/main/tests/functional/api/test_settings.py @@ -44,6 +44,27 @@ def test_license_cannot_be_removed_via_system_settings(mock_no_license_file, get assert response.data['LICENSE'] +@pytest.mark.django_db +def test_jobs_settings(get, put, patch, delete, admin): + url = reverse('api:setting_singleton_detail', args=('jobs',)) + get(url, user=admin, expect=200) + delete(url, user=admin, expect=204) + response = get(url, user=admin, expect=200) + data = dict(response.data.items()) + put(url, user=admin, data=data, expect=200) + patch(url, user=admin, data={'AWX_PROOT_HIDE_PATHS': ['/home']}, expect=200) + response = get(url, user=admin, expect=200) + assert response.data['AWX_PROOT_HIDE_PATHS'] == ['/home'] + data.pop('AWX_PROOT_HIDE_PATHS') + data.pop('AWX_PROOT_SHOW_PATHS') + data.pop('AWX_ANSIBLE_CALLBACK_PLUGINS') + put(url, user=admin, data=data, expect=200) + response = get(url, user=admin, expect=200) + assert response.data['AWX_PROOT_HIDE_PATHS'] == [] + assert response.data['AWX_PROOT_SHOW_PATHS'] == [] + assert response.data['AWX_ANSIBLE_CALLBACK_PLUGINS'] == [] + + @pytest.mark.django_db def test_ldap_settings(get, put, patch, delete, admin, enterprise_license): url = reverse('api:setting_singleton_detail', args=('ldap',))