summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Coca <bcoca@users.noreply.github.com>2021-06-11 12:20:55 -0400
committerGitHub <noreply@github.com>2021-06-11 11:20:55 -0500
commit46378f0086f7c84587c94df444f594153fbced50 (patch)
treea98fcc609e0a515bab44fa019e09019d6afa4536
parentb2808ed1474b118a0ad05cfa41a01222b8fdd6fb (diff)
downloadansible-46378f0086f7c84587c94df444f594153fbced50.tar.gz
avoid literal quoting in config lists (#74740) (#74773)
* avoid literal quoting in config lists (#74740) * added tests (cherry picked from commit d2d1f01f9d067e82b6af0da156a24627d04b396c)
-rw-r--r--changelogs/fragments/config_lists_unquote.yml2
-rw-r--r--lib/ansible/config/manager.py2
2 files changed, 3 insertions, 1 deletions
diff --git a/changelogs/fragments/config_lists_unquote.yml b/changelogs/fragments/config_lists_unquote.yml
new file mode 100644
index 0000000000..960539d4ff
--- /dev/null
+++ b/changelogs/fragments/config_lists_unquote.yml
@@ -0,0 +1,2 @@
+bugfixes:
+ - config, ensure 'quoted' lists from ini or env do not take the quotes literally as part of the list item.
diff --git a/lib/ansible/config/manager.py b/lib/ansible/config/manager.py
index 51f6b40be9..db9f055ce2 100644
--- a/lib/ansible/config/manager.py
+++ b/lib/ansible/config/manager.py
@@ -98,7 +98,7 @@ def ensure_type(value, value_type, origin=None):
elif value_type == 'list':
if isinstance(value, string_types):
- value = [x.strip() for x in value.split(',')]
+ value = [unquote(x.strip()) for x in value.split(',')]
elif not isinstance(value, Sequence):
errmsg = 'list'