From 4042e78757c5fa5367f058fef65aca33f5bf4b73 Mon Sep 17 00:00:00 2001 From: Francois Herbert Date: Thu, 21 May 2020 12:03:45 +1200 Subject: [PATCH] Add option to follow symlinks when scanning for playbooks --- awx/main/conf.py | 10 ++++++++++ awx/main/models/projects.py | 2 +- awx/settings/defaults.py | 3 +++ .../forms/jobs-form/configuration-jobs.form.js | 3 +++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/awx/main/conf.py b/awx/main/conf.py index bd9b953695..1aa3990aee 100644 --- a/awx/main/conf.py +++ b/awx/main/conf.py @@ -423,6 +423,16 @@ register( category_slug='jobs', ) +register( + 'AWX_SHOW_PLAYBOOK_LINKS', + field_class=fields.BooleanField, + default=False, + label=_('Follow symlinks'), + help_text=_('Follow symbolic links when scanning for playbooks'), + category=_('Jobs'), + category_slug='jobs', +) + register( 'PRIMARY_GALAXY_URL', field_class=fields.URLField, diff --git a/awx/main/models/projects.py b/awx/main/models/projects.py index 0207fec97b..bc703f216e 100644 --- a/awx/main/models/projects.py +++ b/awx/main/models/projects.py @@ -199,7 +199,7 @@ class ProjectOptions(models.Model): results = [] project_path = self.get_project_path() if project_path: - for dirpath, dirnames, filenames in os.walk(smart_str(project_path)): + for dirpath, dirnames, filenames in os.walk(smart_str(project_path, followlinks=settings.AWX_SHOW_PLAYBOOK_LINKS)): if skip_directory(dirpath): continue for filename in filenames: diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index 1895a47b72..b300579471 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -563,6 +563,9 @@ AWX_ROLES_ENABLED = True # Note: This setting may be overridden by database settings. AWX_COLLECTIONS_ENABLED = True +# Follow symlinks when scanning for playbooks +AWX_SHOW_PLAYBOOK_LINKS = False + # Settings for primary galaxy server, should be set in the UI PRIMARY_GALAXY_URL = '' PRIMARY_GALAXY_USERNAME = '' diff --git a/awx/ui/client/src/configuration/forms/jobs-form/configuration-jobs.form.js b/awx/ui/client/src/configuration/forms/jobs-form/configuration-jobs.form.js index 3d0ad107ed..faff8e2366 100644 --- a/awx/ui/client/src/configuration/forms/jobs-form/configuration-jobs.form.js +++ b/awx/ui/client/src/configuration/forms/jobs-form/configuration-jobs.form.js @@ -71,6 +71,9 @@ export default ['i18n', function(i18n) { AWX_COLLECTIONS_ENABLED: { type: 'toggleSwitch', }, + AWX_SHOW_PLAYBOOK_LINKS: { + type: 'toggleSwitch', + }, PRIMARY_GALAXY_URL: { type: 'text', reset: 'PRIMARY_GALAXY_URL',