|
|
|
|
@ -29,7 +29,7 @@ from jinja2.exceptions import UndefinedError
|
|
|
|
|
|
|
|
|
|
from ansible.compat.six import iteritems, string_types, with_metaclass
|
|
|
|
|
from ansible.errors import AnsibleParserError, AnsibleUndefinedVariable
|
|
|
|
|
from ansible.module_utils._text import to_text
|
|
|
|
|
from ansible.module_utils._text import to_text, to_native
|
|
|
|
|
from ansible.playbook.attribute import Attribute, FieldAttribute
|
|
|
|
|
from ansible.parsing.dataloader import DataLoader
|
|
|
|
|
from ansible.constants import mk_boolean as boolean
|
|
|
|
|
@ -444,8 +444,11 @@ class Base(with_metaclass(BaseMeta, object)):
|
|
|
|
|
" Error was: %s" % (name, value, attribute.isa, e), obj=self.get_ds())
|
|
|
|
|
except (AnsibleUndefinedVariable, UndefinedError) as e:
|
|
|
|
|
if templar._fail_on_undefined_errors and name != 'name':
|
|
|
|
|
raise AnsibleParserError("the field '%s' has an invalid value, which appears to include a variable that is undefined."
|
|
|
|
|
" The error was: %s" % (name,e), obj=self.get_ds())
|
|
|
|
|
if name == 'args':
|
|
|
|
|
msg= "The task includes an option with an undefined variable. The error was: %s" % (to_native(e))
|
|
|
|
|
else:
|
|
|
|
|
msg= "The field '%s' has an invalid value, which includes an undefined variable. The error was: %s" % (name, to_native(e))
|
|
|
|
|
raise AnsibleParserError(msg, obj=self.get_ds(), orig_exc=e)
|
|
|
|
|
|
|
|
|
|
self._finalized = True
|
|
|
|
|
|
|
|
|
|
|