summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Coca <bcoca@ansible.com>2015-05-26 15:31:12 -0400
committerBrian Coca <bcoca@ansible.com>2015-05-26 15:31:12 -0400
commit3865c5051b68f7f1c4dab43c55cd0413a41c6fb2 (patch)
treedaa5829a5a3586b8328e2122c84ece56008ba8de
parentc87586e9e553a5a4b254a01895a9e5e8b98bab45 (diff)
parentb92d70c5b66aa741d35e9f6a294d27f43367205e (diff)
downloadansible-3865c5051b68f7f1c4dab43c55cd0413a41c6fb2.tar.gz
Merge pull request #11058 from srvg/bug/11017
limit extensions for files in group/host_vars dir
-rw-r--r--lib/ansible/utils/__init__.py4
-rw-r--r--test/units/TestInventory.py7
-rw-r--r--test/units/inventory_test_data/group_vars/noparse/all.yml~2
-rw-r--r--test/units/inventory_test_data/group_vars/noparse/file.txt2
-rw-r--r--test/units/inventory_test_data/group_vars/parse/all.yml2
-rw-r--r--test/units/inventory_test_data/simple_hosts6
6 files changed, 21 insertions, 2 deletions
diff --git a/lib/ansible/utils/__init__.py b/lib/ansible/utils/__init__.py
index 476a1e28e8..eb6fa2a712 100644
--- a/lib/ansible/utils/__init__.py
+++ b/lib/ansible/utils/__init__.py
@@ -1617,7 +1617,9 @@ def _load_vars_from_folder(folder_path, results, vault_password=None):
names.sort()
# do not parse hidden files or dirs, e.g. .svn/
- paths = [os.path.join(folder_path, name) for name in names if not name.startswith('.')]
+ paths = [os.path.join(folder_path, name) for name in names
+ if not name.startswith('.')
+ and os.path.splitext(name)[1] in C.YAML_FILENAME_EXTENSIONS]
for path in paths:
_found, results = _load_vars_from_path(path, results, vault_password=vault_password)
return results
diff --git a/test/units/TestInventory.py b/test/units/TestInventory.py
index dc3a0ce6d6..b4bee4300e 100644
--- a/test/units/TestInventory.py
+++ b/test/units/TestInventory.py
@@ -56,7 +56,7 @@ class TestInventory(unittest.TestCase):
'thrudgelmir0', 'thrudgelmir1', 'thrudgelmir2',
'thrudgelmir3', 'thrudgelmir4', 'thrudgelmir5',
'Hotep-a', 'Hotep-b', 'Hotep-c',
- 'BastC', 'BastD', 'neptun', ]
+ 'BastC', 'BastD', 'neptun', 'goldorak', ]
#####################################
### Empty inventory format tests
@@ -222,6 +222,11 @@ class TestInventory(unittest.TestCase):
inventory.subset('@' + os.path.join(self.test_dir, 'restrict_pattern'))
self.assertEqual(sorted(inventory.list_hosts()), sorted(['thor','odin']))
+ def test_vars_yaml_extension(self):
+ inventory = self.simple_inventory()
+ vars = inventory.get_variables('goldorak')
+ assert vars['YAML_FILENAME_EXTENSIONS_TEST']
+
@raises(errors.AnsibleError)
def testinvalid_entry(self):
Inventory('1234')
diff --git a/test/units/inventory_test_data/group_vars/noparse/all.yml~ b/test/units/inventory_test_data/group_vars/noparse/all.yml~
new file mode 100644
index 0000000000..6f52f114b1
--- /dev/null
+++ b/test/units/inventory_test_data/group_vars/noparse/all.yml~
@@ -0,0 +1,2 @@
+---
+YAML_FILENAME_EXTENSIONS_TEST: False
diff --git a/test/units/inventory_test_data/group_vars/noparse/file.txt b/test/units/inventory_test_data/group_vars/noparse/file.txt
new file mode 100644
index 0000000000..6f52f114b1
--- /dev/null
+++ b/test/units/inventory_test_data/group_vars/noparse/file.txt
@@ -0,0 +1,2 @@
+---
+YAML_FILENAME_EXTENSIONS_TEST: False
diff --git a/test/units/inventory_test_data/group_vars/parse/all.yml b/test/units/inventory_test_data/group_vars/parse/all.yml
new file mode 100644
index 0000000000..8687c86c7c
--- /dev/null
+++ b/test/units/inventory_test_data/group_vars/parse/all.yml
@@ -0,0 +1,2 @@
+---
+YAML_FILENAME_EXTENSIONS_TEST: True
diff --git a/test/units/inventory_test_data/simple_hosts b/test/units/inventory_test_data/simple_hosts
index 4625b3dbab..08c62b4537 100644
--- a/test/units/inventory_test_data/simple_hosts
+++ b/test/units/inventory_test_data/simple_hosts
@@ -20,3 +20,9 @@ Bast[C:D]
[auth]
neptun auth="YWRtaW46YWRtaW4="
+
+[parse:children]
+noparse
+
+[noparse]
+goldorak