Revert "Make listify respect the global setting for undefined variables."

This 'mostly' reverts commit 2769098fe7.

Conflicts:
	lib/ansible/utils/__init__.py
	test/units/TestUtils.py
This commit is contained in:
Brian Coca 2014-12-04 09:14:53 -05:00
parent e938f554b7
commit 97408fe5b2
2 changed files with 3 additions and 16 deletions

View file

@ -48,7 +48,6 @@ import sys
import json import json
import subprocess import subprocess
import contextlib import contextlib
import jinja2.exceptions
from vault import VaultLib from vault import VaultLib
@ -1469,15 +1468,11 @@ def listify_lookup_plugin_terms(terms, basedir, inject):
# if not already a list, get ready to evaluate with Jinja2 # if not already a list, get ready to evaluate with Jinja2
# not sure why the "/" is in above code :) # not sure why the "/" is in above code :)
try: try:
new_terms = template.template(basedir, terms, inject, convert_bare=True, fail_on_undefined=C.DEFAULT_UNDEFINED_VAR_BEHAVIOR) new_terms = template.template(basedir, "{{ %s }}" % terms, inject)
if isinstance(new_terms, basestring) and "{{" in new_terms: if isinstance(new_terms, basestring) and "{{" in new_terms:
pass pass
else: else:
terms = new_terms terms = new_terms
except errors.AnsibleUndefinedVariable:
raise
except jinja2.exceptions.UndefinedError, e:
raise errors.AnsibleUndefinedVariable('undefined variable in items: %s' % e)
except: except:
pass pass

View file

@ -566,17 +566,9 @@ class TestUtils(unittest.TestCase):
def test_listify_lookup_plugin_terms(self): def test_listify_lookup_plugin_terms(self):
basedir = os.path.dirname(__file__) basedir = os.path.dirname(__file__)
# Straight lookups # Straight lookups
self.assertEqual(ansible.utils.listify_lookup_plugin_terms('things', basedir, dict(things=[])), []) #self.assertEqual(ansible.utils.listify_lookup_plugin_terms('things', basedir, dict(things=[])), [])
self.assertEqual(ansible.utils.listify_lookup_plugin_terms('things', basedir, dict(things=['one', 'two'])), ['one', 'two']) #self.assertEqual(ansible.utils.listify_lookup_plugin_terms('things', basedir, dict(things=['one', 'two'])), ['one', 'two'])
# Variable interpolation
self.assertEqual(ansible.utils.listify_lookup_plugin_terms('things', basedir, dict(things=['{{ foo }}', '{{ bar }}'], foo="hello", bar="world")),
['hello', 'world'])
with self.assertRaises(ansible.errors.AnsibleError) as ex:
ansible.utils.listify_lookup_plugin_terms('things', basedir, dict(things=['{{ foo }}', '{{ bar_typo }}'], foo="hello", bar="world"))
self.assertTrue("undefined variable in items: 'bar_typo'" in ex.exception.msg)
def test_deprecated(self): def test_deprecated(self):
sys_stderr = sys.stderr sys_stderr = sys.stderr